From b30537de0e736b28b1ae2cbf0d34d42b6733f795 Mon Sep 17 00:00:00 2001 From: Alexey Trilis Date: Sat, 12 Oct 2019 01:39:25 +0200 Subject: [PATCH] Generate Kotlin/JS stdlib dependencies via dukat --- gradle/cacheRedirector.gradle.kts | 1 + libraries/stdlib/js/idl/org.khronos.webgl.idl | 2 +- .../stdlib/js/idl/org.w3c.css.masking.idl | 2 +- .../stdlib/js/idl/org.w3c.dom.clipboard.idl | 2 +- .../stdlib/js/idl/org.w3c.dom.css.ext.idl | 2 +- libraries/stdlib/js/idl/org.w3c.dom.css.idl | 2 +- .../stdlib/js/idl/org.w3c.dom.events.idl | 2 +- libraries/stdlib/js/idl/org.w3c.dom.idl | 2 +- .../js/idl/org.w3c.dom.mediacapture.idl | 2 +- .../stdlib/js/idl/org.w3c.dom.parsing.idl | 2 +- .../js/idl/org.w3c.dom.pointerevents.idl | 2 +- libraries/stdlib/js/idl/org.w3c.dom.svg.idl | 2 +- libraries/stdlib/js/idl/org.w3c.dom.url.idl | 2 +- libraries/stdlib/js/idl/org.w3c.fetch.idl | 2 +- libraries/stdlib/js/idl/org.w3c.files.idl | 2 +- .../stdlib/js/idl/org.w3c.fullscreen.idl | 2 +- .../stdlib/js/idl/org.w3c.notifications.idl | 2 +- .../stdlib/js/idl/org.w3c.performance.idl | 2 +- libraries/stdlib/js/idl/org.w3c.vibration.idl | 2 +- libraries/stdlib/js/idl/org.w3c.webidl.idl | 4 +- libraries/stdlib/js/idl/org.w3c.workers.idl | 2 +- libraries/stdlib/js/idl/org.w3c.xhr.idl | 2 +- .../stdlib/js/src/org.w3c/.gitattributes | 1 + .../js/src/org.w3c/org.khronos.webgl.kt | 397 +- .../js/src/org.w3c/org.w3c.css.masking.kt | 44 +- .../js/src/org.w3c/org.w3c.dom.clipboard.kt | 19 +- .../stdlib/js/src/org.w3c/org.w3c.dom.css.kt | 363 +- .../js/src/org.w3c/org.w3c.dom.events.kt | 106 +- .../stdlib/js/src/org.w3c/org.w3c.dom.kt | 7271 +++++++++++------ .../src/org.w3c/org.w3c.dom.mediacapture.kt | 94 +- .../js/src/org.w3c/org.w3c.dom.parsing.kt | 8 +- .../src/org.w3c/org.w3c.dom.pointerevents.kt | 18 +- .../stdlib/js/src/org.w3c/org.w3c.dom.svg.kt | 1088 ++- .../stdlib/js/src/org.w3c/org.w3c.dom.url.kt | 20 +- .../stdlib/js/src/org.w3c/org.w3c.fetch.kt | 78 +- .../stdlib/js/src/org.w3c/org.w3c.files.kt | 33 +- .../js/src/org.w3c/org.w3c.notifications.kt | 39 +- .../js/src/org.w3c/org.w3c.performance.kt | 50 +- .../stdlib/js/src/org.w3c/org.w3c.workers.kt | 186 +- .../stdlib/js/src/org.w3c/org.w3c.xhr.kt | 67 +- libraries/tools/dukat/build.gradle.kts | 26 + .../jetbrains/kotlin/tools/dukat}/download.kt | 57 +- .../jetbrains/kotlin/tools/dukat/launch.kt | 52 + libraries/tools/idl2k/build.gradle | 41 - .../main/antlr4/org/antlr/webidl/WebIDL.g4 | 595 -- .../tools/idl2k/src/main/kotlin/build.kt | 124 - .../tools/idl2k/src/main/kotlin/config.kt | 185 - libraries/tools/idl2k/src/main/kotlin/gen.kt | 368 - .../tools/idl2k/src/main/kotlin/generator.kt | 31 - libraries/tools/idl2k/src/main/kotlin/idl.kt | 612 -- libraries/tools/idl2k/src/main/kotlin/main.kt | 15 - libraries/tools/idl2k/src/main/kotlin/mdn.kt | 38 - .../tools/idl2k/src/main/kotlin/model.kt | 104 - .../tools/idl2k/src/main/kotlin/render.kt | 428 - .../idl2k/src/main/kotlin/typeMappings.kt | 150 - .../tools/idl2k/src/main/kotlin/types.kt | 92 - .../idl2k/src/main/kotlin/util/copyright.kt | 21 - .../tools/idl2k/src/main/kotlin/util/utils.kt | 45 - .../idl2k/src/main/shell/import-certs.sh | 15 - .../tools/idl2k/src/test/kotlin/Idl2kTest.kt | 52 - .../test/resources/SomethingNotInCache.idl | 8 - .../src/test/resources/SomethingNotInCache.kt | 8 - settings.gradle | 4 +- 63 files changed, 6806 insertions(+), 6192 deletions(-) create mode 100644 libraries/stdlib/js/src/org.w3c/.gitattributes create mode 100644 libraries/tools/dukat/build.gradle.kts rename libraries/tools/{idl2k/src/main/kotlin/dl => dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat}/download.kt (50%) create mode 100644 libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/launch.kt delete mode 100644 libraries/tools/idl2k/build.gradle delete mode 100644 libraries/tools/idl2k/src/main/antlr4/org/antlr/webidl/WebIDL.g4 delete mode 100644 libraries/tools/idl2k/src/main/kotlin/build.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/config.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/gen.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/generator.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/idl.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/main.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/mdn.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/model.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/render.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/typeMappings.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/types.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/util/copyright.kt delete mode 100644 libraries/tools/idl2k/src/main/kotlin/util/utils.kt delete mode 100755 libraries/tools/idl2k/src/main/shell/import-certs.sh delete mode 100644 libraries/tools/idl2k/src/test/kotlin/Idl2kTest.kt delete mode 100644 libraries/tools/idl2k/src/test/resources/SomethingNotInCache.idl delete mode 100644 libraries/tools/idl2k/src/test/resources/SomethingNotInCache.kt diff --git a/gradle/cacheRedirector.gradle.kts b/gradle/cacheRedirector.gradle.kts index 9e9536609c0..a0d6595573e 100644 --- a/gradle/cacheRedirector.gradle.kts +++ b/gradle/cacheRedirector.gradle.kts @@ -51,6 +51,7 @@ val mirroredUrls = listOf( "https://jetbrains.bintray.com/test-discovery", "https://jetbrains.bintray.com/wormhole", "https://jitpack.io", + "https://kotlin.bintray.com/dukat", "https://kotlin.bintray.com/kotlin-dependencies", "https://oss.sonatype.org/content/repositories/releases", "https://oss.sonatype.org/content/repositories/snapshots", diff --git a/libraries/stdlib/js/idl/org.khronos.webgl.idl b/libraries/stdlib/js/idl/org.khronos.webgl.idl index 2f8048686f3..9b83dcc68b8 100644 --- a/libraries/stdlib/js/idl/org.khronos.webgl.idl +++ b/libraries/stdlib/js/idl/org.khronos.webgl.idl @@ -1,4 +1,4 @@ -namespace org.khronos.webgl; +package org.khronos.webgl; // Downloaded from https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl diff --git a/libraries/stdlib/js/idl/org.w3c.css.masking.idl b/libraries/stdlib/js/idl/org.w3c.css.masking.idl index 2849bd7aeb4..7b27ff09326 100644 --- a/libraries/stdlib/js/idl/org.w3c.css.masking.idl +++ b/libraries/stdlib/js/idl/org.w3c.css.masking.idl @@ -1,4 +1,4 @@ -namespace org.w3c.css.masking; +package org.w3c.css.masking; // Downloaded from https://www.w3.org/TR/css-masking-1/ diff --git a/libraries/stdlib/js/idl/org.w3c.dom.clipboard.idl b/libraries/stdlib/js/idl/org.w3c.dom.clipboard.idl index dbfda5b644c..b3edb88369c 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.clipboard.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.clipboard.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.clipboard; +package org.w3c.dom.clipboard; // Downloaded from https://w3c.github.io/clipboard-apis diff --git a/libraries/stdlib/js/idl/org.w3c.dom.css.ext.idl b/libraries/stdlib/js/idl/org.w3c.dom.css.ext.idl index a02ad8f002d..fbaf3adfa17 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.css.ext.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.css.ext.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.css; +package org.w3c.dom.css; /* written by CSS3 spec */ partial interface CSSStyleDeclaration { diff --git a/libraries/stdlib/js/idl/org.w3c.dom.css.idl b/libraries/stdlib/js/idl/org.w3c.dom.css.idl index a43d39e059a..1eee9e74411 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.css.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.css.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.css; +package org.w3c.dom.css; // Downloaded from https://drafts.csswg.org/cssom/ diff --git a/libraries/stdlib/js/idl/org.w3c.dom.events.idl b/libraries/stdlib/js/idl/org.w3c.dom.events.idl index 18fde5edb8c..e11baa622d2 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.events.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.events.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.events; +package org.w3c.dom.events; // Downloaded from http://www.w3.org/TR/uievents/ diff --git a/libraries/stdlib/js/idl/org.w3c.dom.idl b/libraries/stdlib/js/idl/org.w3c.dom.idl index 78b1fac6c38..fbc22b3662d 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom; +package org.w3c.dom; // Downloaded from https://raw.githubusercontent.com/whatwg/html-mirror/master/source diff --git a/libraries/stdlib/js/idl/org.w3c.dom.mediacapture.idl b/libraries/stdlib/js/idl/org.w3c.dom.mediacapture.idl index bc3d930fb30..acc4dc81196 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.mediacapture.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.mediacapture.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.mediacapture; +package org.w3c.dom.mediacapture; // Downloaded from https://w3c.github.io/mediacapture-main/ diff --git a/libraries/stdlib/js/idl/org.w3c.dom.parsing.idl b/libraries/stdlib/js/idl/org.w3c.dom.parsing.idl index 043f71e42b8..65bceb01a85 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.parsing.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.parsing.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.parsing; +package org.w3c.dom.parsing; // Downloaded from http://www.w3.org/TR/DOM-Parsing/ diff --git a/libraries/stdlib/js/idl/org.w3c.dom.pointerevents.idl b/libraries/stdlib/js/idl/org.w3c.dom.pointerevents.idl index 0f6302bab21..b84c9253f7a 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.pointerevents.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.pointerevents.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.pointerevents; +package org.w3c.dom.pointerevents; // Downloaded from http://www.w3.org/TR/pointerevents/ diff --git a/libraries/stdlib/js/idl/org.w3c.dom.svg.idl b/libraries/stdlib/js/idl/org.w3c.dom.svg.idl index c54180b6564..933253aba8a 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.svg.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.svg.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.svg; +package org.w3c.dom.svg; // Downloaded from https://www.w3.org/TR/SVG2/single-page.html diff --git a/libraries/stdlib/js/idl/org.w3c.dom.url.idl b/libraries/stdlib/js/idl/org.w3c.dom.url.idl index 41035d7ec0d..fa3b3793d3e 100644 --- a/libraries/stdlib/js/idl/org.w3c.dom.url.idl +++ b/libraries/stdlib/js/idl/org.w3c.dom.url.idl @@ -1,4 +1,4 @@ -namespace org.w3c.dom.url; +package org.w3c.dom.url; // Downloaded from https://raw.githubusercontent.com/whatwg/url/master/url.html diff --git a/libraries/stdlib/js/idl/org.w3c.fetch.idl b/libraries/stdlib/js/idl/org.w3c.fetch.idl index d14aec5c36a..65da942d61a 100644 --- a/libraries/stdlib/js/idl/org.w3c.fetch.idl +++ b/libraries/stdlib/js/idl/org.w3c.fetch.idl @@ -1,4 +1,4 @@ -namespace org.w3c.fetch; +package org.w3c.fetch; // Downloaded from https://raw.githubusercontent.com/whatwg/fetch/master/Overview.src.html diff --git a/libraries/stdlib/js/idl/org.w3c.files.idl b/libraries/stdlib/js/idl/org.w3c.files.idl index 812386735b2..adbdc16071c 100644 --- a/libraries/stdlib/js/idl/org.w3c.files.idl +++ b/libraries/stdlib/js/idl/org.w3c.files.idl @@ -1,4 +1,4 @@ -namespace org.w3c.files; +package org.w3c.files; // Downloaded from https://raw.githubusercontent.com/w3c/FileAPI/gh-pages/index.html diff --git a/libraries/stdlib/js/idl/org.w3c.fullscreen.idl b/libraries/stdlib/js/idl/org.w3c.fullscreen.idl index a1e2de4c96e..53702731d5d 100644 --- a/libraries/stdlib/js/idl/org.w3c.fullscreen.idl +++ b/libraries/stdlib/js/idl/org.w3c.fullscreen.idl @@ -1,4 +1,4 @@ -namespace org.w3c.fullscreen; +package org.w3c.fullscreen; // Downloaded from https://raw.githubusercontent.com/whatwg/fullscreen/master/fullscreen.html diff --git a/libraries/stdlib/js/idl/org.w3c.notifications.idl b/libraries/stdlib/js/idl/org.w3c.notifications.idl index 15eb1d6da13..d3503cf5a6e 100644 --- a/libraries/stdlib/js/idl/org.w3c.notifications.idl +++ b/libraries/stdlib/js/idl/org.w3c.notifications.idl @@ -1,4 +1,4 @@ -namespace org.w3c.notifications; +package org.w3c.notifications; // Downloaded from https://raw.githubusercontent.com/whatwg/notifications/master/notifications.html diff --git a/libraries/stdlib/js/idl/org.w3c.performance.idl b/libraries/stdlib/js/idl/org.w3c.performance.idl index b9d87e047ee..f99716e78b3 100644 --- a/libraries/stdlib/js/idl/org.w3c.performance.idl +++ b/libraries/stdlib/js/idl/org.w3c.performance.idl @@ -1,4 +1,4 @@ -namespace org.w3c.performance; +package org.w3c.performance; // Downloaded from http://www.w3.org/TR/hr-time/ diff --git a/libraries/stdlib/js/idl/org.w3c.vibration.idl b/libraries/stdlib/js/idl/org.w3c.vibration.idl index 96372dd71e5..4adce0af567 100644 --- a/libraries/stdlib/js/idl/org.w3c.vibration.idl +++ b/libraries/stdlib/js/idl/org.w3c.vibration.idl @@ -1,4 +1,4 @@ -namespace org.w3c.vibration; +package org.w3c.vibration; // Downloaded from http://www.w3.org/TR/vibration/ diff --git a/libraries/stdlib/js/idl/org.w3c.webidl.idl b/libraries/stdlib/js/idl/org.w3c.webidl.idl index 27bb74b904c..8b90dd3d7c2 100644 --- a/libraries/stdlib/js/idl/org.w3c.webidl.idl +++ b/libraries/stdlib/js/idl/org.w3c.webidl.idl @@ -1,7 +1,9 @@ -namespace org.w3c.webidl; +package org.w3c.webidl; /** written by WebIDL spec */ typedef unsigned long long DOMTimeStamp; callback Function = any (any... arguments); callback VoidFunction = void (); + +typedef Window WindowProxy; \ No newline at end of file diff --git a/libraries/stdlib/js/idl/org.w3c.workers.idl b/libraries/stdlib/js/idl/org.w3c.workers.idl index 865ba32a8fc..f26f99a172d 100644 --- a/libraries/stdlib/js/idl/org.w3c.workers.idl +++ b/libraries/stdlib/js/idl/org.w3c.workers.idl @@ -1,4 +1,4 @@ -namespace org.w3c.workers; +package org.w3c.workers; // Downloaded from https://w3c.github.io/ServiceWorker/ diff --git a/libraries/stdlib/js/idl/org.w3c.xhr.idl b/libraries/stdlib/js/idl/org.w3c.xhr.idl index 0ae1c9ac01f..6a907bb414c 100644 --- a/libraries/stdlib/js/idl/org.w3c.xhr.idl +++ b/libraries/stdlib/js/idl/org.w3c.xhr.idl @@ -1,4 +1,4 @@ -namespace org.w3c.xhr; +package org.w3c.xhr; // Downloaded from https://raw.githubusercontent.com/whatwg/xhr/master/Overview.src.html diff --git a/libraries/stdlib/js/src/org.w3c/.gitattributes b/libraries/stdlib/js/src/org.w3c/.gitattributes new file mode 100644 index 00000000000..d0496f1a266 --- /dev/null +++ b/libraries/stdlib/js/src/org.w3c/.gitattributes @@ -0,0 +1 @@ +*.kt eol=lf diff --git a/libraries/stdlib/js/src/org.w3c/org.khronos.webgl.kt b/libraries/stdlib/js/src/org.w3c/org.khronos.webgl.kt index ff1fd88f7aa..ee2c7c0ad2e 100644 --- a/libraries/stdlib/js/src/org.w3c/org.khronos.webgl.kt +++ b/libraries/stdlib/js/src/org.w3c/org.khronos.webgl.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.khronos.webgl import kotlin.js.* @@ -57,7 +56,6 @@ public external interface WebGLContextAttributes { @kotlin.internal.InlineOnly public inline fun WebGLContextAttributes(alpha: Boolean? = true, depth: Boolean? = true, stencil: Boolean? = false, antialias: Boolean? = true, premultipliedAlpha: Boolean? = true, preserveDrawingBuffer: Boolean? = false, preferLowPowerToHighPerformance: Boolean? = false, failIfMajorPerformanceCaveat: Boolean? = false): WebGLContextAttributes { val o = js("({})") - o["alpha"] = alpha o["depth"] = depth o["stencil"] = stencil @@ -66,54 +64,45 @@ public inline fun WebGLContextAttributes(alpha: Boolean? = true, depth: Boolean? o["preserveDrawingBuffer"] = preserveDrawingBuffer o["preferLowPowerToHighPerformance"] = preferLowPowerToHighPerformance o["failIfMajorPerformanceCaveat"] = failIfMajorPerformanceCaveat - return o } -public external abstract class WebGLObject { -} +public external abstract class WebGLObject /** * Exposes the JavaScript [WebGLBuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLBuffer) to Kotlin */ -public external abstract class WebGLBuffer : WebGLObject { -} +public external abstract class WebGLBuffer : WebGLObject /** * Exposes the JavaScript [WebGLFramebuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLFramebuffer) to Kotlin */ -public external abstract class WebGLFramebuffer : WebGLObject { -} +public external abstract class WebGLFramebuffer : WebGLObject /** * Exposes the JavaScript [WebGLProgram](https://developer.mozilla.org/en/docs/Web/API/WebGLProgram) to Kotlin */ -public external abstract class WebGLProgram : WebGLObject { -} +public external abstract class WebGLProgram : WebGLObject /** * Exposes the JavaScript [WebGLRenderbuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLRenderbuffer) to Kotlin */ -public external abstract class WebGLRenderbuffer : WebGLObject { -} +public external abstract class WebGLRenderbuffer : WebGLObject /** * Exposes the JavaScript [WebGLShader](https://developer.mozilla.org/en/docs/Web/API/WebGLShader) to Kotlin */ -public external abstract class WebGLShader : WebGLObject { -} +public external abstract class WebGLShader : WebGLObject /** * Exposes the JavaScript [WebGLTexture](https://developer.mozilla.org/en/docs/Web/API/WebGLTexture) to Kotlin */ -public external abstract class WebGLTexture : WebGLObject { -} +public external abstract class WebGLTexture : WebGLObject /** * Exposes the JavaScript [WebGLUniformLocation](https://developer.mozilla.org/en/docs/Web/API/WebGLUniformLocation) to Kotlin */ -public external abstract class WebGLUniformLocation { -} +public external abstract class WebGLUniformLocation /** * Exposes the JavaScript [WebGLActiveInfo](https://developer.mozilla.org/en/docs/Web/API/WebGLActiveInfo) to Kotlin @@ -133,6 +122,7 @@ public external abstract class WebGLShaderPrecisionFormat { open val precision: Int } +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface WebGLRenderingContextBase { val canvas: HTMLCanvasElement val drawingBufferWidth: Int @@ -141,61 +131,61 @@ public external interface WebGLRenderingContextBase { fun isContextLost(): Boolean fun getSupportedExtensions(): Array? fun getExtension(name: String): dynamic - fun activeTexture(texture: Int): Unit - fun attachShader(program: WebGLProgram?, shader: WebGLShader?): Unit - fun bindAttribLocation(program: WebGLProgram?, index: Int, name: String): Unit - fun bindBuffer(target: Int, buffer: WebGLBuffer?): Unit - fun bindFramebuffer(target: Int, framebuffer: WebGLFramebuffer?): Unit - fun bindRenderbuffer(target: Int, renderbuffer: WebGLRenderbuffer?): Unit - fun bindTexture(target: Int, texture: WebGLTexture?): Unit - fun blendColor(red: Float, green: Float, blue: Float, alpha: Float): Unit - fun blendEquation(mode: Int): Unit - fun blendEquationSeparate(modeRGB: Int, modeAlpha: Int): Unit - fun blendFunc(sfactor: Int, dfactor: Int): Unit - fun blendFuncSeparate(srcRGB: Int, dstRGB: Int, srcAlpha: Int, dstAlpha: Int): Unit - fun bufferData(target: Int, size: Int, usage: Int): Unit - fun bufferData(target: Int, data: BufferDataSource?, usage: Int): Unit - fun bufferSubData(target: Int, offset: Int, data: BufferDataSource?): Unit + fun activeTexture(texture: Int) + fun attachShader(program: WebGLProgram?, shader: WebGLShader?) + fun bindAttribLocation(program: WebGLProgram?, index: Int, name: String) + fun bindBuffer(target: Int, buffer: WebGLBuffer?) + fun bindFramebuffer(target: Int, framebuffer: WebGLFramebuffer?) + fun bindRenderbuffer(target: Int, renderbuffer: WebGLRenderbuffer?) + fun bindTexture(target: Int, texture: WebGLTexture?) + fun blendColor(red: Float, green: Float, blue: Float, alpha: Float) + fun blendEquation(mode: Int) + fun blendEquationSeparate(modeRGB: Int, modeAlpha: Int) + fun blendFunc(sfactor: Int, dfactor: Int) + fun blendFuncSeparate(srcRGB: Int, dstRGB: Int, srcAlpha: Int, dstAlpha: Int) + fun bufferData(target: Int, size: Int, usage: Int) + fun bufferData(target: Int, data: BufferDataSource?, usage: Int) + fun bufferSubData(target: Int, offset: Int, data: BufferDataSource?) fun checkFramebufferStatus(target: Int): Int - fun clear(mask: Int): Unit - fun clearColor(red: Float, green: Float, blue: Float, alpha: Float): Unit - fun clearDepth(depth: Float): Unit - fun clearStencil(s: Int): Unit - fun colorMask(red: Boolean, green: Boolean, blue: Boolean, alpha: Boolean): Unit - fun compileShader(shader: WebGLShader?): Unit - fun compressedTexImage2D(target: Int, level: Int, internalformat: Int, width: Int, height: Int, border: Int, data: ArrayBufferView): Unit - fun compressedTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, width: Int, height: Int, format: Int, data: ArrayBufferView): Unit - fun copyTexImage2D(target: Int, level: Int, internalformat: Int, x: Int, y: Int, width: Int, height: Int, border: Int): Unit - fun copyTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, x: Int, y: Int, width: Int, height: Int): Unit + fun clear(mask: Int) + fun clearColor(red: Float, green: Float, blue: Float, alpha: Float) + fun clearDepth(depth: Float) + fun clearStencil(s: Int) + fun colorMask(red: Boolean, green: Boolean, blue: Boolean, alpha: Boolean) + fun compileShader(shader: WebGLShader?) + fun compressedTexImage2D(target: Int, level: Int, internalformat: Int, width: Int, height: Int, border: Int, data: ArrayBufferView) + fun compressedTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, width: Int, height: Int, format: Int, data: ArrayBufferView) + fun copyTexImage2D(target: Int, level: Int, internalformat: Int, x: Int, y: Int, width: Int, height: Int, border: Int) + fun copyTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, x: Int, y: Int, width: Int, height: Int) fun createBuffer(): WebGLBuffer? fun createFramebuffer(): WebGLFramebuffer? fun createProgram(): WebGLProgram? fun createRenderbuffer(): WebGLRenderbuffer? fun createShader(type: Int): WebGLShader? fun createTexture(): WebGLTexture? - fun cullFace(mode: Int): Unit - fun deleteBuffer(buffer: WebGLBuffer?): Unit - fun deleteFramebuffer(framebuffer: WebGLFramebuffer?): Unit - fun deleteProgram(program: WebGLProgram?): Unit - fun deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?): Unit - fun deleteShader(shader: WebGLShader?): Unit - fun deleteTexture(texture: WebGLTexture?): Unit - fun depthFunc(func: Int): Unit - fun depthMask(flag: Boolean): Unit - fun depthRange(zNear: Float, zFar: Float): Unit - fun detachShader(program: WebGLProgram?, shader: WebGLShader?): Unit - fun disable(cap: Int): Unit - fun disableVertexAttribArray(index: Int): Unit - fun drawArrays(mode: Int, first: Int, count: Int): Unit - fun drawElements(mode: Int, count: Int, type: Int, offset: Int): Unit - fun enable(cap: Int): Unit - fun enableVertexAttribArray(index: Int): Unit - fun finish(): Unit - fun flush(): Unit - fun framebufferRenderbuffer(target: Int, attachment: Int, renderbuffertarget: Int, renderbuffer: WebGLRenderbuffer?): Unit - fun framebufferTexture2D(target: Int, attachment: Int, textarget: Int, texture: WebGLTexture?, level: Int): Unit - fun frontFace(mode: Int): Unit - fun generateMipmap(target: Int): Unit + fun cullFace(mode: Int) + fun deleteBuffer(buffer: WebGLBuffer?) + fun deleteFramebuffer(framebuffer: WebGLFramebuffer?) + fun deleteProgram(program: WebGLProgram?) + fun deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?) + fun deleteShader(shader: WebGLShader?) + fun deleteTexture(texture: WebGLTexture?) + fun depthFunc(func: Int) + fun depthMask(flag: Boolean) + fun depthRange(zNear: Float, zFar: Float) + fun detachShader(program: WebGLProgram?, shader: WebGLShader?) + fun disable(cap: Int) + fun disableVertexAttribArray(index: Int) + fun drawArrays(mode: Int, first: Int, count: Int) + fun drawElements(mode: Int, count: Int, type: Int, offset: Int) + fun enable(cap: Int) + fun enableVertexAttribArray(index: Int) + fun finish() + fun flush() + fun framebufferRenderbuffer(target: Int, attachment: Int, renderbuffertarget: Int, renderbuffer: WebGLRenderbuffer?) + fun framebufferTexture2D(target: Int, attachment: Int, textarget: Int, texture: WebGLTexture?, level: Int) + fun frontFace(mode: Int) + fun generateMipmap(target: Int) fun getActiveAttrib(program: WebGLProgram?, index: Int): WebGLActiveInfo? fun getActiveUniform(program: WebGLProgram?, index: Int): WebGLActiveInfo? fun getAttachedShaders(program: WebGLProgram?): Array? @@ -216,7 +206,7 @@ public external interface WebGLRenderingContextBase { fun getUniformLocation(program: WebGLProgram?, name: String): WebGLUniformLocation? fun getVertexAttrib(index: Int, pname: Int): Any? fun getVertexAttribOffset(index: Int, pname: Int): Int - fun hint(target: Int, mode: Int): Unit + fun hint(target: Int, mode: Int) fun isBuffer(buffer: WebGLBuffer?): Boolean fun isEnabled(cap: Int): Boolean fun isFramebuffer(framebuffer: WebGLFramebuffer?): Boolean @@ -224,69 +214,69 @@ public external interface WebGLRenderingContextBase { fun isRenderbuffer(renderbuffer: WebGLRenderbuffer?): Boolean fun isShader(shader: WebGLShader?): Boolean fun isTexture(texture: WebGLTexture?): Boolean - fun lineWidth(width: Float): Unit - fun linkProgram(program: WebGLProgram?): Unit - fun pixelStorei(pname: Int, param: Int): Unit - fun polygonOffset(factor: Float, units: Float): Unit - fun readPixels(x: Int, y: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?): Unit - fun renderbufferStorage(target: Int, internalformat: Int, width: Int, height: Int): Unit - fun sampleCoverage(value: Float, invert: Boolean): Unit - fun scissor(x: Int, y: Int, width: Int, height: Int): Unit - fun shaderSource(shader: WebGLShader?, source: String): Unit - fun stencilFunc(func: Int, ref: Int, mask: Int): Unit - fun stencilFuncSeparate(face: Int, func: Int, ref: Int, mask: Int): Unit - fun stencilMask(mask: Int): Unit - fun stencilMaskSeparate(face: Int, mask: Int): Unit - fun stencilOp(fail: Int, zfail: Int, zpass: Int): Unit - fun stencilOpSeparate(face: Int, fail: Int, zfail: Int, zpass: Int): Unit - fun texImage2D(target: Int, level: Int, internalformat: Int, width: Int, height: Int, border: Int, format: Int, type: Int, pixels: ArrayBufferView?): Unit - fun texImage2D(target: Int, level: Int, internalformat: Int, format: Int, type: Int, source: TexImageSource?): Unit - fun texParameterf(target: Int, pname: Int, param: Float): Unit - fun texParameteri(target: Int, pname: Int, param: Int): Unit - fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?): Unit - fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, format: Int, type: Int, source: TexImageSource?): Unit - fun uniform1f(location: WebGLUniformLocation?, x: Float): Unit - fun uniform1fv(location: WebGLUniformLocation?, v: Float32Array): Unit - fun uniform1fv(location: WebGLUniformLocation?, v: Array): Unit - fun uniform1i(location: WebGLUniformLocation?, x: Int): Unit - fun uniform1iv(location: WebGLUniformLocation?, v: Int32Array): Unit - fun uniform1iv(location: WebGLUniformLocation?, v: Array): Unit - fun uniform2f(location: WebGLUniformLocation?, x: Float, y: Float): Unit - fun uniform2fv(location: WebGLUniformLocation?, v: Float32Array): Unit - fun uniform2fv(location: WebGLUniformLocation?, v: Array): Unit - fun uniform2i(location: WebGLUniformLocation?, x: Int, y: Int): Unit - fun uniform2iv(location: WebGLUniformLocation?, v: Int32Array): Unit - fun uniform2iv(location: WebGLUniformLocation?, v: Array): Unit - fun uniform3f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float): Unit - fun uniform3fv(location: WebGLUniformLocation?, v: Float32Array): Unit - fun uniform3fv(location: WebGLUniformLocation?, v: Array): Unit - fun uniform3i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int): Unit - fun uniform3iv(location: WebGLUniformLocation?, v: Int32Array): Unit - fun uniform3iv(location: WebGLUniformLocation?, v: Array): Unit - fun uniform4f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float, w: Float): Unit - fun uniform4fv(location: WebGLUniformLocation?, v: Float32Array): Unit - fun uniform4fv(location: WebGLUniformLocation?, v: Array): Unit - fun uniform4i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int, w: Int): Unit - fun uniform4iv(location: WebGLUniformLocation?, v: Int32Array): Unit - fun uniform4iv(location: WebGLUniformLocation?, v: Array): Unit - fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array): Unit - fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array): Unit - fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array): Unit - fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array): Unit - fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array): Unit - fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array): Unit - fun useProgram(program: WebGLProgram?): Unit - fun validateProgram(program: WebGLProgram?): Unit - fun vertexAttrib1f(index: Int, x: Float): Unit - fun vertexAttrib1fv(index: Int, values: dynamic): Unit - fun vertexAttrib2f(index: Int, x: Float, y: Float): Unit - fun vertexAttrib2fv(index: Int, values: dynamic): Unit - fun vertexAttrib3f(index: Int, x: Float, y: Float, z: Float): Unit - fun vertexAttrib3fv(index: Int, values: dynamic): Unit - fun vertexAttrib4f(index: Int, x: Float, y: Float, z: Float, w: Float): Unit - fun vertexAttrib4fv(index: Int, values: dynamic): Unit - fun vertexAttribPointer(index: Int, size: Int, type: Int, normalized: Boolean, stride: Int, offset: Int): Unit - fun viewport(x: Int, y: Int, width: Int, height: Int): Unit + fun lineWidth(width: Float) + fun linkProgram(program: WebGLProgram?) + fun pixelStorei(pname: Int, param: Int) + fun polygonOffset(factor: Float, units: Float) + fun readPixels(x: Int, y: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?) + fun renderbufferStorage(target: Int, internalformat: Int, width: Int, height: Int) + fun sampleCoverage(value: Float, invert: Boolean) + fun scissor(x: Int, y: Int, width: Int, height: Int) + fun shaderSource(shader: WebGLShader?, source: String) + fun stencilFunc(func: Int, ref: Int, mask: Int) + fun stencilFuncSeparate(face: Int, func: Int, ref: Int, mask: Int) + fun stencilMask(mask: Int) + fun stencilMaskSeparate(face: Int, mask: Int) + fun stencilOp(fail: Int, zfail: Int, zpass: Int) + fun stencilOpSeparate(face: Int, fail: Int, zfail: Int, zpass: Int) + fun texImage2D(target: Int, level: Int, internalformat: Int, width: Int, height: Int, border: Int, format: Int, type: Int, pixels: ArrayBufferView?) + fun texImage2D(target: Int, level: Int, internalformat: Int, format: Int, type: Int, source: TexImageSource?) + fun texParameterf(target: Int, pname: Int, param: Float) + fun texParameteri(target: Int, pname: Int, param: Int) + fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?) + fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, format: Int, type: Int, source: TexImageSource?) + fun uniform1f(location: WebGLUniformLocation?, x: Float) + fun uniform1fv(location: WebGLUniformLocation?, v: Float32Array) + fun uniform1fv(location: WebGLUniformLocation?, v: Array) + fun uniform1i(location: WebGLUniformLocation?, x: Int) + fun uniform1iv(location: WebGLUniformLocation?, v: Int32Array) + fun uniform1iv(location: WebGLUniformLocation?, v: Array) + fun uniform2f(location: WebGLUniformLocation?, x: Float, y: Float) + fun uniform2fv(location: WebGLUniformLocation?, v: Float32Array) + fun uniform2fv(location: WebGLUniformLocation?, v: Array) + fun uniform2i(location: WebGLUniformLocation?, x: Int, y: Int) + fun uniform2iv(location: WebGLUniformLocation?, v: Int32Array) + fun uniform2iv(location: WebGLUniformLocation?, v: Array) + fun uniform3f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float) + fun uniform3fv(location: WebGLUniformLocation?, v: Float32Array) + fun uniform3fv(location: WebGLUniformLocation?, v: Array) + fun uniform3i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int) + fun uniform3iv(location: WebGLUniformLocation?, v: Int32Array) + fun uniform3iv(location: WebGLUniformLocation?, v: Array) + fun uniform4f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float, w: Float) + fun uniform4fv(location: WebGLUniformLocation?, v: Float32Array) + fun uniform4fv(location: WebGLUniformLocation?, v: Array) + fun uniform4i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int, w: Int) + fun uniform4iv(location: WebGLUniformLocation?, v: Int32Array) + fun uniform4iv(location: WebGLUniformLocation?, v: Array) + fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) + fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array) + fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) + fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array) + fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) + fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array) + fun useProgram(program: WebGLProgram?) + fun validateProgram(program: WebGLProgram?) + fun vertexAttrib1f(index: Int, x: Float) + fun vertexAttrib1fv(index: Int, values: dynamic) + fun vertexAttrib2f(index: Int, x: Float, y: Float) + fun vertexAttrib2fv(index: Int, values: dynamic) + fun vertexAttrib3f(index: Int, x: Float, y: Float, z: Float) + fun vertexAttrib3fv(index: Int, values: dynamic) + fun vertexAttrib4f(index: Int, x: Float, y: Float, z: Float, w: Float) + fun vertexAttrib4fv(index: Int, values: dynamic) + fun vertexAttribPointer(index: Int, size: Int, type: Int, normalized: Boolean, stride: Int, offset: Int) + fun viewport(x: Int, y: Int, width: Int, height: Int) companion object { val DEPTH_BUFFER_BIT: Int @@ -593,7 +583,6 @@ public external interface WebGLRenderingContextBase { * Exposes the JavaScript [WebGLRenderingContext](https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext) to Kotlin */ public external abstract class WebGLRenderingContext : WebGLRenderingContextBase, RenderingContext { - companion object { val DEPTH_BUFFER_BIT: Int val STENCIL_BUFFER_BIT: Int @@ -900,6 +889,13 @@ public external abstract class WebGLRenderingContext : WebGLRenderingContextBase */ public external open class WebGLContextEvent(type: String, eventInit: WebGLContextEventInit = definedExternally) : Event { open val statusMessage: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface WebGLContextEventInit : EventInit { @@ -911,12 +907,10 @@ public external interface WebGLContextEventInit : EventInit { @kotlin.internal.InlineOnly public inline fun WebGLContextEventInit(statusMessage: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WebGLContextEventInit { val o = js("({})") - o["statusMessage"] = statusMessage o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -953,16 +947,20 @@ public external open class Int8Array : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Int8Array, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Int8Array, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Int8Array companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Int8Array.get(index: Int): Byte = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Int8Array.set(index: Int, value: Byte): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Int8Array.get(index: Int): Byte = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Int8Array.set(index: Int, value: Byte) { asDynamic()[index] = value } /** * Exposes the JavaScript [Uint8Array](https://developer.mozilla.org/en/docs/Web/API/Uint8Array) to Kotlin @@ -976,16 +974,20 @@ public external open class Uint8Array : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Uint8Array, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Uint8Array, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Uint8Array companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Uint8Array.get(index: Int): Byte = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Uint8Array.set(index: Int, value: Byte): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Uint8Array.get(index: Int): Byte = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Uint8Array.set(index: Int, value: Byte) { asDynamic()[index] = value } /** * Exposes the JavaScript [Uint8ClampedArray](https://developer.mozilla.org/en/docs/Web/API/Uint8ClampedArray) to Kotlin @@ -999,16 +1001,20 @@ public external open class Uint8ClampedArray : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Uint8ClampedArray, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Uint8ClampedArray, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Uint8ClampedArray companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Uint8ClampedArray.get(index: Int): Byte = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Uint8ClampedArray.set(index: Int, value: Byte): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Uint8ClampedArray.get(index: Int): Byte = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Uint8ClampedArray.set(index: Int, value: Byte) { asDynamic()[index] = value } /** * Exposes the JavaScript [Int16Array](https://developer.mozilla.org/en/docs/Web/API/Int16Array) to Kotlin @@ -1022,16 +1028,20 @@ public external open class Int16Array : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Int16Array, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Int16Array, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Int16Array companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Int16Array.get(index: Int): Short = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Int16Array.set(index: Int, value: Short): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Int16Array.get(index: Int): Short = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Int16Array.set(index: Int, value: Short) { asDynamic()[index] = value } /** * Exposes the JavaScript [Uint16Array](https://developer.mozilla.org/en/docs/Web/API/Uint16Array) to Kotlin @@ -1045,16 +1055,20 @@ public external open class Uint16Array : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Uint16Array, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Uint16Array, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Uint16Array companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Uint16Array.get(index: Int): Short = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Uint16Array.set(index: Int, value: Short): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Uint16Array.get(index: Int): Short = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Uint16Array.set(index: Int, value: Short) { asDynamic()[index] = value } /** * Exposes the JavaScript [Int32Array](https://developer.mozilla.org/en/docs/Web/API/Int32Array) to Kotlin @@ -1068,16 +1082,20 @@ public external open class Int32Array : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Int32Array, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Int32Array, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Int32Array companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Int32Array.get(index: Int): Int = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Int32Array.set(index: Int, value: Int): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Int32Array.get(index: Int): Int = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Int32Array.set(index: Int, value: Int) { asDynamic()[index] = value } /** * Exposes the JavaScript [Uint32Array](https://developer.mozilla.org/en/docs/Web/API/Uint32Array) to Kotlin @@ -1091,16 +1109,20 @@ public external open class Uint32Array : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Uint32Array, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Uint32Array, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Uint32Array companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Uint32Array.get(index: Int): Int = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Uint32Array.set(index: Int, value: Int): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Uint32Array.get(index: Int): Int = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Uint32Array.set(index: Int, value: Int) { asDynamic()[index] = value } /** * Exposes the JavaScript [Float32Array](https://developer.mozilla.org/en/docs/Web/API/Float32Array) to Kotlin @@ -1114,16 +1136,20 @@ public external open class Float32Array : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Float32Array, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Float32Array, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Float32Array companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Float32Array.get(index: Int): Float = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Float32Array.set(index: Int, value: Float): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Float32Array.get(index: Int): Float = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Float32Array.set(index: Int, value: Float) { asDynamic()[index] = value } /** * Exposes the JavaScript [Float64Array](https://developer.mozilla.org/en/docs/Web/API/Float64Array) to Kotlin @@ -1137,16 +1163,20 @@ public external open class Float64Array : ArrayBufferView { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int - fun set(array: Float64Array, offset: Int = definedExternally): Unit - fun set(array: Array, offset: Int = definedExternally): Unit + fun set(array: Float64Array, offset: Int = definedExternally) + fun set(array: Array, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Float64Array companion object { val BYTES_PER_ELEMENT: Int } } -@kotlin.internal.InlineOnly inline operator fun Float64Array.get(index: Int): Double = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Float64Array.set(index: Int, value: Double): Unit { asDynamic()[index] = value; } + +@kotlin.internal.InlineOnly +public inline operator fun Float64Array.get(index: Int): Double = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Float64Array.set(index: Int, value: Double) { asDynamic()[index] = value } /** * Exposes the JavaScript [DataView](https://developer.mozilla.org/en/docs/Web/API/DataView) to Kotlin @@ -1163,19 +1193,16 @@ public external open class DataView(buffer: ArrayBuffer, byteOffset: Int = defin fun getUint32(byteOffset: Int, littleEndian: Boolean = definedExternally): Int fun getFloat32(byteOffset: Int, littleEndian: Boolean = definedExternally): Float fun getFloat64(byteOffset: Int, littleEndian: Boolean = definedExternally): Double - fun setInt8(byteOffset: Int, value: Byte): Unit - fun setUint8(byteOffset: Int, value: Byte): Unit - fun setInt16(byteOffset: Int, value: Short, littleEndian: Boolean = definedExternally): Unit - fun setUint16(byteOffset: Int, value: Short, littleEndian: Boolean = definedExternally): Unit - fun setInt32(byteOffset: Int, value: Int, littleEndian: Boolean = definedExternally): Unit - fun setUint32(byteOffset: Int, value: Int, littleEndian: Boolean = definedExternally): Unit - fun setFloat32(byteOffset: Int, value: Float, littleEndian: Boolean = definedExternally): Unit - fun setFloat64(byteOffset: Int, value: Double, littleEndian: Boolean = definedExternally): Unit + fun setInt8(byteOffset: Int, value: Byte) + fun setUint8(byteOffset: Int, value: Byte) + fun setInt16(byteOffset: Int, value: Short, littleEndian: Boolean = definedExternally) + fun setUint16(byteOffset: Int, value: Short, littleEndian: Boolean = definedExternally) + fun setInt32(byteOffset: Int, value: Int, littleEndian: Boolean = definedExternally) + fun setUint32(byteOffset: Int, value: Int, littleEndian: Boolean = definedExternally) + fun setFloat32(byteOffset: Int, value: Float, littleEndian: Boolean = definedExternally) + fun setFloat64(byteOffset: Int, value: Double, littleEndian: Boolean = definedExternally) } -public external @marker interface BufferDataSource { -} - -public external @marker interface TexImageSource { -} +public external interface BufferDataSource +public external interface TexImageSource \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.css.masking.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.css.masking.kt index c6ee6d841d9..38d9964a4d5 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.css.masking.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.css.masking.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.css.masking import kotlin.js.* @@ -38,6 +37,24 @@ public external abstract class SVGClipPathElement : SVGElement, SVGUnitTypes { val SVG_UNIT_TYPE_UNKNOWN: Short val SVG_UNIT_TYPE_USERSPACEONUSE: Short val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } @@ -56,6 +73,23 @@ public external abstract class SVGMaskElement : SVGElement, SVGUnitTypes { val SVG_UNIT_TYPE_UNKNOWN: Short val SVG_UNIT_TYPE_USERSPACEONUSE: Short val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } -} - +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.clipboard.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.clipboard.kt index 247581ce460..aa12d65eef8 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.clipboard.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.clipboard.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom.clipboard import kotlin.js.* @@ -36,12 +35,10 @@ public external interface ClipboardEventInit : EventInit { @kotlin.internal.InlineOnly public inline fun ClipboardEventInit(clipboardData: DataTransfer? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ClipboardEventInit { val o = js("({})") - o["clipboardData"] = clipboardData o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -50,6 +47,13 @@ public inline fun ClipboardEventInit(clipboardData: DataTransfer? = null, bubble */ public external open class ClipboardEvent(type: String, eventInitDict: ClipboardEventInit = definedExternally) : Event { open val clipboardData: DataTransfer? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } /** @@ -71,9 +75,6 @@ public external interface ClipboardPermissionDescriptor { @kotlin.internal.InlineOnly public inline fun ClipboardPermissionDescriptor(allowWithoutGesture: Boolean? = false): ClipboardPermissionDescriptor { val o = js("({})") - o["allowWithoutGesture"] = allowWithoutGesture - return o -} - +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.css.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.css.kt index 4828f649485..b05aeaef2c9 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.css.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.css.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom.css import kotlin.js.* @@ -27,17 +26,223 @@ import org.w3c.performance.* import org.w3c.workers.* import org.w3c.xhr.* +public external abstract class MediaList : ItemArrayLike { + open var mediaText: String + fun appendMedium(medium: String) + fun deleteMedium(medium: String) + override fun item(index: Int): String? +} + +@kotlin.internal.InlineOnly +public inline operator fun MediaList.get(index: Int): String? = asDynamic()[index] + +/** + * Exposes the JavaScript [StyleSheet](https://developer.mozilla.org/en/docs/Web/API/StyleSheet) to Kotlin + */ +public external abstract class StyleSheet { + open val type: String + open val href: String? + open val ownerNode: UnionElementOrProcessingInstruction? + open val parentStyleSheet: StyleSheet? + open val title: String? + open val media: MediaList + open var disabled: Boolean +} + +/** + * Exposes the JavaScript [CSSStyleSheet](https://developer.mozilla.org/en/docs/Web/API/CSSStyleSheet) to Kotlin + */ +public external abstract class CSSStyleSheet : StyleSheet { + open val ownerRule: CSSRule? + open val cssRules: CSSRuleList + fun insertRule(rule: String, index: Int): Int + fun deleteRule(index: Int) +} + +/** + * Exposes the JavaScript [StyleSheetList](https://developer.mozilla.org/en/docs/Web/API/StyleSheetList) to Kotlin + */ +public external abstract class StyleSheetList : ItemArrayLike { + override fun item(index: Int): StyleSheet? +} + +@kotlin.internal.InlineOnly +public inline operator fun StyleSheetList.get(index: Int): StyleSheet? = asDynamic()[index] + +/** + * Exposes the JavaScript [LinkStyle](https://developer.mozilla.org/en/docs/Web/API/LinkStyle) to Kotlin + */ +public external interface LinkStyle { + val sheet: StyleSheet? + get() = definedExternally +} + +/** + * Exposes the JavaScript [CSSRuleList](https://developer.mozilla.org/en/docs/Web/API/CSSRuleList) to Kotlin + */ +public external abstract class CSSRuleList : ItemArrayLike { + override fun item(index: Int): CSSRule? +} + +@kotlin.internal.InlineOnly +public inline operator fun CSSRuleList.get(index: Int): CSSRule? = asDynamic()[index] + +/** + * Exposes the JavaScript [CSSRule](https://developer.mozilla.org/en/docs/Web/API/CSSRule) to Kotlin + */ +public external abstract class CSSRule { + open val type: Short + open var cssText: String + open val parentRule: CSSRule? + open val parentStyleSheet: CSSStyleSheet? + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSStyleRule](https://developer.mozilla.org/en/docs/Web/API/CSSStyleRule) to Kotlin + */ +public external abstract class CSSStyleRule : CSSRule { + open var selectorText: String + open val style: CSSStyleDeclaration + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +public external abstract class CSSImportRule : CSSRule { + open val href: String + open val media: MediaList + open val styleSheet: CSSStyleSheet + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSGroupingRule](https://developer.mozilla.org/en/docs/Web/API/CSSGroupingRule) to Kotlin + */ +public external abstract class CSSGroupingRule : CSSRule { + open val cssRules: CSSRuleList + fun insertRule(rule: String, index: Int): Int + fun deleteRule(index: Int) + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSMediaRule](https://developer.mozilla.org/en/docs/Web/API/CSSMediaRule) to Kotlin + */ +public external abstract class CSSMediaRule : CSSGroupingRule { + open val media: MediaList + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSPageRule](https://developer.mozilla.org/en/docs/Web/API/CSSPageRule) to Kotlin + */ +public external abstract class CSSPageRule : CSSGroupingRule { + open var selectorText: String + open val style: CSSStyleDeclaration + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +public external abstract class CSSMarginRule : CSSRule { + open val name: String + open val style: CSSStyleDeclaration + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + +/** + * Exposes the JavaScript [CSSNamespaceRule](https://developer.mozilla.org/en/docs/Web/API/CSSNamespaceRule) to Kotlin + */ +public external abstract class CSSNamespaceRule : CSSRule { + open val namespaceURI: String + open val prefix: String + + companion object { + val STYLE_RULE: Short + val CHARSET_RULE: Short + val IMPORT_RULE: Short + val MEDIA_RULE: Short + val FONT_FACE_RULE: Short + val PAGE_RULE: Short + val MARGIN_RULE: Short + val NAMESPACE_RULE: Short + } +} + /** * Exposes the JavaScript [CSSStyleDeclaration](https://developer.mozilla.org/en/docs/Web/API/CSSStyleDeclaration) to Kotlin */ public external abstract class CSSStyleDeclaration : ItemArrayLike { open var cssText: String - override val length: Int open val parentRule: CSSRule? open var cssFloat: String - open var _dashed_attribute: String - open var _camel_cased_attribute: String - open var _webkit_cased_attribute: String open var alignContent: String open var alignItems: String open var alignSelf: String @@ -261,144 +466,20 @@ public external abstract class CSSStyleDeclaration : ItemArrayLike { open var wordWrap: String open var writingMode: String open var zIndex: String - override fun item(index: Int): String + open var _dashed_attribute: String + open var _camel_cased_attribute: String + open var _webkit_cased_attribute: String fun getPropertyValue(property: String): String fun getPropertyPriority(property: String): String - fun setProperty(property: String, value: String, priority: String = definedExternally): Unit - fun setPropertyValue(property: String, value: String): Unit - fun setPropertyPriority(property: String, priority: String): Unit + fun setProperty(property: String, value: String, priority: String = definedExternally) + fun setPropertyValue(property: String, value: String) + fun setPropertyPriority(property: String, priority: String) fun removeProperty(property: String): String -} -@kotlin.internal.InlineOnly inline operator fun CSSStyleDeclaration.get(index: Int): String? = asDynamic()[index] - -public external abstract class MediaList : ItemArrayLike { - open var mediaText: String - override val length: Int - override fun item(index: Int): String? - fun appendMedium(medium: String): Unit - fun deleteMedium(medium: String): Unit -} -@kotlin.internal.InlineOnly inline operator fun MediaList.get(index: Int): String? = asDynamic()[index] - -/** - * Exposes the JavaScript [StyleSheet](https://developer.mozilla.org/en/docs/Web/API/StyleSheet) to Kotlin - */ -public external abstract class StyleSheet { - open val type: String - open val href: String? - open val ownerNode: UnionElementOrProcessingInstruction? - open val parentStyleSheet: StyleSheet? - open val title: String? - open val media: MediaList - open var disabled: Boolean + override fun item(index: Int): String } -/** - * Exposes the JavaScript [CSSStyleSheet](https://developer.mozilla.org/en/docs/Web/API/CSSStyleSheet) to Kotlin - */ -public external abstract class CSSStyleSheet : StyleSheet { - open val ownerRule: CSSRule? - open val cssRules: CSSRuleList - fun insertRule(rule: String, index: Int): Int - fun deleteRule(index: Int): Unit -} - -/** - * Exposes the JavaScript [StyleSheetList](https://developer.mozilla.org/en/docs/Web/API/StyleSheetList) to Kotlin - */ -public external abstract class StyleSheetList : ItemArrayLike { - override val length: Int - override fun item(index: Int): StyleSheet? -} -@kotlin.internal.InlineOnly inline operator fun StyleSheetList.get(index: Int): StyleSheet? = asDynamic()[index] - -/** - * Exposes the JavaScript [LinkStyle](https://developer.mozilla.org/en/docs/Web/API/LinkStyle) to Kotlin - */ -public external interface LinkStyle { - val sheet: StyleSheet? -} - -/** - * Exposes the JavaScript [CSSRuleList](https://developer.mozilla.org/en/docs/Web/API/CSSRuleList) to Kotlin - */ -public external abstract class CSSRuleList : ItemArrayLike { - override val length: Int - override fun item(index: Int): CSSRule? -} -@kotlin.internal.InlineOnly inline operator fun CSSRuleList.get(index: Int): CSSRule? = asDynamic()[index] - -/** - * Exposes the JavaScript [CSSRule](https://developer.mozilla.org/en/docs/Web/API/CSSRule) to Kotlin - */ -public external abstract class CSSRule { - open val type: Short - open var cssText: String - open val parentRule: CSSRule? - open val parentStyleSheet: CSSStyleSheet? - - companion object { - val STYLE_RULE: Short - val CHARSET_RULE: Short - val IMPORT_RULE: Short - val MEDIA_RULE: Short - val FONT_FACE_RULE: Short - val PAGE_RULE: Short - val MARGIN_RULE: Short - val NAMESPACE_RULE: Short - } -} - -/** - * Exposes the JavaScript [CSSStyleRule](https://developer.mozilla.org/en/docs/Web/API/CSSStyleRule) to Kotlin - */ -public external abstract class CSSStyleRule : CSSRule { - open var selectorText: String - open val style: CSSStyleDeclaration -} - -public external abstract class CSSImportRule : CSSRule { - open val href: String - open val media: MediaList - open val styleSheet: CSSStyleSheet -} - -/** - * Exposes the JavaScript [CSSGroupingRule](https://developer.mozilla.org/en/docs/Web/API/CSSGroupingRule) to Kotlin - */ -public external abstract class CSSGroupingRule : CSSRule { - open val cssRules: CSSRuleList - fun insertRule(rule: String, index: Int): Int - fun deleteRule(index: Int): Unit -} - -/** - * Exposes the JavaScript [CSSMediaRule](https://developer.mozilla.org/en/docs/Web/API/CSSMediaRule) to Kotlin - */ -public external abstract class CSSMediaRule : CSSGroupingRule { - open val media: MediaList -} - -/** - * Exposes the JavaScript [CSSPageRule](https://developer.mozilla.org/en/docs/Web/API/CSSPageRule) to Kotlin - */ -public external abstract class CSSPageRule : CSSGroupingRule { - open var selectorText: String - open val style: CSSStyleDeclaration -} - -public external abstract class CSSMarginRule : CSSRule { - open val name: String - open val style: CSSStyleDeclaration -} - -/** - * Exposes the JavaScript [CSSNamespaceRule](https://developer.mozilla.org/en/docs/Web/API/CSSNamespaceRule) to Kotlin - */ -public external abstract class CSSNamespaceRule : CSSRule { - open val namespaceURI: String - open val prefix: String -} +@kotlin.internal.InlineOnly +public inline operator fun CSSStyleDeclaration.get(index: Int): String? = asDynamic()[index] public external interface ElementCSSInlineStyle { val style: CSSStyleDeclaration @@ -408,9 +489,9 @@ public external interface ElementCSSInlineStyle { * Exposes the JavaScript [CSS](https://developer.mozilla.org/en/docs/Web/API/CSS) to Kotlin */ public external abstract class CSS { - companion object { fun escape(ident: String): String } } +public external interface UnionElementOrProcessingInstruction \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.events.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.events.kt index 04ff73c5b8e..81f129ce3bd 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.events.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.events.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom.events import kotlin.js.* @@ -33,6 +32,13 @@ import org.w3c.xhr.* public external open class UIEvent(type: String, eventInitDict: UIEventInit = definedExternally) : Event { open val view: Window? open val detail: Int + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface UIEventInit : EventInit { @@ -47,13 +53,11 @@ public external interface UIEventInit : EventInit { @kotlin.internal.InlineOnly public inline fun UIEventInit(view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): UIEventInit { val o = js("({})") - o["view"] = view o["detail"] = detail o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -62,6 +66,13 @@ public inline fun UIEventInit(view: Window? = null, detail: Int? = 0, bubbles: B */ public external open class FocusEvent(type: String, eventInitDict: FocusEventInit = definedExternally) : UIEvent { open val relatedTarget: EventTarget? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface FocusEventInit : UIEventInit { @@ -73,14 +84,12 @@ public external interface FocusEventInit : UIEventInit { @kotlin.internal.InlineOnly public inline fun FocusEventInit(relatedTarget: EventTarget? = null, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): FocusEventInit { val o = js("({})") - o["relatedTarget"] = relatedTarget o["view"] = view o["detail"] = detail o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -88,15 +97,10 @@ public inline fun FocusEventInit(relatedTarget: EventTarget? = null, view: Windo * Exposes the JavaScript [MouseEvent](https://developer.mozilla.org/en/docs/Web/API/MouseEvent) to Kotlin */ public external open class MouseEvent(type: String, eventInitDict: MouseEventInit = definedExternally) : UIEvent, UnionElementOrMouseEvent { - open val region: String? open val screenX: Int open val screenY: Int - open val pageX: Double - open val pageY: Double open val clientX: Int open val clientY: Int - open val offsetX: Double - open val offsetY: Double open val ctrlKey: Boolean open val shiftKey: Boolean open val altKey: Boolean @@ -104,7 +108,21 @@ public external open class MouseEvent(type: String, eventInitDict: MouseEventIni open val button: Short open val buttons: Short open val relatedTarget: EventTarget? + open val region: String? + open val pageX: Double + open val pageY: Double + open val x: Double + open val y: Double + open val offsetX: Double + open val offsetY: Double fun getModifierState(keyArg: String): Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface MouseEventInit : EventModifierInit { @@ -129,12 +147,14 @@ public external interface MouseEventInit : EventModifierInit { var relatedTarget: EventTarget? /* = null */ get() = definedExternally set(value) = definedExternally + var region: String? /* = null */ + get() = definedExternally + set(value) = definedExternally } @kotlin.internal.InlineOnly -public inline fun MouseEventInit(screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MouseEventInit { +public inline fun MouseEventInit(screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MouseEventInit { val o = js("({})") - o["screenX"] = screenX o["screenY"] = screenY o["clientX"] = clientX @@ -142,6 +162,7 @@ public inline fun MouseEventInit(screenX: Int? = 0, screenY: Int? = 0, clientX: o["button"] = button o["buttons"] = buttons o["relatedTarget"] = relatedTarget + o["region"] = region o["ctrlKey"] = ctrlKey o["shiftKey"] = shiftKey o["altKey"] = altKey @@ -161,7 +182,6 @@ public inline fun MouseEventInit(screenX: Int? = 0, screenY: Int? = 0, clientX: o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -213,7 +233,6 @@ public external interface EventModifierInit : UIEventInit { @kotlin.internal.InlineOnly public inline fun EventModifierInit(ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventModifierInit { val o = js("({})") - o["ctrlKey"] = ctrlKey o["shiftKey"] = shiftKey o["altKey"] = altKey @@ -233,7 +252,6 @@ public inline fun EventModifierInit(ctrlKey: Boolean? = false, shiftKey: Boolean o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -250,6 +268,10 @@ public external open class WheelEvent(type: String, eventInitDict: WheelEventIni val DOM_DELTA_PIXEL: Int val DOM_DELTA_LINE: Int val DOM_DELTA_PAGE: Int + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short } } @@ -269,9 +291,8 @@ public external interface WheelEventInit : MouseEventInit { } @kotlin.internal.InlineOnly -public inline fun WheelEventInit(deltaX: Double? = 0.0, deltaY: Double? = 0.0, deltaZ: Double? = 0.0, deltaMode: Int? = 0, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WheelEventInit { +public inline fun WheelEventInit(deltaX: Double? = 0.0, deltaY: Double? = 0.0, deltaZ: Double? = 0.0, deltaMode: Int? = 0, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WheelEventInit { val o = js("({})") - o["deltaX"] = deltaX o["deltaY"] = deltaY o["deltaZ"] = deltaZ @@ -283,6 +304,7 @@ public inline fun WheelEventInit(deltaX: Double? = 0.0, deltaY: Double? = 0.0, d o["button"] = button o["buttons"] = buttons o["relatedTarget"] = relatedTarget + o["region"] = region o["ctrlKey"] = ctrlKey o["shiftKey"] = shiftKey o["altKey"] = altKey @@ -302,7 +324,6 @@ public inline fun WheelEventInit(deltaX: Double? = 0.0, deltaY: Double? = 0.0, d o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -312,6 +333,13 @@ public inline fun WheelEventInit(deltaX: Double? = 0.0, deltaY: Double? = 0.0, d public external open class InputEvent(type: String, eventInitDict: InputEventInit = definedExternally) : UIEvent { open val data: String open val isComposing: Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface InputEventInit : UIEventInit { @@ -326,7 +354,6 @@ public external interface InputEventInit : UIEventInit { @kotlin.internal.InlineOnly public inline fun InputEventInit(data: String? = "", isComposing: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): InputEventInit { val o = js("({})") - o["data"] = data o["isComposing"] = isComposing o["view"] = view @@ -334,7 +361,6 @@ public inline fun InputEventInit(data: String? = "", isComposing: Boolean? = fal o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -361,6 +387,10 @@ public external open class KeyboardEvent(type: String, eventInitDict: KeyboardEv val DOM_KEY_LOCATION_LEFT: Int val DOM_KEY_LOCATION_RIGHT: Int val DOM_KEY_LOCATION_NUMPAD: Int + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short } } @@ -385,7 +415,6 @@ public external interface KeyboardEventInit : EventModifierInit { @kotlin.internal.InlineOnly public inline fun KeyboardEventInit(key: String? = "", code: String? = "", location: Int? = 0, repeat: Boolean? = false, isComposing: Boolean? = false, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): KeyboardEventInit { val o = js("({})") - o["key"] = key o["code"] = code o["location"] = location @@ -410,7 +439,6 @@ public inline fun KeyboardEventInit(key: String? = "", code: String? = "", locat o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -419,6 +447,13 @@ public inline fun KeyboardEventInit(key: String? = "", code: String? = "", locat */ public external open class CompositionEvent(type: String, eventInitDict: CompositionEventInit = definedExternally) : UIEvent { open val data: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface CompositionEventInit : UIEventInit { @@ -430,14 +465,12 @@ public external interface CompositionEventInit : UIEventInit { @kotlin.internal.InlineOnly public inline fun CompositionEventInit(data: String? = "", view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CompositionEventInit { val o = js("({})") - o["data"] = data o["view"] = view o["detail"] = detail o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -456,10 +489,10 @@ public external open class Event(type: String, eventInitDict: EventInit = define open val isTrusted: Boolean open val timeStamp: Number fun composedPath(): Array - fun stopPropagation(): Unit - fun stopImmediatePropagation(): Unit - fun preventDefault(): Unit - fun initEvent(type: String, bubbles: Boolean, cancelable: Boolean): Unit + fun stopPropagation() + fun stopImmediatePropagation() + fun preventDefault() + fun initEvent(type: String, bubbles: Boolean, cancelable: Boolean) companion object { val NONE: Short @@ -473,10 +506,10 @@ public external open class Event(type: String, eventInitDict: EventInit = define * Exposes the JavaScript [EventTarget](https://developer.mozilla.org/en/docs/Web/API/EventTarget) to Kotlin */ public external abstract class EventTarget { - fun addEventListener(type: String, callback: EventListener?, options: dynamic = definedExternally): Unit - fun addEventListener(type: String, callback: ((Event) -> Unit)?, options: dynamic = definedExternally): Unit - fun removeEventListener(type: String, callback: EventListener?, options: dynamic = definedExternally): Unit - fun removeEventListener(type: String, callback: ((Event) -> Unit)?, options: dynamic = definedExternally): Unit + fun addEventListener(type: String, callback: EventListener?, options: dynamic = definedExternally) + fun addEventListener(type: String, callback: ((Event) -> Unit)?, options: dynamic = definedExternally) + fun removeEventListener(type: String, callback: EventListener?, options: dynamic = definedExternally) + fun removeEventListener(type: String, callback: ((Event) -> Unit)?, options: dynamic = definedExternally) fun dispatchEvent(event: Event): Boolean } @@ -484,6 +517,5 @@ public external abstract class EventTarget { * Exposes the JavaScript [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener) to Kotlin */ public external interface EventListener { - fun handleEvent(event: Event): Unit -} - + fun handleEvent(event: Event) +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.kt index 1b5bd7409f5..0458409ac50 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom import kotlin.js.* @@ -27,286 +26,22 @@ import org.w3c.performance.* import org.w3c.workers.* import org.w3c.xhr.* -/** - * Exposes the JavaScript [Navigator](https://developer.mozilla.org/en/docs/Web/API/Navigator) to Kotlin - */ -public external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware { - open val serviceWorker: ServiceWorkerContainer - open val maxTouchPoints: Int - open val mediaDevices: MediaDevices - open val clipboard: Clipboard - fun vibrate(pattern: dynamic): Boolean - fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (dynamic) -> Unit): Unit -} - -/** - * Exposes the JavaScript [Document](https://developer.mozilla.org/en/docs/Web/API/Document) to Kotlin - */ -public external open class Document : Node, GlobalEventHandlers, DocumentAndElementEventHandlers, NonElementParentNode, DocumentOrShadowRoot, ParentNode, GeometryUtils { - open val fullscreenEnabled: Boolean - open val fullscreen: Boolean - var onfullscreenchange: ((Event) -> dynamic)? - var onfullscreenerror: ((Event) -> dynamic)? - open val rootElement: SVGSVGElement? - var title: String - open val referrer: String - var domain: String - open val activeElement: Element? - open val location: Location? - var cookie: String - open val lastModified: String - open val readyState: DocumentReadyState - var dir: String - var body: HTMLElement? - open val head: HTMLHeadElement? - open val images: HTMLCollection - open val embeds: HTMLCollection - open val plugins: HTMLCollection - open val links: HTMLCollection - open val forms: HTMLCollection - open val scripts: HTMLCollection - open val currentScript: HTMLOrSVGScriptElement? - open val defaultView: Window? - var designMode: String - var onreadystatechange: ((Event) -> dynamic)? - var fgColor: String - var linkColor: String - var vlinkColor: String - var alinkColor: String - var bgColor: String - open val anchors: HTMLCollection - open val applets: HTMLCollection - open val all: HTMLAllCollection - open val implementation: DOMImplementation - open val URL: String - open val documentURI: String - open val origin: String - open val compatMode: String - open val characterSet: String - open val charset: String - open val inputEncoding: String - open val contentType: String - open val doctype: DocumentType? - open val documentElement: Element? - open val scrollingElement: Element? - open val styleSheets: StyleSheetList - override var ongotpointercapture: ((PointerEvent) -> dynamic)? - override var onlostpointercapture: ((PointerEvent) -> dynamic)? - override var onpointerdown: ((PointerEvent) -> dynamic)? - override var onpointermove: ((PointerEvent) -> dynamic)? - override var onpointerup: ((PointerEvent) -> dynamic)? - override var onpointercancel: ((PointerEvent) -> dynamic)? - override var onpointerover: ((PointerEvent) -> dynamic)? - override var onpointerout: ((PointerEvent) -> dynamic)? - override var onpointerenter: ((PointerEvent) -> dynamic)? - override var onpointerleave: ((PointerEvent) -> dynamic)? - override var onabort: ((Event) -> dynamic)? - override var onblur: ((FocusEvent) -> dynamic)? - override var oncancel: ((Event) -> dynamic)? - override var oncanplay: ((Event) -> dynamic)? - override var oncanplaythrough: ((Event) -> dynamic)? - override var onchange: ((Event) -> dynamic)? - override var onclick: ((MouseEvent) -> dynamic)? - override var onclose: ((Event) -> dynamic)? - override var oncontextmenu: ((MouseEvent) -> dynamic)? - override var oncuechange: ((Event) -> dynamic)? - override var ondblclick: ((MouseEvent) -> dynamic)? - override var ondrag: ((DragEvent) -> dynamic)? - override var ondragend: ((DragEvent) -> dynamic)? - override var ondragenter: ((DragEvent) -> dynamic)? - override var ondragexit: ((DragEvent) -> dynamic)? - override var ondragleave: ((DragEvent) -> dynamic)? - override var ondragover: ((DragEvent) -> dynamic)? - override var ondragstart: ((DragEvent) -> dynamic)? - override var ondrop: ((DragEvent) -> dynamic)? - override var ondurationchange: ((Event) -> dynamic)? - override var onemptied: ((Event) -> dynamic)? - override var onended: ((Event) -> dynamic)? - override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? - override var onfocus: ((FocusEvent) -> dynamic)? - override var oninput: ((InputEvent) -> dynamic)? - override var oninvalid: ((Event) -> dynamic)? - override var onkeydown: ((KeyboardEvent) -> dynamic)? - override var onkeypress: ((KeyboardEvent) -> dynamic)? - override var onkeyup: ((KeyboardEvent) -> dynamic)? - override var onload: ((Event) -> dynamic)? - override var onloadeddata: ((Event) -> dynamic)? - override var onloadedmetadata: ((Event) -> dynamic)? - override var onloadend: ((Event) -> dynamic)? - override var onloadstart: ((ProgressEvent) -> dynamic)? - override var onmousedown: ((MouseEvent) -> dynamic)? - override var onmouseenter: ((MouseEvent) -> dynamic)? - override var onmouseleave: ((MouseEvent) -> dynamic)? - override var onmousemove: ((MouseEvent) -> dynamic)? - override var onmouseout: ((MouseEvent) -> dynamic)? - override var onmouseover: ((MouseEvent) -> dynamic)? - override var onmouseup: ((MouseEvent) -> dynamic)? - override var onwheel: ((WheelEvent) -> dynamic)? - override var onpause: ((Event) -> dynamic)? - override var onplay: ((Event) -> dynamic)? - override var onplaying: ((Event) -> dynamic)? - override var onprogress: ((ProgressEvent) -> dynamic)? - override var onratechange: ((Event) -> dynamic)? - override var onreset: ((Event) -> dynamic)? - override var onresize: ((Event) -> dynamic)? - override var onscroll: ((Event) -> dynamic)? - override var onseeked: ((Event) -> dynamic)? - override var onseeking: ((Event) -> dynamic)? - override var onselect: ((Event) -> dynamic)? - override var onshow: ((Event) -> dynamic)? - override var onstalled: ((Event) -> dynamic)? - override var onsubmit: ((Event) -> dynamic)? - override var onsuspend: ((Event) -> dynamic)? - override var ontimeupdate: ((Event) -> dynamic)? - override var ontoggle: ((Event) -> dynamic)? - override var onvolumechange: ((Event) -> dynamic)? - override var onwaiting: ((Event) -> dynamic)? - override var oncopy: ((ClipboardEvent) -> dynamic)? - override var oncut: ((ClipboardEvent) -> dynamic)? - override var onpaste: ((ClipboardEvent) -> dynamic)? - override val fullscreenElement: Element? - override val children: HTMLCollection - override val firstElementChild: Element? - override val lastElementChild: Element? - override val childElementCount: Int - fun exitFullscreen(): Promise - fun getElementsByName(elementName: String): NodeList - fun open(type: String = definedExternally, replace: String = definedExternally): Document - fun open(url: String, name: String, features: String): Window - fun close(): Unit - fun write(vararg text: String): Unit - fun writeln(vararg text: String): Unit - fun hasFocus(): Boolean - fun execCommand(commandId: String, showUI: Boolean = definedExternally, value: String = definedExternally): Boolean - fun queryCommandEnabled(commandId: String): Boolean - fun queryCommandIndeterm(commandId: String): Boolean - fun queryCommandState(commandId: String): Boolean - fun queryCommandSupported(commandId: String): Boolean - fun queryCommandValue(commandId: String): String - fun clear(): Unit - fun captureEvents(): Unit - fun releaseEvents(): Unit - fun getElementsByTagName(qualifiedName: String): HTMLCollection - fun getElementsByTagNameNS(namespace: String?, localName: String): HTMLCollection - fun getElementsByClassName(classNames: String): HTMLCollection - fun createElement(localName: String, options: ElementCreationOptions = definedExternally): Element - fun createElementNS(namespace: String?, qualifiedName: String, options: ElementCreationOptions = definedExternally): Element - fun createDocumentFragment(): DocumentFragment - fun createTextNode(data: String): Text - fun createCDATASection(data: String): CDATASection - fun createComment(data: String): Comment - fun createProcessingInstruction(target: String, data: String): ProcessingInstruction - fun importNode(node: Node, deep: Boolean = definedExternally): Node - fun adoptNode(node: Node): Node - fun createAttribute(localName: String): Attr - fun createAttributeNS(namespace: String?, qualifiedName: String): Attr - fun createEvent(interface_: String): Event - fun createRange(): Range - fun createNodeIterator(root: Node, whatToShow: Int = definedExternally, filter: NodeFilter? = definedExternally): NodeIterator - fun createNodeIterator(root: Node, whatToShow: Int = definedExternally, filter: ((Node) -> Short)? = definedExternally): NodeIterator - fun createTreeWalker(root: Node, whatToShow: Int = definedExternally, filter: NodeFilter? = definedExternally): TreeWalker - fun createTreeWalker(root: Node, whatToShow: Int = definedExternally, filter: ((Node) -> Short)? = definedExternally): TreeWalker - fun elementFromPoint(x: Double, y: Double): Element? - fun elementsFromPoint(x: Double, y: Double): Array - fun caretPositionFromPoint(x: Double, y: Double): CaretPosition? - override fun getElementById(elementId: String): Element? - override fun prepend(vararg nodes: dynamic): Unit - override fun append(vararg nodes: dynamic): Unit - override fun querySelector(selectors: String): Element? - override fun querySelectorAll(selectors: String): NodeList - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint -} -@kotlin.internal.InlineOnly inline operator fun Document.get(name: String): dynamic = asDynamic()[name] - -/** - * Exposes the JavaScript [Window](https://developer.mozilla.org/en/docs/Web/API/Window) to Kotlin - */ -public external abstract class Window : EventTarget, GlobalEventHandlers, WindowEventHandlers, WindowOrWorkerGlobalScope, WindowSessionStorage, WindowLocalStorage, GlobalPerformance, UnionMessagePortOrWindow { - override val performance: Performance - open val window: Window - open val self: Window - open val document: Document - open var name: String - open val location: Location - open val history: History - open val customElements: CustomElementRegistry - open val locationbar: BarProp - open val menubar: BarProp - open val personalbar: BarProp - open val scrollbars: BarProp - open val statusbar: BarProp - open val toolbar: BarProp - open var status: String - open val closed: Boolean - open val frames: Window - open val length: Int - open val top: Window - open var opener: Any? - open val parent: Window - open val frameElement: Element? - open val navigator: Navigator - open val applicationCache: ApplicationCache - open val external: External - open val screen: Screen - open val innerWidth: Int - open val innerHeight: Int - open val scrollX: Double - open val pageXOffset: Double - open val scrollY: Double - open val pageYOffset: Double - open val screenX: Int - open val screenY: Int - open val outerWidth: Int - open val outerHeight: Int - open val devicePixelRatio: Double - fun close(): Unit - fun stop(): Unit - fun focus(): Unit - fun blur(): Unit - fun open(url: String = definedExternally, target: String = definedExternally, features: String = definedExternally): Window? - fun alert(): Unit - fun alert(message: String): Unit - fun confirm(message: String = definedExternally): Boolean - fun prompt(message: String = definedExternally, default: String = definedExternally): String? - fun print(): Unit - fun requestAnimationFrame(callback: (Double) -> Unit): Int - fun cancelAnimationFrame(handle: Int): Unit - fun postMessage(message: Any?, targetOrigin: String, transfer: Array = definedExternally): Unit - fun captureEvents(): Unit - fun releaseEvents(): Unit - fun matchMedia(query: String): MediaQueryList - fun moveTo(x: Int, y: Int): Unit - fun moveBy(x: Int, y: Int): Unit - fun resizeTo(x: Int, y: Int): Unit - fun resizeBy(x: Int, y: Int): Unit - fun scroll(options: ScrollToOptions = definedExternally): Unit - fun scroll(x: Double, y: Double): Unit - fun scrollTo(options: ScrollToOptions = definedExternally): Unit - fun scrollTo(x: Double, y: Double): Unit - fun scrollBy(options: ScrollToOptions = definedExternally): Unit - fun scrollBy(x: Double, y: Double): Unit - fun getComputedStyle(elt: Element, pseudoElt: String? = definedExternally): CSSStyleDeclaration -} -@kotlin.internal.InlineOnly inline operator fun Window.get(name: String): dynamic = asDynamic()[name] - public external abstract class HTMLAllCollection { open val length: Int -// fun namedItem(name: String): UnionElementOrHTMLCollection? fun item(nameOrIndex: String = definedExternally): UnionElementOrHTMLCollection? + fun namedItem(name: String): UnionElementOrHTMLCollection? } -//@kotlin.internal.InlineOnly inline operator fun HTMLAllCollection.get(index: Int): Element? = asDynamic()[index] -//@kotlin.internal.InlineOnly inline operator fun HTMLAllCollection.get(name: String): UnionElementOrHTMLCollection? = asDynamic()[name] + +@kotlin.internal.InlineOnly +public inline operator fun HTMLAllCollection.get(index: Int): Element? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun HTMLAllCollection.get(name: String): UnionElementOrHTMLCollection? = asDynamic()[name] /** * Exposes the JavaScript [HTMLFormControlsCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLFormControlsCollection) to Kotlin */ -public external abstract class HTMLFormControlsCollection : HTMLCollection { -// override fun namedItem(name: String): UnionElementOrRadioNodeList? -} -//@kotlin.internal.InlineOnly override inline operator fun HTMLFormControlsCollection.get(name: String): UnionElementOrRadioNodeList? = asDynamic()[name] +public external abstract class HTMLFormControlsCollection : HTMLCollection /** * Exposes the JavaScript [RadioNodeList](https://developer.mozilla.org/en/docs/Web/API/RadioNodeList) to Kotlin @@ -321,15 +56,17 @@ public external abstract class RadioNodeList : NodeList, UnionElementOrRadioNode public external abstract class HTMLOptionsCollection : HTMLCollection { override var length: Int open var selectedIndex: Int - fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: dynamic = definedExternally): Unit - fun remove(index: Int): Unit + fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: dynamic = definedExternally) + fun remove(index: Int) } -@kotlin.internal.InlineOnly inline operator fun HTMLOptionsCollection.set(index: Int, option: HTMLOptionElement?): Unit { asDynamic()[index] = option; } + +@kotlin.internal.InlineOnly +public inline operator fun HTMLOptionsCollection.set(index: Int, option: HTMLOptionElement?) { asDynamic()[index] = option } /** * Exposes the JavaScript [HTMLElement](https://developer.mozilla.org/en/docs/Web/API/HTMLElement) to Kotlin */ -public external abstract class HTMLElement : Element, ElementCSSInlineStyle, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable { +public external abstract class HTMLElement : Element, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, ElementCSSInlineStyle { open var title: String open var lang: String open var translate: Boolean @@ -349,37 +86,122 @@ public external abstract class HTMLElement : Element, ElementCSSInlineStyle, Glo open val offsetLeft: Int open val offsetWidth: Int open val offsetHeight: Int - fun click(): Unit - fun focus(): Unit - fun blur(): Unit - fun forceSpellCheck(): Unit + fun click() + fun focus() + fun blur() + fun forceSpellCheck() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [HTMLUnknownElement](https://developer.mozilla.org/en/docs/Web/API/HTMLUnknownElement) to Kotlin */ public external abstract class HTMLUnknownElement : HTMLElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [DOMStringMap](https://developer.mozilla.org/en/docs/Web/API/DOMStringMap) to Kotlin */ -public external abstract class DOMStringMap { -} -@kotlin.internal.InlineOnly inline operator fun DOMStringMap.get(name: String): String? = asDynamic()[name] -@kotlin.internal.InlineOnly inline operator fun DOMStringMap.set(name: String, value: String): Unit { asDynamic()[name] = value; } +public external abstract class DOMStringMap + +@kotlin.internal.InlineOnly +public inline operator fun DOMStringMap.get(name: String): String? = asDynamic()[name] + +@kotlin.internal.InlineOnly +public inline operator fun DOMStringMap.set(name: String, value: String) { asDynamic()[name] = value } /** * Exposes the JavaScript [HTMLHtmlElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHtmlElement) to Kotlin */ public external abstract class HTMLHtmlElement : HTMLElement { open var version: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [HTMLHeadElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHeadElement) to Kotlin */ public external abstract class HTMLHeadElement : HTMLElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -387,6 +209,27 @@ public external abstract class HTMLHeadElement : HTMLElement { */ public external abstract class HTMLTitleElement : HTMLElement { open var text: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -395,18 +238,37 @@ public external abstract class HTMLTitleElement : HTMLElement { public external abstract class HTMLBaseElement : HTMLElement { open var href: String open var target: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [HTMLLinkElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLinkElement) to Kotlin */ public external abstract class HTMLLinkElement : HTMLElement, LinkStyle { - open var scope: String - open var workerType: WorkerType open var href: String open var crossOrigin: String? open var rel: String - @JsName("as") open var as_: RequestDestination + open var `as`: RequestDestination open val relList: DOMTokenList open var media: String open var nonce: String @@ -417,6 +279,29 @@ public external abstract class HTMLLinkElement : HTMLElement, LinkStyle { open var charset: String open var rev: String open var target: String + open var scope: String + open var workerType: WorkerType + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -427,6 +312,27 @@ public external abstract class HTMLMetaElement : HTMLElement { open var httpEquiv: String open var content: String open var scheme: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -436,6 +342,27 @@ public external abstract class HTMLStyleElement : HTMLElement, LinkStyle { open var media: String open var nonce: String open var type: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -448,6 +375,27 @@ public external abstract class HTMLBodyElement : HTMLElement, WindowEventHandler open var aLink: String open var bgColor: String open var background: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -455,6 +403,27 @@ public external abstract class HTMLBodyElement : HTMLElement, WindowEventHandler */ public external abstract class HTMLHeadingElement : HTMLElement { open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -462,6 +431,27 @@ public external abstract class HTMLHeadingElement : HTMLElement { */ public external abstract class HTMLParagraphElement : HTMLElement { open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -473,6 +463,27 @@ public external abstract class HTMLHRElement : HTMLElement { open var noShade: Boolean open var size: String open var width: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -480,6 +491,27 @@ public external abstract class HTMLHRElement : HTMLElement { */ public external abstract class HTMLPreElement : HTMLElement { open var width: Int + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -487,6 +519,27 @@ public external abstract class HTMLPreElement : HTMLElement { */ public external abstract class HTMLQuoteElement : HTMLElement { open var cite: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -497,6 +550,27 @@ public external abstract class HTMLOListElement : HTMLElement { open var start: Int open var type: String open var compact: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -505,6 +579,27 @@ public external abstract class HTMLOListElement : HTMLElement { public external abstract class HTMLUListElement : HTMLElement { open var compact: Boolean open var type: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -513,6 +608,27 @@ public external abstract class HTMLUListElement : HTMLElement { public external abstract class HTMLLIElement : HTMLElement { open var value: Int open var type: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -520,6 +636,27 @@ public external abstract class HTMLLIElement : HTMLElement { */ public external abstract class HTMLDListElement : HTMLElement { open var compact: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -527,6 +664,27 @@ public external abstract class HTMLDListElement : HTMLElement { */ public external abstract class HTMLDivElement : HTMLElement { open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -547,6 +705,27 @@ public external abstract class HTMLAnchorElement : HTMLElement, HTMLHyperlinkEle open var name: String open var rev: String open var shape: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -554,6 +733,27 @@ public external abstract class HTMLAnchorElement : HTMLElement, HTMLHyperlinkEle */ public external abstract class HTMLDataElement : HTMLElement { open var value: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -561,12 +761,53 @@ public external abstract class HTMLDataElement : HTMLElement { */ public external abstract class HTMLTimeElement : HTMLElement { open var dateTime: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [HTMLSpanElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSpanElement) to Kotlin */ public external abstract class HTMLSpanElement : HTMLElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -574,6 +815,27 @@ public external abstract class HTMLSpanElement : HTMLElement { */ public external abstract class HTMLBRElement : HTMLElement { open var clear: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -599,12 +861,53 @@ public external interface HTMLHyperlinkElementUtils { public external abstract class HTMLModElement : HTMLElement { open var cite: String open var dateTime: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [HTMLPictureElement](https://developer.mozilla.org/en/docs/Web/API/HTMLPictureElement) to Kotlin */ public external abstract class HTMLPictureElement : HTMLElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -616,12 +919,33 @@ public external abstract class HTMLSourceElement : HTMLElement { open var srcset: String open var sizes: String open var media: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [HTMLImageElement](https://developer.mozilla.org/en/docs/Web/API/HTMLImageElement) to Kotlin */ -public external abstract class HTMLImageElement : HTMLElement, TexImageSource, HTMLOrSVGImageElement { +public external abstract class HTMLImageElement : HTMLElement, HTMLOrSVGImageElement, TexImageSource { open var alt: String open var src: String open var srcset: String @@ -645,108 +969,27 @@ public external abstract class HTMLImageElement : HTMLElement, TexImageSource, H open var border: String open val x: Int open val y: Int -} -/** - * Exposes the JavaScript [Image](https://developer.mozilla.org/en/docs/Web/API/Image) to Kotlin - */ -public external open class Image(width: Int = definedExternally, height: Int = definedExternally) : HTMLImageElement { - override val children: HTMLCollection - override val firstElementChild: Element? - override val lastElementChild: Element? - override val childElementCount: Int - override val previousElementSibling: Element? - override val nextElementSibling: Element? - override val assignedSlot: HTMLSlotElement? - override val style: CSSStyleDeclaration - override var ongotpointercapture: ((PointerEvent) -> dynamic)? - override var onlostpointercapture: ((PointerEvent) -> dynamic)? - override var onpointerdown: ((PointerEvent) -> dynamic)? - override var onpointermove: ((PointerEvent) -> dynamic)? - override var onpointerup: ((PointerEvent) -> dynamic)? - override var onpointercancel: ((PointerEvent) -> dynamic)? - override var onpointerover: ((PointerEvent) -> dynamic)? - override var onpointerout: ((PointerEvent) -> dynamic)? - override var onpointerenter: ((PointerEvent) -> dynamic)? - override var onpointerleave: ((PointerEvent) -> dynamic)? - override var onabort: ((Event) -> dynamic)? - override var onblur: ((FocusEvent) -> dynamic)? - override var oncancel: ((Event) -> dynamic)? - override var oncanplay: ((Event) -> dynamic)? - override var oncanplaythrough: ((Event) -> dynamic)? - override var onchange: ((Event) -> dynamic)? - override var onclick: ((MouseEvent) -> dynamic)? - override var onclose: ((Event) -> dynamic)? - override var oncontextmenu: ((MouseEvent) -> dynamic)? - override var oncuechange: ((Event) -> dynamic)? - override var ondblclick: ((MouseEvent) -> dynamic)? - override var ondrag: ((DragEvent) -> dynamic)? - override var ondragend: ((DragEvent) -> dynamic)? - override var ondragenter: ((DragEvent) -> dynamic)? - override var ondragexit: ((DragEvent) -> dynamic)? - override var ondragleave: ((DragEvent) -> dynamic)? - override var ondragover: ((DragEvent) -> dynamic)? - override var ondragstart: ((DragEvent) -> dynamic)? - override var ondrop: ((DragEvent) -> dynamic)? - override var ondurationchange: ((Event) -> dynamic)? - override var onemptied: ((Event) -> dynamic)? - override var onended: ((Event) -> dynamic)? - override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? - override var onfocus: ((FocusEvent) -> dynamic)? - override var oninput: ((InputEvent) -> dynamic)? - override var oninvalid: ((Event) -> dynamic)? - override var onkeydown: ((KeyboardEvent) -> dynamic)? - override var onkeypress: ((KeyboardEvent) -> dynamic)? - override var onkeyup: ((KeyboardEvent) -> dynamic)? - override var onload: ((Event) -> dynamic)? - override var onloadeddata: ((Event) -> dynamic)? - override var onloadedmetadata: ((Event) -> dynamic)? - override var onloadend: ((Event) -> dynamic)? - override var onloadstart: ((ProgressEvent) -> dynamic)? - override var onmousedown: ((MouseEvent) -> dynamic)? - override var onmouseenter: ((MouseEvent) -> dynamic)? - override var onmouseleave: ((MouseEvent) -> dynamic)? - override var onmousemove: ((MouseEvent) -> dynamic)? - override var onmouseout: ((MouseEvent) -> dynamic)? - override var onmouseover: ((MouseEvent) -> dynamic)? - override var onmouseup: ((MouseEvent) -> dynamic)? - override var onwheel: ((WheelEvent) -> dynamic)? - override var onpause: ((Event) -> dynamic)? - override var onplay: ((Event) -> dynamic)? - override var onplaying: ((Event) -> dynamic)? - override var onprogress: ((ProgressEvent) -> dynamic)? - override var onratechange: ((Event) -> dynamic)? - override var onreset: ((Event) -> dynamic)? - override var onresize: ((Event) -> dynamic)? - override var onscroll: ((Event) -> dynamic)? - override var onseeked: ((Event) -> dynamic)? - override var onseeking: ((Event) -> dynamic)? - override var onselect: ((Event) -> dynamic)? - override var onshow: ((Event) -> dynamic)? - override var onstalled: ((Event) -> dynamic)? - override var onsubmit: ((Event) -> dynamic)? - override var onsuspend: ((Event) -> dynamic)? - override var ontimeupdate: ((Event) -> dynamic)? - override var ontoggle: ((Event) -> dynamic)? - override var onvolumechange: ((Event) -> dynamic)? - override var onwaiting: ((Event) -> dynamic)? - override var oncopy: ((ClipboardEvent) -> dynamic)? - override var oncut: ((ClipboardEvent) -> dynamic)? - override var onpaste: ((ClipboardEvent) -> dynamic)? - override var contentEditable: String - override val isContentEditable: Boolean - override fun prepend(vararg nodes: dynamic): Unit - override fun append(vararg nodes: dynamic): Unit - override fun querySelector(selectors: String): Element? - override fun querySelectorAll(selectors: String): NodeList - override fun before(vararg nodes: dynamic): Unit - override fun after(vararg nodes: dynamic): Unit - override fun replaceWith(vararg nodes: dynamic): Unit - override fun remove(): Unit - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -771,6 +1014,27 @@ public external abstract class HTMLIFrameElement : HTMLElement { open var marginHeight: String open var marginWidth: String fun getSVGDocument(): Document? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -784,6 +1048,27 @@ public external abstract class HTMLEmbedElement : HTMLElement { open var align: String open var name: String fun getSVGDocument(): Document? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -816,7 +1101,28 @@ public external abstract class HTMLObjectElement : HTMLElement { fun getSVGDocument(): Document? fun checkValidity(): Boolean fun reportValidity(): Boolean - fun setCustomValidity(error: String): Unit + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -827,123 +1133,104 @@ public external abstract class HTMLParamElement : HTMLElement { open var value: String open var type: String open var valueType: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [HTMLVideoElement](https://developer.mozilla.org/en/docs/Web/API/HTMLVideoElement) to Kotlin */ -public external abstract class HTMLVideoElement : HTMLMediaElement, TexImageSource { +public external abstract class HTMLVideoElement : HTMLMediaElement, CanvasImageSource, TexImageSource { open var width: Int open var height: Int open val videoWidth: Int open val videoHeight: Int open var poster: String open var playsInline: Boolean + + companion object { + val NETWORK_EMPTY: Short + val NETWORK_IDLE: Short + val NETWORK_LOADING: Short + val NETWORK_NO_SOURCE: Short + val HAVE_NOTHING: Short + val HAVE_METADATA: Short + val HAVE_CURRENT_DATA: Short + val HAVE_FUTURE_DATA: Short + val HAVE_ENOUGH_DATA: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [HTMLAudioElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAudioElement) to Kotlin */ public external abstract class HTMLAudioElement : HTMLMediaElement { -} - -public external open class Audio(src: String = definedExternally) : HTMLAudioElement { - override val children: HTMLCollection - override val firstElementChild: Element? - override val lastElementChild: Element? - override val childElementCount: Int - override val previousElementSibling: Element? - override val nextElementSibling: Element? - override val assignedSlot: HTMLSlotElement? - override val style: CSSStyleDeclaration - override var ongotpointercapture: ((PointerEvent) -> dynamic)? - override var onlostpointercapture: ((PointerEvent) -> dynamic)? - override var onpointerdown: ((PointerEvent) -> dynamic)? - override var onpointermove: ((PointerEvent) -> dynamic)? - override var onpointerup: ((PointerEvent) -> dynamic)? - override var onpointercancel: ((PointerEvent) -> dynamic)? - override var onpointerover: ((PointerEvent) -> dynamic)? - override var onpointerout: ((PointerEvent) -> dynamic)? - override var onpointerenter: ((PointerEvent) -> dynamic)? - override var onpointerleave: ((PointerEvent) -> dynamic)? - override var onabort: ((Event) -> dynamic)? - override var onblur: ((FocusEvent) -> dynamic)? - override var oncancel: ((Event) -> dynamic)? - override var oncanplay: ((Event) -> dynamic)? - override var oncanplaythrough: ((Event) -> dynamic)? - override var onchange: ((Event) -> dynamic)? - override var onclick: ((MouseEvent) -> dynamic)? - override var onclose: ((Event) -> dynamic)? - override var oncontextmenu: ((MouseEvent) -> dynamic)? - override var oncuechange: ((Event) -> dynamic)? - override var ondblclick: ((MouseEvent) -> dynamic)? - override var ondrag: ((DragEvent) -> dynamic)? - override var ondragend: ((DragEvent) -> dynamic)? - override var ondragenter: ((DragEvent) -> dynamic)? - override var ondragexit: ((DragEvent) -> dynamic)? - override var ondragleave: ((DragEvent) -> dynamic)? - override var ondragover: ((DragEvent) -> dynamic)? - override var ondragstart: ((DragEvent) -> dynamic)? - override var ondrop: ((DragEvent) -> dynamic)? - override var ondurationchange: ((Event) -> dynamic)? - override var onemptied: ((Event) -> dynamic)? - override var onended: ((Event) -> dynamic)? - override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? - override var onfocus: ((FocusEvent) -> dynamic)? - override var oninput: ((InputEvent) -> dynamic)? - override var oninvalid: ((Event) -> dynamic)? - override var onkeydown: ((KeyboardEvent) -> dynamic)? - override var onkeypress: ((KeyboardEvent) -> dynamic)? - override var onkeyup: ((KeyboardEvent) -> dynamic)? - override var onload: ((Event) -> dynamic)? - override var onloadeddata: ((Event) -> dynamic)? - override var onloadedmetadata: ((Event) -> dynamic)? - override var onloadend: ((Event) -> dynamic)? - override var onloadstart: ((ProgressEvent) -> dynamic)? - override var onmousedown: ((MouseEvent) -> dynamic)? - override var onmouseenter: ((MouseEvent) -> dynamic)? - override var onmouseleave: ((MouseEvent) -> dynamic)? - override var onmousemove: ((MouseEvent) -> dynamic)? - override var onmouseout: ((MouseEvent) -> dynamic)? - override var onmouseover: ((MouseEvent) -> dynamic)? - override var onmouseup: ((MouseEvent) -> dynamic)? - override var onwheel: ((WheelEvent) -> dynamic)? - override var onpause: ((Event) -> dynamic)? - override var onplay: ((Event) -> dynamic)? - override var onplaying: ((Event) -> dynamic)? - override var onprogress: ((ProgressEvent) -> dynamic)? - override var onratechange: ((Event) -> dynamic)? - override var onreset: ((Event) -> dynamic)? - override var onresize: ((Event) -> dynamic)? - override var onscroll: ((Event) -> dynamic)? - override var onseeked: ((Event) -> dynamic)? - override var onseeking: ((Event) -> dynamic)? - override var onselect: ((Event) -> dynamic)? - override var onshow: ((Event) -> dynamic)? - override var onstalled: ((Event) -> dynamic)? - override var onsubmit: ((Event) -> dynamic)? - override var onsuspend: ((Event) -> dynamic)? - override var ontimeupdate: ((Event) -> dynamic)? - override var ontoggle: ((Event) -> dynamic)? - override var onvolumechange: ((Event) -> dynamic)? - override var onwaiting: ((Event) -> dynamic)? - override var oncopy: ((ClipboardEvent) -> dynamic)? - override var oncut: ((ClipboardEvent) -> dynamic)? - override var onpaste: ((ClipboardEvent) -> dynamic)? - override var contentEditable: String - override val isContentEditable: Boolean - override fun prepend(vararg nodes: dynamic): Unit - override fun append(vararg nodes: dynamic): Unit - override fun querySelector(selectors: String): Element? - override fun querySelectorAll(selectors: String): NodeList - override fun before(vararg nodes: dynamic): Unit - override fun after(vararg nodes: dynamic): Unit - override fun replaceWith(vararg nodes: dynamic): Unit - override fun remove(): Unit - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + companion object { + val NETWORK_EMPTY: Short + val NETWORK_IDLE: Short + val NETWORK_LOADING: Short + val NETWORK_NO_SOURCE: Short + val HAVE_NOTHING: Short + val HAVE_METADATA: Short + val HAVE_CURRENT_DATA: Short + val HAVE_FUTURE_DATA: Short + val HAVE_ENOUGH_DATA: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -963,6 +1250,24 @@ public external abstract class HTMLTrackElement : HTMLElement { val LOADING: Short val LOADED: Short val ERROR: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } @@ -997,12 +1302,12 @@ public external abstract class HTMLMediaElement : HTMLElement { open val audioTracks: AudioTrackList open val videoTracks: VideoTrackList open val textTracks: TextTrackList - fun load(): Unit + fun load() fun canPlayType(type: String): CanPlayTypeResult - fun fastSeek(time: Double): Unit + fun fastSeek(time: Double) fun getStartDate(): dynamic fun play(): Promise - fun pause(): Unit + fun pause() fun addTextTrack(kind: TextTrackKind, label: String = definedExternally, language: String = definedExternally): TextTrack companion object { @@ -1015,6 +1320,24 @@ public external abstract class HTMLMediaElement : HTMLElement { val HAVE_CURRENT_DATA: Short val HAVE_FUTURE_DATA: Short val HAVE_ENOUGH_DATA: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } @@ -1042,7 +1365,9 @@ public external abstract class AudioTrackList : EventTarget { open var onremovetrack: ((TrackEvent) -> dynamic)? fun getTrackById(id: String): AudioTrack? } -@kotlin.internal.InlineOnly inline operator fun AudioTrackList.get(index: Int): AudioTrack? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun AudioTrackList.get(index: Int): AudioTrack? = asDynamic()[index] /** * Exposes the JavaScript [AudioTrack](https://developer.mozilla.org/en/docs/Web/API/AudioTrack) to Kotlin @@ -1066,7 +1391,9 @@ public external abstract class VideoTrackList : EventTarget { open var onremovetrack: ((TrackEvent) -> dynamic)? fun getTrackById(id: String): VideoTrack? } -@kotlin.internal.InlineOnly inline operator fun VideoTrackList.get(index: Int): VideoTrack? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun VideoTrackList.get(index: Int): VideoTrack? = asDynamic()[index] /** * Exposes the JavaScript [VideoTrack](https://developer.mozilla.org/en/docs/Web/API/VideoTrack) to Kotlin @@ -1086,7 +1413,9 @@ public external abstract class TextTrackList : EventTarget { open var onremovetrack: ((TrackEvent) -> dynamic)? fun getTrackById(id: String): TextTrack? } -@kotlin.internal.InlineOnly inline operator fun TextTrackList.get(index: Int): TextTrack? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun TextTrackList.get(index: Int): TextTrack? = asDynamic()[index] /** * Exposes the JavaScript [TextTrack](https://developer.mozilla.org/en/docs/Web/API/TextTrack) to Kotlin @@ -1101,15 +1430,17 @@ public external abstract class TextTrack : EventTarget, UnionAudioTrackOrTextTra open val cues: TextTrackCueList? open val activeCues: TextTrackCueList? open var oncuechange: ((Event) -> dynamic)? - fun addCue(cue: TextTrackCue): Unit - fun removeCue(cue: TextTrackCue): Unit + fun addCue(cue: TextTrackCue) + fun removeCue(cue: TextTrackCue) } public external abstract class TextTrackCueList { open val length: Int fun getCueById(id: String): TextTrackCue? } -@kotlin.internal.InlineOnly inline operator fun TextTrackCueList.get(index: Int): TextTrackCue? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun TextTrackCueList.get(index: Int): TextTrackCue? = asDynamic()[index] /** * Exposes the JavaScript [TextTrackCue](https://developer.mozilla.org/en/docs/Web/API/TextTrackCue) to Kotlin @@ -1138,6 +1469,13 @@ public external abstract class TimeRanges { */ public external open class TrackEvent(type: String, eventInitDict: TrackEventInit = definedExternally) : Event { open val track: UnionAudioTrackOrTextTrackOrVideoTrack? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface TrackEventInit : EventInit { @@ -1149,12 +1487,10 @@ public external interface TrackEventInit : EventInit { @kotlin.internal.InlineOnly public inline fun TrackEventInit(track: UnionAudioTrackOrTextTrackOrVideoTrack? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): TrackEventInit { val o = js("({})") - o["track"] = track o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -1164,6 +1500,27 @@ public inline fun TrackEventInit(track: UnionAudioTrackOrTextTrackOrVideoTrack? public external abstract class HTMLMapElement : HTMLElement { open var name: String open val areas: HTMLCollection + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1180,6 +1537,27 @@ public external abstract class HTMLAreaElement : HTMLElement, HTMLHyperlinkEleme open val relList: DOMTokenList open var referrerPolicy: String open var noHref: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1201,14 +1579,35 @@ public external abstract class HTMLTableElement : HTMLElement { open var cellPadding: String open var cellSpacing: String fun createCaption(): HTMLTableCaptionElement - fun deleteCaption(): Unit + fun deleteCaption() fun createTHead(): HTMLTableSectionElement - fun deleteTHead(): Unit + fun deleteTHead() fun createTFoot(): HTMLTableSectionElement - fun deleteTFoot(): Unit + fun deleteTFoot() fun createTBody(): HTMLTableSectionElement fun insertRow(index: Int = definedExternally): HTMLTableRowElement - fun deleteRow(index: Int): Unit + fun deleteRow(index: Int) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1216,6 +1615,27 @@ public external abstract class HTMLTableElement : HTMLElement { */ public external abstract class HTMLTableCaptionElement : HTMLElement { open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1228,6 +1648,27 @@ public external abstract class HTMLTableColElement : HTMLElement { open var chOff: String open var vAlign: String open var width: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1240,7 +1681,28 @@ public external abstract class HTMLTableSectionElement : HTMLElement { open var chOff: String open var vAlign: String fun insertRow(index: Int = definedExternally): HTMLElement - fun deleteRow(index: Int): Unit + fun deleteRow(index: Int) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1256,7 +1718,28 @@ public external abstract class HTMLTableRowElement : HTMLElement { open var vAlign: String open var bgColor: String fun insertCell(index: Int = definedExternally): HTMLElement - fun deleteCell(index: Int): Unit + fun deleteCell(index: Int) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1278,6 +1761,27 @@ public external abstract class HTMLTableCellElement : HTMLElement { open var noWrap: Boolean open var vAlign: String open var bgColor: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1295,13 +1799,38 @@ public external abstract class HTMLFormElement : HTMLElement { open var target: String open val elements: HTMLFormControlsCollection open val length: Int - fun submit(): Unit - fun reset(): Unit + fun submit() + fun reset() fun checkValidity(): Boolean fun reportValidity(): Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } -@kotlin.internal.InlineOnly inline operator fun HTMLFormElement.get(index: Int): Element? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun HTMLFormElement.get(name: String): UnionElementOrRadioNodeList? = asDynamic()[name] + +@kotlin.internal.InlineOnly +public inline operator fun HTMLFormElement.get(index: Int): Element? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun HTMLFormElement.get(name: String): UnionElementOrRadioNodeList? = asDynamic()[name] /** * Exposes the JavaScript [HTMLLabelElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLabelElement) to Kotlin @@ -1310,6 +1839,27 @@ public external abstract class HTMLLabelElement : HTMLElement { open val form: HTMLFormElement? open var htmlFor: String open val control: HTMLElement? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1363,15 +1913,36 @@ public external abstract class HTMLInputElement : HTMLElement { open var selectionDirection: String? open var align: String open var useMap: String - fun stepUp(n: Int = definedExternally): Unit - fun stepDown(n: Int = definedExternally): Unit + fun stepUp(n: Int = definedExternally) + fun stepDown(n: Int = definedExternally) fun checkValidity(): Boolean fun reportValidity(): Boolean - fun setCustomValidity(error: String): Unit - fun select(): Unit - fun setRangeText(replacement: String): Unit - fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode = definedExternally): Unit - fun setSelectionRange(start: Int, end: Int, direction: String = definedExternally): Unit + fun setCustomValidity(error: String) + fun select() + fun setRangeText(replacement: String) + fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode = definedExternally) + fun setSelectionRange(start: Int, end: Int, direction: String = definedExternally) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1396,7 +1967,28 @@ public external abstract class HTMLButtonElement : HTMLElement { open val labels: NodeList fun checkValidity(): Boolean fun reportValidity(): Boolean - fun setCustomValidity(error: String): Unit + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -1421,22 +2013,68 @@ public external abstract class HTMLSelectElement : HTMLElement, ItemArrayLike dynamic)? - override var onlostpointercapture: ((PointerEvent) -> dynamic)? - override var onpointerdown: ((PointerEvent) -> dynamic)? - override var onpointermove: ((PointerEvent) -> dynamic)? - override var onpointerup: ((PointerEvent) -> dynamic)? - override var onpointercancel: ((PointerEvent) -> dynamic)? - override var onpointerover: ((PointerEvent) -> dynamic)? - override var onpointerout: ((PointerEvent) -> dynamic)? - override var onpointerenter: ((PointerEvent) -> dynamic)? - override var onpointerleave: ((PointerEvent) -> dynamic)? +public external abstract class HTMLTextAreaElement : HTMLElement { + open var autocomplete: String + open var autofocus: Boolean + open var cols: Int + open var dirName: String + open var disabled: Boolean + open val form: HTMLFormElement? + open var inputMode: String + open var maxLength: Int + open var minLength: Int + open var name: String + open var placeholder: String + open var readOnly: Boolean + open var required: Boolean + open var rows: Int + open var wrap: String + open val type: String + open var defaultValue: String + open var value: String + open val textLength: Int + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + open var selectionStart: Int? + open var selectionEnd: Int? + open var selectionDirection: String? + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + fun select() + fun setRangeText(replacement: String) + fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode = definedExternally) + fun setSelectionRange(start: Int, end: Int, direction: String = definedExternally) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLKeygenElement](https://developer.mozilla.org/en/docs/Web/API/HTMLKeygenElement) to Kotlin + */ +public external abstract class HTMLKeygenElement : HTMLElement { + open var autofocus: Boolean + open var challenge: String + open var disabled: Boolean + open val form: HTMLFormElement? + open var keytype: String + open var name: String + open val type: String + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLOutputElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOutputElement) to Kotlin + */ +public external abstract class HTMLOutputElement : HTMLElement { + open val htmlFor: DOMTokenList + open val form: HTMLFormElement? + open var name: String + open val type: String + open var defaultValue: String + open var value: String + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + open val labels: NodeList + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLProgressElement](https://developer.mozilla.org/en/docs/Web/API/HTMLProgressElement) to Kotlin + */ +public external abstract class HTMLProgressElement : HTMLElement { + open var value: Double + open var max: Double + open val position: Double + open val labels: NodeList + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLMeterElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMeterElement) to Kotlin + */ +public external abstract class HTMLMeterElement : HTMLElement { + open var value: Double + open var min: Double + open var max: Double + open var low: Double + open var high: Double + open var optimum: Double + open val labels: NodeList + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLFieldSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFieldSetElement) to Kotlin + */ +public external abstract class HTMLFieldSetElement : HTMLElement { + open var disabled: Boolean + open val form: HTMLFormElement? + open var name: String + open val type: String + open val elements: HTMLCollection + open val willValidate: Boolean + open val validity: ValidityState + open val validationMessage: String + fun checkValidity(): Boolean + fun reportValidity(): Boolean + fun setCustomValidity(error: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLLegendElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLegendElement) to Kotlin + */ +public external abstract class HTMLLegendElement : HTMLElement { + open val form: HTMLFormElement? + open var align: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [ValidityState](https://developer.mozilla.org/en/docs/Web/API/ValidityState) to Kotlin + */ +public external abstract class ValidityState { + open val valueMissing: Boolean + open val typeMismatch: Boolean + open val patternMismatch: Boolean + open val tooLong: Boolean + open val tooShort: Boolean + open val rangeUnderflow: Boolean + open val rangeOverflow: Boolean + open val stepMismatch: Boolean + open val badInput: Boolean + open val customError: Boolean + open val valid: Boolean +} + +/** + * Exposes the JavaScript [HTMLDetailsElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDetailsElement) to Kotlin + */ +public external abstract class HTMLDetailsElement : HTMLElement { + open var open: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class HTMLMenuElement : HTMLElement { + open var type: String + open var label: String + open var compact: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class HTMLMenuItemElement : HTMLElement { + open var type: String + open var label: String + open var icon: String + open var disabled: Boolean + open var checked: Boolean + open var radiogroup: String + open var default: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external open class RelatedEvent(type: String, eventInitDict: RelatedEventInit = definedExternally) : Event { + open val relatedTarget: EventTarget? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface RelatedEventInit : EventInit { + var relatedTarget: EventTarget? /* = null */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun RelatedEventInit(relatedTarget: EventTarget? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): RelatedEventInit { + val o = js("({})") + o["relatedTarget"] = relatedTarget + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [HTMLDialogElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDialogElement) to Kotlin + */ +public external abstract class HTMLDialogElement : HTMLElement { + open var open: Boolean + open var returnValue: String + fun show(anchor: UnionElementOrMouseEvent = definedExternally) + fun showModal(anchor: UnionElementOrMouseEvent = definedExternally) + fun close(returnValue: String = definedExternally) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLScriptElement](https://developer.mozilla.org/en/docs/Web/API/HTMLScriptElement) to Kotlin + */ +public external abstract class HTMLScriptElement : HTMLElement, HTMLOrSVGScriptElement { + open var src: String + open var type: String + open var charset: String + open var async: Boolean + open var defer: Boolean + open var crossOrigin: String? + open var text: String + open var nonce: String + open var event: String + open var htmlFor: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLTemplateElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTemplateElement) to Kotlin + */ +public external abstract class HTMLTemplateElement : HTMLElement { + open val content: DocumentFragment + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLSlotElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSlotElement) to Kotlin + */ +public external abstract class HTMLSlotElement : HTMLElement { + open var name: String + fun assignedNodes(options: AssignedNodesOptions = definedExternally): Array + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface AssignedNodesOptions { + var flatten: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun AssignedNodesOptions(flatten: Boolean? = false): AssignedNodesOptions { + val o = js("({})") + o["flatten"] = flatten + return o +} + +/** + * Exposes the JavaScript [HTMLCanvasElement](https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement) to Kotlin + */ +public external abstract class HTMLCanvasElement : HTMLElement, CanvasImageSource, TexImageSource { + open var width: Int + open var height: Int + fun getContext(contextId: String, vararg arguments: Any?): RenderingContext? + fun toDataURL(type: String = definedExternally, quality: Any? = definedExternally): String + fun toBlob(_callback: (Blob?) -> Unit, type: String = definedExternally, quality: Any? = definedExternally) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface CanvasRenderingContext2DSettings { + var alpha: Boolean? /* = true */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun CanvasRenderingContext2DSettings(alpha: Boolean? = true): CanvasRenderingContext2DSettings { + val o = js("({})") + o["alpha"] = alpha + return o +} + +/** + * Exposes the JavaScript [CanvasRenderingContext2D](https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D) to Kotlin + */ +public external abstract class CanvasRenderingContext2D : CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasHitRegion, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath, RenderingContext { + open val canvas: HTMLCanvasElement +} + +public external interface CanvasState { + fun save() + fun restore() +} + +public external interface CanvasTransform { + fun scale(x: Double, y: Double) + fun rotate(angle: Double) + fun translate(x: Double, y: Double) + fun transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) + fun getTransform(): DOMMatrix + fun setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) + fun setTransform(transform: dynamic = definedExternally) + fun resetTransform() +} + +public external interface CanvasCompositing { + var globalAlpha: Double + var globalCompositeOperation: String +} + +public external interface CanvasImageSmoothing { + var imageSmoothingEnabled: Boolean + var imageSmoothingQuality: ImageSmoothingQuality +} + +public external interface CanvasFillStrokeStyles { + var strokeStyle: dynamic + get() = definedExternally + set(value) = definedExternally + var fillStyle: dynamic + get() = definedExternally + set(value) = definedExternally + fun createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double): CanvasGradient + fun createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double): CanvasGradient + fun createPattern(image: CanvasImageSource, repetition: String): CanvasPattern? +} + +public external interface CanvasShadowStyles { + var shadowOffsetX: Double + var shadowOffsetY: Double + var shadowBlur: Double + var shadowColor: String +} + +public external interface CanvasFilters { + var filter: String +} + +public external interface CanvasRect { + fun clearRect(x: Double, y: Double, w: Double, h: Double) + fun fillRect(x: Double, y: Double, w: Double, h: Double) + fun strokeRect(x: Double, y: Double, w: Double, h: Double) +} + +public external interface CanvasDrawPath { + fun beginPath() + fun fill(fillRule: CanvasFillRule = definedExternally) + fun fill(path: Path2D, fillRule: CanvasFillRule = definedExternally) + fun stroke() + fun stroke(path: Path2D) + fun clip(fillRule: CanvasFillRule = definedExternally) + fun clip(path: Path2D, fillRule: CanvasFillRule = definedExternally) + fun resetClip() + fun isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule = definedExternally): Boolean + fun isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule = definedExternally): Boolean + fun isPointInStroke(x: Double, y: Double): Boolean + fun isPointInStroke(path: Path2D, x: Double, y: Double): Boolean +} + +public external interface CanvasUserInterface { + fun drawFocusIfNeeded(element: Element) + fun drawFocusIfNeeded(path: Path2D, element: Element) + fun scrollPathIntoView() + fun scrollPathIntoView(path: Path2D) +} + +public external interface CanvasText { + fun fillText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally) + fun strokeText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally) + fun measureText(text: String): TextMetrics +} + +public external interface CanvasDrawImage { + fun drawImage(image: CanvasImageSource, dx: Double, dy: Double) + fun drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) + fun drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double) +} + +public external interface CanvasHitRegion { + fun addHitRegion(options: HitRegionOptions = definedExternally) + fun removeHitRegion(id: String) + fun clearHitRegions() +} + +public external interface CanvasImageData { + fun createImageData(sw: Double, sh: Double): ImageData + fun createImageData(imagedata: ImageData): ImageData + fun getImageData(sx: Double, sy: Double, sw: Double, sh: Double): ImageData + fun putImageData(imagedata: ImageData, dx: Double, dy: Double) + fun putImageData(imagedata: ImageData, dx: Double, dy: Double, dirtyX: Double, dirtyY: Double, dirtyWidth: Double, dirtyHeight: Double) +} + +public external interface CanvasPathDrawingStyles { + var lineWidth: Double + var lineCap: CanvasLineCap + var lineJoin: CanvasLineJoin + var miterLimit: Double + var lineDashOffset: Double + fun setLineDash(segments: Array) + fun getLineDash(): Array +} + +public external interface CanvasTextDrawingStyles { + var font: String + var textAlign: CanvasTextAlign + var textBaseline: CanvasTextBaseline + var direction: CanvasDirection +} + +public external interface CanvasPath { + fun closePath() + fun moveTo(x: Double, y: Double) + fun lineTo(x: Double, y: Double) + fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double) + fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double) + fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double) + fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double) + fun rect(x: Double, y: Double, w: Double, h: Double) + fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = definedExternally) + fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = definedExternally) +} + +/** + * Exposes the JavaScript [CanvasGradient](https://developer.mozilla.org/en/docs/Web/API/CanvasGradient) to Kotlin + */ +public external abstract class CanvasGradient { + fun addColorStop(offset: Double, color: String) +} + +/** + * Exposes the JavaScript [CanvasPattern](https://developer.mozilla.org/en/docs/Web/API/CanvasPattern) to Kotlin + */ +public external abstract class CanvasPattern { + fun setTransform(transform: dynamic = definedExternally) +} + +/** + * Exposes the JavaScript [TextMetrics](https://developer.mozilla.org/en/docs/Web/API/TextMetrics) to Kotlin + */ +public external abstract class TextMetrics { + open val width: Double + open val actualBoundingBoxLeft: Double + open val actualBoundingBoxRight: Double + open val fontBoundingBoxAscent: Double + open val fontBoundingBoxDescent: Double + open val actualBoundingBoxAscent: Double + open val actualBoundingBoxDescent: Double + open val emHeightAscent: Double + open val emHeightDescent: Double + open val hangingBaseline: Double + open val alphabeticBaseline: Double + open val ideographicBaseline: Double +} + +public external interface HitRegionOptions { + var path: Path2D? /* = null */ + get() = definedExternally + set(value) = definedExternally + var fillRule: CanvasFillRule? /* = CanvasFillRule.NONZERO */ + get() = definedExternally + set(value) = definedExternally + var id: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally + var parentID: String? /* = null */ + get() = definedExternally + set(value) = definedExternally + var cursor: String? /* = "inherit" */ + get() = definedExternally + set(value) = definedExternally + var control: Element? /* = null */ + get() = definedExternally + set(value) = definedExternally + var label: String? /* = null */ + get() = definedExternally + set(value) = definedExternally + var role: String? /* = null */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun HitRegionOptions(path: Path2D? = null, fillRule: CanvasFillRule? = CanvasFillRule.NONZERO, id: String? = "", parentID: String? = null, cursor: String? = "inherit", control: Element? = null, label: String? = null, role: String? = null): HitRegionOptions { + val o = js("({})") + o["path"] = path + o["fillRule"] = fillRule + o["id"] = id + o["parentID"] = parentID + o["cursor"] = cursor + o["control"] = control + o["label"] = label + o["role"] = role + return o +} + +/** + * Exposes the JavaScript [ImageData](https://developer.mozilla.org/en/docs/Web/API/ImageData) to Kotlin + */ +public external open class ImageData : ImageBitmapSource, TexImageSource { + constructor(sw: Int, sh: Int) + constructor(data: Uint8ClampedArray, sw: Int, sh: Int = definedExternally) + open val width: Int + open val height: Int + open val data: Uint8ClampedArray +} + +/** + * Exposes the JavaScript [Path2D](https://developer.mozilla.org/en/docs/Web/API/Path2D) to Kotlin + */ +public external open class Path2D() : CanvasPath { + constructor(path: Path2D) + constructor(paths: Array, fillRule: CanvasFillRule = definedExternally) + constructor(d: String) + fun addPath(path: Path2D, transform: dynamic = definedExternally) + override fun closePath() + override fun moveTo(x: Double, y: Double) + override fun lineTo(x: Double, y: Double) + override fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double) + override fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double) + override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double) + override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double) + override fun rect(x: Double, y: Double, w: Double, h: Double) + override fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* = definedExternally */) + override fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* = definedExternally */) +} + +/** + * Exposes the JavaScript [ImageBitmapRenderingContext](https://developer.mozilla.org/en/docs/Web/API/ImageBitmapRenderingContext) to Kotlin + */ +public external abstract class ImageBitmapRenderingContext { + open val canvas: HTMLCanvasElement + fun transferFromImageBitmap(bitmap: ImageBitmap?) +} + +public external interface ImageBitmapRenderingContextSettings { + var alpha: Boolean? /* = true */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun ImageBitmapRenderingContextSettings(alpha: Boolean? = true): ImageBitmapRenderingContextSettings { + val o = js("({})") + o["alpha"] = alpha + return o +} + +/** + * Exposes the JavaScript [CustomElementRegistry](https://developer.mozilla.org/en/docs/Web/API/CustomElementRegistry) to Kotlin + */ +public external abstract class CustomElementRegistry { + fun define(name: String, constructor: () -> dynamic, options: ElementDefinitionOptions = definedExternally) + fun get(name: String): Any? + fun whenDefined(name: String): Promise +} + +public external interface ElementDefinitionOptions { + var extends: String? + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun ElementDefinitionOptions(extends: String? = undefined): ElementDefinitionOptions { + val o = js("({})") + o["extends"] = extends + return o +} + +public external interface ElementContentEditable { + var contentEditable: String + val isContentEditable: Boolean +} + +/** + * Exposes the JavaScript [DataTransfer](https://developer.mozilla.org/en/docs/Web/API/DataTransfer) to Kotlin + */ +public external abstract class DataTransfer { + open var dropEffect: String + open var effectAllowed: String + open val items: DataTransferItemList + open val types: Array + open val files: FileList + fun setDragImage(image: Element, x: Int, y: Int) + fun getData(format: String): String + fun setData(format: String, data: String) + fun clearData(format: String = definedExternally) +} + +/** + * Exposes the JavaScript [DataTransferItemList](https://developer.mozilla.org/en/docs/Web/API/DataTransferItemList) to Kotlin + */ +public external abstract class DataTransferItemList { + open val length: Int + fun add(data: String, type: String): DataTransferItem? + fun add(data: File): DataTransferItem? + fun remove(index: Int) + fun clear() +} + +@kotlin.internal.InlineOnly +public inline operator fun DataTransferItemList.get(index: Int): DataTransferItem? = asDynamic()[index] + +/** + * Exposes the JavaScript [DataTransferItem](https://developer.mozilla.org/en/docs/Web/API/DataTransferItem) to Kotlin + */ +public external abstract class DataTransferItem { + open val kind: String + open val type: String + fun getAsString(_callback: ((String) -> Unit)?) + fun getAsFile(): File? +} + +/** + * Exposes the JavaScript [DragEvent](https://developer.mozilla.org/en/docs/Web/API/DragEvent) to Kotlin + */ +public external open class DragEvent(type: String, eventInitDict: DragEventInit = definedExternally) : MouseEvent { + open val dataTransfer: DataTransfer? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface DragEventInit : MouseEventInit { + var dataTransfer: DataTransfer? /* = null */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun DragEventInit(dataTransfer: DataTransfer? = null, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): DragEventInit { + val o = js("({})") + o["dataTransfer"] = dataTransfer + o["screenX"] = screenX + o["screenY"] = screenY + o["clientX"] = clientX + o["clientY"] = clientY + o["button"] = button + o["buttons"] = buttons + o["relatedTarget"] = relatedTarget + o["region"] = region + o["ctrlKey"] = ctrlKey + o["shiftKey"] = shiftKey + o["altKey"] = altKey + o["metaKey"] = metaKey + o["modifierAltGraph"] = modifierAltGraph + o["modifierCapsLock"] = modifierCapsLock + o["modifierFn"] = modifierFn + o["modifierFnLock"] = modifierFnLock + o["modifierHyper"] = modifierHyper + o["modifierNumLock"] = modifierNumLock + o["modifierScrollLock"] = modifierScrollLock + o["modifierSuper"] = modifierSuper + o["modifierSymbol"] = modifierSymbol + o["modifierSymbolLock"] = modifierSymbolLock + o["view"] = view + o["detail"] = detail + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [Window](https://developer.mozilla.org/en/docs/Web/API/Window) to Kotlin + */ +public external abstract class Window : EventTarget, GlobalEventHandlers, WindowEventHandlers, WindowOrWorkerGlobalScope, WindowSessionStorage, WindowLocalStorage, GlobalPerformance, UnionMessagePortOrWindowProxy { + open val window: Window + open val self: Window + open val document: Document + open var name: String + open val location: Location + open val history: History + open val customElements: CustomElementRegistry + open val locationbar: BarProp + open val menubar: BarProp + open val personalbar: BarProp + open val scrollbars: BarProp + open val statusbar: BarProp + open val toolbar: BarProp + open var status: String + open val closed: Boolean + open val frames: Window + open val length: Int + open val top: Window + open var opener: Any? + open val parent: Window + open val frameElement: Element? + open val navigator: Navigator + open val applicationCache: ApplicationCache + open val external: External + open val screen: Screen + open val innerWidth: Int + open val innerHeight: Int + open val scrollX: Double + open val pageXOffset: Double + open val scrollY: Double + open val pageYOffset: Double + open val screenX: Int + open val screenY: Int + open val outerWidth: Int + open val outerHeight: Int + open val devicePixelRatio: Double + fun close() + fun stop() + fun focus() + fun blur() + fun open(url: String = definedExternally, target: String = definedExternally, features: String = definedExternally): Window? + fun alert() + fun alert(message: String) + fun confirm(message: String = definedExternally): Boolean + fun prompt(message: String = definedExternally, default: String = definedExternally): String? + fun print() + fun requestAnimationFrame(callback: (Double) -> Unit): Int + fun cancelAnimationFrame(handle: Int) + fun postMessage(message: Any?, targetOrigin: String, transfer: Array = definedExternally) + fun captureEvents() + fun releaseEvents() + fun matchMedia(query: String): MediaQueryList + fun moveTo(x: Int, y: Int) + fun moveBy(x: Int, y: Int) + fun resizeTo(x: Int, y: Int) + fun resizeBy(x: Int, y: Int) + fun scroll(options: ScrollToOptions = definedExternally) + fun scroll(x: Double, y: Double) + fun scrollTo(options: ScrollToOptions = definedExternally) + fun scrollTo(x: Double, y: Double) + fun scrollBy(options: ScrollToOptions = definedExternally) + fun scrollBy(x: Double, y: Double) + fun getComputedStyle(elt: Element, pseudoElt: String? = definedExternally): CSSStyleDeclaration +} + +@kotlin.internal.InlineOnly +public inline operator fun Window.get(name: String): dynamic = asDynamic()[name] + +public external abstract class BarProp { + open val visible: Boolean +} + +/** + * Exposes the JavaScript [History](https://developer.mozilla.org/en/docs/Web/API/History) to Kotlin + */ +public external abstract class History { + open val length: Int + open var scrollRestoration: ScrollRestoration + open val state: Any? + fun go(delta: Int = definedExternally) + fun back() + fun forward() + fun pushState(data: Any?, title: String, url: String? = definedExternally) + fun replaceState(data: Any?, title: String, url: String? = definedExternally) +} + +/** + * Exposes the JavaScript [Location](https://developer.mozilla.org/en/docs/Web/API/Location) to Kotlin + */ +public external abstract class Location { + open var href: String + open val origin: String + open var protocol: String + open var host: String + open var hostname: String + open var port: String + open var pathname: String + open var search: String + open var hash: String + open val ancestorOrigins: Array + fun assign(url: String) + fun replace(url: String) + fun reload() +} + +/** + * Exposes the JavaScript [PopStateEvent](https://developer.mozilla.org/en/docs/Web/API/PopStateEvent) to Kotlin + */ +public external open class PopStateEvent(type: String, eventInitDict: PopStateEventInit = definedExternally) : Event { + open val state: Any? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface PopStateEventInit : EventInit { + var state: Any? /* = null */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun PopStateEventInit(state: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PopStateEventInit { + val o = js("({})") + o["state"] = state + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [HashChangeEvent](https://developer.mozilla.org/en/docs/Web/API/HashChangeEvent) to Kotlin + */ +public external open class HashChangeEvent(type: String, eventInitDict: HashChangeEventInit = definedExternally) : Event { + open val oldURL: String + open val newURL: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface HashChangeEventInit : EventInit { + var oldURL: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally + var newURL: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun HashChangeEventInit(oldURL: String? = "", newURL: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): HashChangeEventInit { + val o = js("({})") + o["oldURL"] = oldURL + o["newURL"] = newURL + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [PageTransitionEvent](https://developer.mozilla.org/en/docs/Web/API/PageTransitionEvent) to Kotlin + */ +public external open class PageTransitionEvent(type: String, eventInitDict: PageTransitionEventInit = definedExternally) : Event { + open val persisted: Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface PageTransitionEventInit : EventInit { + var persisted: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun PageTransitionEventInit(persisted: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PageTransitionEventInit { + val o = js("({})") + o["persisted"] = persisted + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [BeforeUnloadEvent](https://developer.mozilla.org/en/docs/Web/API/BeforeUnloadEvent) to Kotlin + */ +public external open class BeforeUnloadEvent : Event { + var returnValue: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external abstract class ApplicationCache : EventTarget { + open val status: Short + open var onchecking: ((Event) -> dynamic)? + open var onerror: ((Event) -> dynamic)? + open var onnoupdate: ((Event) -> dynamic)? + open var ondownloading: ((Event) -> dynamic)? + open var onprogress: ((ProgressEvent) -> dynamic)? + open var onupdateready: ((Event) -> dynamic)? + open var oncached: ((Event) -> dynamic)? + open var onobsolete: ((Event) -> dynamic)? + fun update() + fun abort() + fun swapCache() + + companion object { + val UNCACHED: Short + val IDLE: Short + val CHECKING: Short + val DOWNLOADING: Short + val UPDATEREADY: Short + val OBSOLETE: Short + } +} + +/** + * Exposes the JavaScript [NavigatorOnLine](https://developer.mozilla.org/en/docs/Web/API/NavigatorOnLine) to Kotlin + */ +public external interface NavigatorOnLine { + val onLine: Boolean +} + +/** + * Exposes the JavaScript [ErrorEvent](https://developer.mozilla.org/en/docs/Web/API/ErrorEvent) to Kotlin + */ +public external open class ErrorEvent(type: String, eventInitDict: ErrorEventInit = definedExternally) : Event { + open val message: String + open val filename: String + open val lineno: Int + open val colno: Int + open val error: Any? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface ErrorEventInit : EventInit { + var message: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally + var filename: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally + var lineno: Int? /* = 0 */ + get() = definedExternally + set(value) = definedExternally + var colno: Int? /* = 0 */ + get() = definedExternally + set(value) = definedExternally + var error: Any? /* = null */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun ErrorEventInit(message: String? = "", filename: String? = "", lineno: Int? = 0, colno: Int? = 0, error: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ErrorEventInit { + val o = js("({})") + o["message"] = message + o["filename"] = filename + o["lineno"] = lineno + o["colno"] = colno + o["error"] = error + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [PromiseRejectionEvent](https://developer.mozilla.org/en/docs/Web/API/PromiseRejectionEvent) to Kotlin + */ +public external open class PromiseRejectionEvent(type: String, eventInitDict: PromiseRejectionEventInit) : Event { + open val promise: Promise + open val reason: Any? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface PromiseRejectionEventInit : EventInit { + var promise: Promise? + get() = definedExternally + set(value) = definedExternally + var reason: Any? + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun PromiseRejectionEventInit(promise: Promise?, reason: Any? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PromiseRejectionEventInit { + val o = js("({})") + o["promise"] = promise + o["reason"] = reason + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [GlobalEventHandlers](https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers) to Kotlin + */ +public external interface GlobalEventHandlers { + var onabort: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onblur: ((FocusEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var oncancel: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var oncanplay: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var oncanplaythrough: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onchange: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onclick: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onclose: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var oncontextmenu: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var oncuechange: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondblclick: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondrag: ((DragEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondragend: ((DragEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondragenter: ((DragEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondragexit: ((DragEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondragleave: ((DragEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondragover: ((DragEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondragstart: ((DragEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondrop: ((DragEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ondurationchange: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onemptied: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onended: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onfocus: ((FocusEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var oninput: ((InputEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var oninvalid: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onkeydown: ((KeyboardEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onkeypress: ((KeyboardEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onkeyup: ((KeyboardEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onload: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onloadeddata: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onloadedmetadata: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onloadend: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onloadstart: ((ProgressEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onmousedown: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onmouseenter: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onmouseleave: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onmousemove: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onmouseout: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onmouseover: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onmouseup: ((MouseEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onwheel: ((WheelEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpause: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onplay: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onplaying: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onprogress: ((ProgressEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onratechange: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onreset: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onresize: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onscroll: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onseeked: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onseeking: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onselect: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onshow: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onstalled: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onsubmit: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onsuspend: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ontimeupdate: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ontoggle: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onvolumechange: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onwaiting: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ongotpointercapture: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onlostpointercapture: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpointerdown: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpointermove: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpointerup: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpointercancel: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpointerover: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpointerout: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpointerenter: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpointerleave: ((PointerEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally +} + +/** + * Exposes the JavaScript [WindowEventHandlers](https://developer.mozilla.org/en/docs/Web/API/WindowEventHandlers) to Kotlin + */ +public external interface WindowEventHandlers { + var onafterprint: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onbeforeprint: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onbeforeunload: ((BeforeUnloadEvent) -> String?)? + get() = definedExternally + set(value) = definedExternally + var onhashchange: ((HashChangeEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onlanguagechange: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onmessage: ((MessageEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onoffline: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var ononline: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpagehide: ((PageTransitionEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpageshow: ((PageTransitionEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpopstate: ((PopStateEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onrejectionhandled: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onstorage: ((StorageEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onunhandledrejection: ((PromiseRejectionEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onunload: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally +} + +public external interface DocumentAndElementEventHandlers { + var oncopy: ((ClipboardEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var oncut: ((ClipboardEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally + var onpaste: ((ClipboardEvent) -> dynamic)? + get() = definedExternally + set(value) = definedExternally +} + +/** + * Exposes the JavaScript [WindowOrWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WindowOrWorkerGlobalScope) to Kotlin + */ +public external interface WindowOrWorkerGlobalScope { + val origin: String + val caches: CacheStorage + fun btoa(data: String): String + fun atob(data: String): String + fun setTimeout(handler: dynamic, timeout: Int = definedExternally, vararg arguments: Any?): Int + fun clearTimeout(handle: Int = definedExternally) + fun setInterval(handler: dynamic, timeout: Int = definedExternally, vararg arguments: Any?): Int + fun clearInterval(handle: Int = definedExternally) + fun createImageBitmap(image: ImageBitmapSource, options: ImageBitmapOptions = definedExternally): Promise + fun createImageBitmap(image: ImageBitmapSource, sx: Int, sy: Int, sw: Int, sh: Int, options: ImageBitmapOptions = definedExternally): Promise + fun fetch(input: dynamic, init: RequestInit = definedExternally): Promise +} + +/** + * Exposes the JavaScript [Navigator](https://developer.mozilla.org/en/docs/Web/API/Navigator) to Kotlin + */ +public external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware { + open val clipboard: Clipboard + open val mediaDevices: MediaDevices + open val maxTouchPoints: Int + open val serviceWorker: ServiceWorkerContainer + fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (dynamic) -> Unit) + fun vibrate(pattern: dynamic): Boolean +} + +/** + * Exposes the JavaScript [NavigatorID](https://developer.mozilla.org/en/docs/Web/API/NavigatorID) to Kotlin + */ +public external interface NavigatorID { + val appCodeName: String + val appName: String + val appVersion: String + val platform: String + val product: String + val productSub: String + val userAgent: String + val vendor: String + val vendorSub: String + val oscpu: String + fun taintEnabled(): Boolean +} + +/** + * Exposes the JavaScript [NavigatorLanguage](https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage) to Kotlin + */ +public external interface NavigatorLanguage { + val language: String + val languages: Array +} + +public external interface NavigatorContentUtils { + fun registerProtocolHandler(scheme: String, url: String, title: String) + fun registerContentHandler(mimeType: String, url: String, title: String) + fun isProtocolHandlerRegistered(scheme: String, url: String): String + fun isContentHandlerRegistered(mimeType: String, url: String): String + fun unregisterProtocolHandler(scheme: String, url: String) + fun unregisterContentHandler(mimeType: String, url: String) +} + +public external interface NavigatorCookies { + val cookieEnabled: Boolean +} + +/** + * Exposes the JavaScript [NavigatorPlugins](https://developer.mozilla.org/en/docs/Web/API/NavigatorPlugins) to Kotlin + */ +public external interface NavigatorPlugins { + val plugins: PluginArray + val mimeTypes: MimeTypeArray + fun javaEnabled(): Boolean +} + +/** + * Exposes the JavaScript [PluginArray](https://developer.mozilla.org/en/docs/Web/API/PluginArray) to Kotlin + */ +public external abstract class PluginArray : ItemArrayLike { + fun refresh(reload: Boolean = definedExternally) + override fun item(index: Int): Plugin? + fun namedItem(name: String): Plugin? +} + +@kotlin.internal.InlineOnly +public inline operator fun PluginArray.get(index: Int): Plugin? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun PluginArray.get(name: String): Plugin? = asDynamic()[name] + +/** + * Exposes the JavaScript [MimeTypeArray](https://developer.mozilla.org/en/docs/Web/API/MimeTypeArray) to Kotlin + */ +public external abstract class MimeTypeArray : ItemArrayLike { + override fun item(index: Int): MimeType? + fun namedItem(name: String): MimeType? +} + +@kotlin.internal.InlineOnly +public inline operator fun MimeTypeArray.get(index: Int): MimeType? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun MimeTypeArray.get(name: String): MimeType? = asDynamic()[name] + +/** + * Exposes the JavaScript [Plugin](https://developer.mozilla.org/en/docs/Web/API/Plugin) to Kotlin + */ +public external abstract class Plugin : ItemArrayLike { + open val name: String + open val description: String + open val filename: String + override fun item(index: Int): MimeType? + fun namedItem(name: String): MimeType? +} + +@kotlin.internal.InlineOnly +public inline operator fun Plugin.get(index: Int): MimeType? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun Plugin.get(name: String): MimeType? = asDynamic()[name] + +/** + * Exposes the JavaScript [MimeType](https://developer.mozilla.org/en/docs/Web/API/MimeType) to Kotlin + */ +public external abstract class MimeType { + open val type: String + open val description: String + open val suffixes: String + open val enabledPlugin: Plugin +} + +/** + * Exposes the JavaScript [ImageBitmap](https://developer.mozilla.org/en/docs/Web/API/ImageBitmap) to Kotlin + */ +public external abstract class ImageBitmap : CanvasImageSource, TexImageSource { + open val width: Int + open val height: Int + fun close() +} + +public external interface ImageBitmapOptions { + var imageOrientation: ImageOrientation? /* = ImageOrientation.NONE */ + get() = definedExternally + set(value) = definedExternally + var premultiplyAlpha: PremultiplyAlpha? /* = PremultiplyAlpha.DEFAULT */ + get() = definedExternally + set(value) = definedExternally + var colorSpaceConversion: ColorSpaceConversion? /* = ColorSpaceConversion.DEFAULT */ + get() = definedExternally + set(value) = definedExternally + var resizeWidth: Int? + get() = definedExternally + set(value) = definedExternally + var resizeHeight: Int? + get() = definedExternally + set(value) = definedExternally + var resizeQuality: ResizeQuality? /* = ResizeQuality.LOW */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun ImageBitmapOptions(imageOrientation: ImageOrientation? = ImageOrientation.NONE, premultiplyAlpha: PremultiplyAlpha? = PremultiplyAlpha.DEFAULT, colorSpaceConversion: ColorSpaceConversion? = ColorSpaceConversion.DEFAULT, resizeWidth: Int? = undefined, resizeHeight: Int? = undefined, resizeQuality: ResizeQuality? = ResizeQuality.LOW): ImageBitmapOptions { + val o = js("({})") + o["imageOrientation"] = imageOrientation + o["premultiplyAlpha"] = premultiplyAlpha + o["colorSpaceConversion"] = colorSpaceConversion + o["resizeWidth"] = resizeWidth + o["resizeHeight"] = resizeHeight + o["resizeQuality"] = resizeQuality + return o +} + +/** + * Exposes the JavaScript [MessageEvent](https://developer.mozilla.org/en/docs/Web/API/MessageEvent) to Kotlin + */ +public external open class MessageEvent(type: String, eventInitDict: MessageEventInit = definedExternally) : Event { + open val data: Any? + open val origin: String + open val lastEventId: String + open val source: UnionMessagePortOrWindowProxy? + open val ports: Array + fun initMessageEvent(type: String, bubbles: Boolean, cancelable: Boolean, data: Any?, origin: String, lastEventId: String, source: UnionMessagePortOrWindowProxy?, ports: Array) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface MessageEventInit : EventInit { + var data: Any? /* = null */ + get() = definedExternally + set(value) = definedExternally + var origin: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally + var lastEventId: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally + var source: UnionMessagePortOrWindowProxy? /* = null */ + get() = definedExternally + set(value) = definedExternally + var ports: Array? /* = arrayOf() */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun MessageEventInit(data: Any? = null, origin: String? = "", lastEventId: String? = "", source: UnionMessagePortOrWindowProxy? = null, ports: Array? = arrayOf(), bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MessageEventInit { + val o = js("({})") + o["data"] = data + o["origin"] = origin + o["lastEventId"] = lastEventId + o["source"] = source + o["ports"] = ports + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [EventSource](https://developer.mozilla.org/en/docs/Web/API/EventSource) to Kotlin + */ +public external open class EventSource(url: String, eventSourceInitDict: EventSourceInit = definedExternally) : EventTarget { + open val url: String + open val withCredentials: Boolean + open val readyState: Short + var onopen: ((Event) -> dynamic)? + var onmessage: ((MessageEvent) -> dynamic)? + var onerror: ((Event) -> dynamic)? + fun close() + + companion object { + val CONNECTING: Short + val OPEN: Short + val CLOSED: Short + } +} + +public external interface EventSourceInit { + var withCredentials: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun EventSourceInit(withCredentials: Boolean? = false): EventSourceInit { + val o = js("({})") + o["withCredentials"] = withCredentials + return o +} + +/** + * Exposes the JavaScript [WebSocket](https://developer.mozilla.org/en/docs/Web/API/WebSocket) to Kotlin + */ +public external open class WebSocket(url: String, protocols: dynamic = definedExternally) : EventTarget { + open val url: String + open val readyState: Short + open val bufferedAmount: Number + var onopen: ((Event) -> dynamic)? + var onerror: ((Event) -> dynamic)? + var onclose: ((Event) -> dynamic)? + open val extensions: String + open val protocol: String + var onmessage: ((MessageEvent) -> dynamic)? + var binaryType: BinaryType + fun close(code: Short = definedExternally, reason: String = definedExternally) + fun send(data: String) + fun send(data: Blob) + fun send(data: ArrayBuffer) + fun send(data: ArrayBufferView) + + companion object { + val CONNECTING: Short + val OPEN: Short + val CLOSING: Short + val CLOSED: Short + } +} + +/** + * Exposes the JavaScript [CloseEvent](https://developer.mozilla.org/en/docs/Web/API/CloseEvent) to Kotlin + */ +public external open class CloseEvent(type: String, eventInitDict: CloseEventInit = definedExternally) : Event { + open val wasClean: Boolean + open val code: Short + open val reason: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface CloseEventInit : EventInit { + var wasClean: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally + var code: Short? /* = 0 */ + get() = definedExternally + set(value) = definedExternally + var reason: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun CloseEventInit(wasClean: Boolean? = false, code: Short? = 0, reason: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CloseEventInit { + val o = js("({})") + o["wasClean"] = wasClean + o["code"] = code + o["reason"] = reason + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [MessageChannel](https://developer.mozilla.org/en/docs/Web/API/MessageChannel) to Kotlin + */ +public external open class MessageChannel { + open val port1: MessagePort + open val port2: MessagePort +} + +/** + * Exposes the JavaScript [MessagePort](https://developer.mozilla.org/en/docs/Web/API/MessagePort) to Kotlin + */ +public external abstract class MessagePort : EventTarget, UnionMessagePortOrWindowProxy, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker { + open var onmessage: ((MessageEvent) -> dynamic)? + fun postMessage(message: Any?, transfer: Array = definedExternally) + fun start() + fun close() +} + +/** + * Exposes the JavaScript [BroadcastChannel](https://developer.mozilla.org/en/docs/Web/API/BroadcastChannel) to Kotlin + */ +public external open class BroadcastChannel(name: String) : EventTarget { + open val name: String + var onmessage: ((MessageEvent) -> dynamic)? + fun postMessage(message: Any?) + fun close() +} + +/** + * Exposes the JavaScript [WorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WorkerGlobalScope) to Kotlin + */ +public external abstract class WorkerGlobalScope : EventTarget, WindowOrWorkerGlobalScope, GlobalPerformance { + open val self: WorkerGlobalScope + open val location: WorkerLocation + open val navigator: WorkerNavigator + open var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? + open var onlanguagechange: ((Event) -> dynamic)? + open var onoffline: ((Event) -> dynamic)? + open var ononline: ((Event) -> dynamic)? + open var onrejectionhandled: ((Event) -> dynamic)? + open var onunhandledrejection: ((PromiseRejectionEvent) -> dynamic)? + fun importScripts(vararg urls: String) +} + +/** + * Exposes the JavaScript [DedicatedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/DedicatedWorkerGlobalScope) to Kotlin + */ +public external abstract class DedicatedWorkerGlobalScope : WorkerGlobalScope { + open var onmessage: ((MessageEvent) -> dynamic)? + fun postMessage(message: Any?, transfer: Array = definedExternally) + fun close() +} + +/** + * Exposes the JavaScript [SharedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/SharedWorkerGlobalScope) to Kotlin + */ +public external abstract class SharedWorkerGlobalScope : WorkerGlobalScope { + open val name: String + open val applicationCache: ApplicationCache + open var onconnect: ((Event) -> dynamic)? + fun close() +} + +/** + * Exposes the JavaScript [AbstractWorker](https://developer.mozilla.org/en/docs/Web/API/AbstractWorker) to Kotlin + */ +public external interface AbstractWorker { + var onerror: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally +} + +/** + * Exposes the JavaScript [Worker](https://developer.mozilla.org/en/docs/Web/API/Worker) to Kotlin + */ +public external open class Worker(scriptURL: String, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker { + var onmessage: ((MessageEvent) -> dynamic)? + override var onerror: ((Event) -> dynamic)? + fun terminate() + fun postMessage(message: Any?, transfer: Array = definedExternally) +} + +public external interface WorkerOptions { + var type: WorkerType? /* = WorkerType.CLASSIC */ + get() = definedExternally + set(value) = definedExternally + var credentials: RequestCredentials? /* = RequestCredentials.OMIT */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun WorkerOptions(type: WorkerType? = WorkerType.CLASSIC, credentials: RequestCredentials? = RequestCredentials.OMIT): WorkerOptions { + val o = js("({})") + o["type"] = type + o["credentials"] = credentials + return o +} + +/** + * Exposes the JavaScript [SharedWorker](https://developer.mozilla.org/en/docs/Web/API/SharedWorker) to Kotlin + */ +public external open class SharedWorker(scriptURL: String, name: String = definedExternally, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker { + open val port: MessagePort + override var onerror: ((Event) -> dynamic)? +} + +/** + * Exposes the JavaScript [NavigatorConcurrentHardware](https://developer.mozilla.org/en/docs/Web/API/NavigatorConcurrentHardware) to Kotlin + */ +public external interface NavigatorConcurrentHardware { + val hardwareConcurrency: Number +} + +/** + * Exposes the JavaScript [WorkerNavigator](https://developer.mozilla.org/en/docs/Web/API/WorkerNavigator) to Kotlin + */ +public external abstract class WorkerNavigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorConcurrentHardware { + open val serviceWorker: ServiceWorkerContainer +} + +/** + * Exposes the JavaScript [WorkerLocation](https://developer.mozilla.org/en/docs/Web/API/WorkerLocation) to Kotlin + */ +public external abstract class WorkerLocation { + open val href: String + open val origin: String + open val protocol: String + open val host: String + open val hostname: String + open val port: String + open val pathname: String + open val search: String + open val hash: String +} + +/** + * Exposes the JavaScript [Storage](https://developer.mozilla.org/en/docs/Web/API/Storage) to Kotlin + */ +public external abstract class Storage { + open val length: Int + fun key(index: Int): String? + fun removeItem(key: String) + fun clear() + fun getItem(key: String): String? + fun setItem(key: String, value: String) +} + +@kotlin.internal.InlineOnly +public inline operator fun Storage.get(key: String): String? = asDynamic()[key] + +@kotlin.internal.InlineOnly +public inline operator fun Storage.set(key: String, value: String) { asDynamic()[key] = value } + +/** + * Exposes the JavaScript [WindowSessionStorage](https://developer.mozilla.org/en/docs/Web/API/WindowSessionStorage) to Kotlin + */ +public external interface WindowSessionStorage { + val sessionStorage: Storage +} + +/** + * Exposes the JavaScript [WindowLocalStorage](https://developer.mozilla.org/en/docs/Web/API/WindowLocalStorage) to Kotlin + */ +public external interface WindowLocalStorage { + val localStorage: Storage +} + +/** + * Exposes the JavaScript [StorageEvent](https://developer.mozilla.org/en/docs/Web/API/StorageEvent) to Kotlin + */ +public external open class StorageEvent(type: String, eventInitDict: StorageEventInit = definedExternally) : Event { + open val key: String? + open val oldValue: String? + open val newValue: String? + open val url: String + open val storageArea: Storage? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface StorageEventInit : EventInit { + var key: String? /* = null */ + get() = definedExternally + set(value) = definedExternally + var oldValue: String? /* = null */ + get() = definedExternally + set(value) = definedExternally + var newValue: String? /* = null */ + get() = definedExternally + set(value) = definedExternally + var url: String? /* = "" */ + get() = definedExternally + set(value) = definedExternally + var storageArea: Storage? /* = null */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun StorageEventInit(key: String? = null, oldValue: String? = null, newValue: String? = null, url: String? = "", storageArea: Storage? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): StorageEventInit { + val o = js("({})") + o["key"] = key + o["oldValue"] = oldValue + o["newValue"] = newValue + o["url"] = url + o["storageArea"] = storageArea + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +public external abstract class HTMLAppletElement : HTMLElement { + open var align: String + open var alt: String + open var archive: String + open var code: String + open var codeBase: String + open var height: String + open var hspace: Int + open var name: String + open var _object: String + open var vspace: Int + open var width: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLMarqueeElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMarqueeElement) to Kotlin + */ +public external abstract class HTMLMarqueeElement : HTMLElement { + open var behavior: String + open var bgColor: String + open var direction: String + open var height: String + open var hspace: Int + open var loop: Int + open var scrollAmount: Int + open var scrollDelay: Int + open var trueSpeed: Boolean + open var vspace: Int + open var width: String + open var onbounce: ((Event) -> dynamic)? + open var onfinish: ((Event) -> dynamic)? + open var onstart: ((Event) -> dynamic)? + fun start() + fun stop() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLFrameSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFrameSetElement) to Kotlin + */ +public external abstract class HTMLFrameSetElement : HTMLElement, WindowEventHandlers { + open var cols: String + open var rows: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class HTMLFrameElement : HTMLElement { + open var name: String + open var scrolling: String + open var src: String + open var frameBorder: String + open var longDesc: String + open var noResize: Boolean + open val contentDocument: Document? + open val contentWindow: Window? + open var marginHeight: String + open var marginWidth: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external abstract class HTMLDirectoryElement : HTMLElement { + open var compact: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +/** + * Exposes the JavaScript [HTMLFontElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFontElement) to Kotlin + */ +public external abstract class HTMLFontElement : HTMLElement { + open var color: String + open var face: String + open var size: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface External { + fun AddSearchProvider() + fun IsSearchProviderInstalled() +} + +public external interface EventInit { + var bubbles: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally + var cancelable: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally + var composed: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun EventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventInit { + val o = js("({})") + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [CustomEvent](https://developer.mozilla.org/en/docs/Web/API/CustomEvent) to Kotlin + */ +public external open class CustomEvent(type: String, eventInitDict: CustomEventInit = definedExternally) : Event { + open val detail: Any? + fun initCustomEvent(type: String, bubbles: Boolean, cancelable: Boolean, detail: Any?) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} + +public external interface CustomEventInit : EventInit { + var detail: Any? /* = null */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun CustomEventInit(detail: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CustomEventInit { + val o = js("({})") + o["detail"] = detail + o["bubbles"] = bubbles + o["cancelable"] = cancelable + o["composed"] = composed + return o +} + +public external interface EventListenerOptions { + var capture: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun EventListenerOptions(capture: Boolean? = false): EventListenerOptions { + val o = js("({})") + o["capture"] = capture + return o +} + +public external interface AddEventListenerOptions : EventListenerOptions { + var passive: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally + var once: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun AddEventListenerOptions(passive: Boolean? = false, once: Boolean? = false, capture: Boolean? = false): AddEventListenerOptions { + val o = js("({})") + o["passive"] = passive + o["once"] = once + o["capture"] = capture + return o +} + +public external interface NonElementParentNode { + fun getElementById(elementId: String): Element? +} + +/** + * Exposes the JavaScript [DocumentOrShadowRoot](https://developer.mozilla.org/en/docs/Web/API/DocumentOrShadowRoot) to Kotlin + */ +public external interface DocumentOrShadowRoot { + val fullscreenElement: Element? + get() = definedExternally +} + +/** + * Exposes the JavaScript [ParentNode](https://developer.mozilla.org/en/docs/Web/API/ParentNode) to Kotlin + */ +public external interface ParentNode { + val children: HTMLCollection + val firstElementChild: Element? + get() = definedExternally + val lastElementChild: Element? + get() = definedExternally + val childElementCount: Int + fun prepend(vararg nodes: dynamic) + fun append(vararg nodes: dynamic) + fun querySelector(selectors: String): Element? + fun querySelectorAll(selectors: String): NodeList +} + +/** + * Exposes the JavaScript [NonDocumentTypeChildNode](https://developer.mozilla.org/en/docs/Web/API/NonDocumentTypeChildNode) to Kotlin + */ +public external interface NonDocumentTypeChildNode { + val previousElementSibling: Element? + get() = definedExternally + val nextElementSibling: Element? + get() = definedExternally +} + +/** + * Exposes the JavaScript [ChildNode](https://developer.mozilla.org/en/docs/Web/API/ChildNode) to Kotlin + */ +public external interface ChildNode { + fun before(vararg nodes: dynamic) + fun after(vararg nodes: dynamic) + fun replaceWith(vararg nodes: dynamic) + fun remove() +} + +/** + * Exposes the JavaScript [Slotable](https://developer.mozilla.org/en/docs/Web/API/Slotable) to Kotlin + */ +public external interface Slotable { + val assignedSlot: HTMLSlotElement? + get() = definedExternally +} + +/** + * Exposes the JavaScript [NodeList](https://developer.mozilla.org/en/docs/Web/API/NodeList) to Kotlin + */ +public external abstract class NodeList : ItemArrayLike { + override fun item(index: Int): Node? +} + +@kotlin.internal.InlineOnly +public inline operator fun NodeList.get(index: Int): Node? = asDynamic()[index] + +/** + * Exposes the JavaScript [HTMLCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLCollection) to Kotlin + */ +public external abstract class HTMLCollection : ItemArrayLike, UnionElementOrHTMLCollection { + override fun item(index: Int): Element? + fun namedItem(name: String): Element? +} + +@kotlin.internal.InlineOnly +public inline operator fun HTMLCollection.get(index: Int): Element? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun HTMLCollection.get(name: String): Element? = asDynamic()[name] + +/** + * Exposes the JavaScript [MutationObserver](https://developer.mozilla.org/en/docs/Web/API/MutationObserver) to Kotlin + */ +public external open class MutationObserver(callback: (Array, MutationObserver) -> Unit) { + fun observe(target: Node, options: MutationObserverInit = definedExternally) + fun disconnect() + fun takeRecords(): Array +} + +/** + * Exposes the JavaScript [MutationObserverInit](https://developer.mozilla.org/en/docs/Web/API/MutationObserverInit) to Kotlin + */ +public external interface MutationObserverInit { + var childList: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally + var attributes: Boolean? + get() = definedExternally + set(value) = definedExternally + var characterData: Boolean? + get() = definedExternally + set(value) = definedExternally + var subtree: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally + var attributeOldValue: Boolean? + get() = definedExternally + set(value) = definedExternally + var characterDataOldValue: Boolean? + get() = definedExternally + set(value) = definedExternally + var attributeFilter: Array? + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun MutationObserverInit(childList: Boolean? = false, attributes: Boolean? = undefined, characterData: Boolean? = undefined, subtree: Boolean? = false, attributeOldValue: Boolean? = undefined, characterDataOldValue: Boolean? = undefined, attributeFilter: Array? = undefined): MutationObserverInit { + val o = js("({})") + o["childList"] = childList + o["attributes"] = attributes + o["characterData"] = characterData + o["subtree"] = subtree + o["attributeOldValue"] = attributeOldValue + o["characterDataOldValue"] = characterDataOldValue + o["attributeFilter"] = attributeFilter + return o +} + +/** + * Exposes the JavaScript [MutationRecord](https://developer.mozilla.org/en/docs/Web/API/MutationRecord) to Kotlin + */ +public external abstract class MutationRecord { + open val type: String + open val target: Node + open val addedNodes: NodeList + open val removedNodes: NodeList + open val previousSibling: Node? + open val nextSibling: Node? + open val attributeName: String? + open val attributeNamespace: String? + open val oldValue: String? +} + +/** + * Exposes the JavaScript [Node](https://developer.mozilla.org/en/docs/Web/API/Node) to Kotlin + */ +public external abstract class Node : EventTarget { + open val nodeType: Short + open val nodeName: String + open val baseURI: String + open val isConnected: Boolean + open val ownerDocument: Document? + open val parentNode: Node? + open val parentElement: Element? + open val childNodes: NodeList + open val firstChild: Node? + open val lastChild: Node? + open val previousSibling: Node? + open val nextSibling: Node? + open var nodeValue: String? + open var textContent: String? + fun getRootNode(options: GetRootNodeOptions = definedExternally): Node + fun hasChildNodes(): Boolean + fun normalize() + fun cloneNode(deep: Boolean = definedExternally): Node + fun isEqualNode(otherNode: Node?): Boolean + fun isSameNode(otherNode: Node?): Boolean + fun compareDocumentPosition(other: Node): Short + fun contains(other: Node?): Boolean + fun lookupPrefix(namespace: String?): String? + fun lookupNamespaceURI(prefix: String?): String? + fun isDefaultNamespace(namespace: String?): Boolean + fun insertBefore(node: Node, child: Node?): Node + fun appendChild(node: Node): Node + fun replaceChild(node: Node, child: Node): Node + fun removeChild(child: Node): Node + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } +} + +public external interface GetRootNodeOptions { + var composed: Boolean? /* = false */ + get() = definedExternally + set(value) = definedExternally +} + +@kotlin.internal.InlineOnly +public inline fun GetRootNodeOptions(composed: Boolean? = false): GetRootNodeOptions { + val o = js("({})") + o["composed"] = composed + return o +} + +/** + * Exposes the JavaScript [Document](https://developer.mozilla.org/en/docs/Web/API/Document) to Kotlin + */ +public external open class Document : Node, GlobalEventHandlers, DocumentAndElementEventHandlers, NonElementParentNode, DocumentOrShadowRoot, ParentNode, GeometryUtils { + open val implementation: DOMImplementation + open val URL: String + open val documentURI: String + open val origin: String + open val compatMode: String + open val characterSet: String + open val charset: String + open val inputEncoding: String + open val contentType: String + open val doctype: DocumentType? + open val documentElement: Element? + open val location: Location? + var domain: String + open val referrer: String + var cookie: String + open val lastModified: String + open val readyState: DocumentReadyState + var title: String + var dir: String + var body: HTMLElement? + open val head: HTMLHeadElement? + open val images: HTMLCollection + open val embeds: HTMLCollection + open val plugins: HTMLCollection + open val links: HTMLCollection + open val forms: HTMLCollection + open val scripts: HTMLCollection + open val currentScript: HTMLOrSVGScriptElement? + open val defaultView: Window? + open val activeElement: Element? + var designMode: String + var onreadystatechange: ((Event) -> dynamic)? + var fgColor: String + var linkColor: String + var vlinkColor: String + var alinkColor: String + var bgColor: String + open val anchors: HTMLCollection + open val applets: HTMLCollection + open val all: HTMLAllCollection + open val scrollingElement: Element? + open val styleSheets: StyleSheetList + open val rootElement: SVGSVGElement? + open val fullscreenEnabled: Boolean + open val fullscreen: Boolean + var onfullscreenchange: ((Event) -> dynamic)? + var onfullscreenerror: ((Event) -> dynamic)? override var onabort: ((Event) -> dynamic)? override var onblur: ((FocusEvent) -> dynamic)? override var oncancel: ((Event) -> dynamic)? @@ -1544,1851 +4881,73 @@ public external open class Option(text: String = definedExternally, value: Strin override var ontoggle: ((Event) -> dynamic)? override var onvolumechange: ((Event) -> dynamic)? override var onwaiting: ((Event) -> dynamic)? + override var ongotpointercapture: ((PointerEvent) -> dynamic)? + override var onlostpointercapture: ((PointerEvent) -> dynamic)? + override var onpointerdown: ((PointerEvent) -> dynamic)? + override var onpointermove: ((PointerEvent) -> dynamic)? + override var onpointerup: ((PointerEvent) -> dynamic)? + override var onpointercancel: ((PointerEvent) -> dynamic)? + override var onpointerover: ((PointerEvent) -> dynamic)? + override var onpointerout: ((PointerEvent) -> dynamic)? + override var onpointerenter: ((PointerEvent) -> dynamic)? + override var onpointerleave: ((PointerEvent) -> dynamic)? override var oncopy: ((ClipboardEvent) -> dynamic)? override var oncut: ((ClipboardEvent) -> dynamic)? override var onpaste: ((ClipboardEvent) -> dynamic)? - override var contentEditable: String - override val isContentEditable: Boolean - override fun prepend(vararg nodes: dynamic): Unit - override fun append(vararg nodes: dynamic): Unit + override val fullscreenElement: Element? + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + fun getElementsByTagName(qualifiedName: String): HTMLCollection + fun getElementsByTagNameNS(namespace: String?, localName: String): HTMLCollection + fun getElementsByClassName(classNames: String): HTMLCollection + fun createElement(localName: String, options: ElementCreationOptions = definedExternally): Element + fun createElementNS(namespace: String?, qualifiedName: String, options: ElementCreationOptions = definedExternally): Element + fun createDocumentFragment(): DocumentFragment + fun createTextNode(data: String): Text + fun createCDATASection(data: String): CDATASection + fun createComment(data: String): Comment + fun createProcessingInstruction(target: String, data: String): ProcessingInstruction + fun importNode(node: Node, deep: Boolean = definedExternally): Node + fun adoptNode(node: Node): Node + fun createAttribute(localName: String): Attr + fun createAttributeNS(namespace: String?, qualifiedName: String): Attr + fun createEvent(`interface`: String): Event + fun createRange(): Range + fun createNodeIterator(root: Node, whatToShow: Int = definedExternally, filter: NodeFilter? = definedExternally): NodeIterator + fun createNodeIterator(root: Node, whatToShow: Int = definedExternally, filter: ((Node) -> Short)? = definedExternally): NodeIterator + fun createTreeWalker(root: Node, whatToShow: Int = definedExternally, filter: NodeFilter? = definedExternally): TreeWalker + fun createTreeWalker(root: Node, whatToShow: Int = definedExternally, filter: ((Node) -> Short)? = definedExternally): TreeWalker + fun getElementsByName(elementName: String): NodeList + fun open(type: String = definedExternally, replace: String = definedExternally): Document + fun open(url: String, name: String, features: String): Window + fun close() + fun write(vararg text: String) + fun writeln(vararg text: String) + fun hasFocus(): Boolean + fun execCommand(commandId: String, showUI: Boolean = definedExternally, value: String = definedExternally): Boolean + fun queryCommandEnabled(commandId: String): Boolean + fun queryCommandIndeterm(commandId: String): Boolean + fun queryCommandState(commandId: String): Boolean + fun queryCommandSupported(commandId: String): Boolean + fun queryCommandValue(commandId: String): String + fun clear() + fun captureEvents() + fun releaseEvents() + fun elementFromPoint(x: Double, y: Double): Element? + fun elementsFromPoint(x: Double, y: Double): Array + fun caretPositionFromPoint(x: Double, y: Double): CaretPosition? + fun exitFullscreen(): Promise + override fun getElementById(elementId: String): Element? + override fun prepend(vararg nodes: dynamic) + override fun append(vararg nodes: dynamic) override fun querySelector(selectors: String): Element? override fun querySelectorAll(selectors: String): NodeList - override fun before(vararg nodes: dynamic): Unit - override fun after(vararg nodes: dynamic): Unit - override fun replaceWith(vararg nodes: dynamic): Unit - override fun remove(): Unit override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint -} - -/** - * Exposes the JavaScript [HTMLTextAreaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTextAreaElement) to Kotlin - */ -public external abstract class HTMLTextAreaElement : HTMLElement { - open var autocomplete: String - open var autofocus: Boolean - open var cols: Int - open var dirName: String - open var disabled: Boolean - open val form: HTMLFormElement? - open var inputMode: String - open var maxLength: Int - open var minLength: Int - open var name: String - open var placeholder: String - open var readOnly: Boolean - open var required: Boolean - open var rows: Int - open var wrap: String - open val type: String - open var defaultValue: String - open var value: String - open val textLength: Int - open val willValidate: Boolean - open val validity: ValidityState - open val validationMessage: String - open val labels: NodeList - open var selectionStart: Int? - open var selectionEnd: Int? - open var selectionDirection: String? - fun checkValidity(): Boolean - fun reportValidity(): Boolean - fun setCustomValidity(error: String): Unit - fun select(): Unit - fun setRangeText(replacement: String): Unit - fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode = definedExternally): Unit - fun setSelectionRange(start: Int, end: Int, direction: String = definedExternally): Unit -} - -/** - * Exposes the JavaScript [HTMLKeygenElement](https://developer.mozilla.org/en/docs/Web/API/HTMLKeygenElement) to Kotlin - */ -public external abstract class HTMLKeygenElement : HTMLElement { - open var autofocus: Boolean - open var challenge: String - open var disabled: Boolean - open val form: HTMLFormElement? - open var keytype: String - open var name: String - open val type: String - open val willValidate: Boolean - open val validity: ValidityState - open val validationMessage: String - open val labels: NodeList - fun checkValidity(): Boolean - fun reportValidity(): Boolean - fun setCustomValidity(error: String): Unit -} - -/** - * Exposes the JavaScript [HTMLOutputElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOutputElement) to Kotlin - */ -public external abstract class HTMLOutputElement : HTMLElement { - open val htmlFor: DOMTokenList - open val form: HTMLFormElement? - open var name: String - open val type: String - open var defaultValue: String - open var value: String - open val willValidate: Boolean - open val validity: ValidityState - open val validationMessage: String - open val labels: NodeList - fun checkValidity(): Boolean - fun reportValidity(): Boolean - fun setCustomValidity(error: String): Unit -} - -/** - * Exposes the JavaScript [HTMLProgressElement](https://developer.mozilla.org/en/docs/Web/API/HTMLProgressElement) to Kotlin - */ -public external abstract class HTMLProgressElement : HTMLElement { - open var value: Double - open var max: Double - open val position: Double - open val labels: NodeList -} - -/** - * Exposes the JavaScript [HTMLMeterElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMeterElement) to Kotlin - */ -public external abstract class HTMLMeterElement : HTMLElement { - open var value: Double - open var min: Double - open var max: Double - open var low: Double - open var high: Double - open var optimum: Double - open val labels: NodeList -} - -/** - * Exposes the JavaScript [HTMLFieldSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFieldSetElement) to Kotlin - */ -public external abstract class HTMLFieldSetElement : HTMLElement { - open var disabled: Boolean - open val form: HTMLFormElement? - open var name: String - open val type: String - open val elements: HTMLCollection - open val willValidate: Boolean - open val validity: ValidityState - open val validationMessage: String - fun checkValidity(): Boolean - fun reportValidity(): Boolean - fun setCustomValidity(error: String): Unit -} - -/** - * Exposes the JavaScript [HTMLLegendElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLegendElement) to Kotlin - */ -public external abstract class HTMLLegendElement : HTMLElement { - open val form: HTMLFormElement? - open var align: String -} - -/** - * Exposes the JavaScript [ValidityState](https://developer.mozilla.org/en/docs/Web/API/ValidityState) to Kotlin - */ -public external abstract class ValidityState { - open val valueMissing: Boolean - open val typeMismatch: Boolean - open val patternMismatch: Boolean - open val tooLong: Boolean - open val tooShort: Boolean - open val rangeUnderflow: Boolean - open val rangeOverflow: Boolean - open val stepMismatch: Boolean - open val badInput: Boolean - open val customError: Boolean - open val valid: Boolean -} - -/** - * Exposes the JavaScript [HTMLDetailsElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDetailsElement) to Kotlin - */ -public external abstract class HTMLDetailsElement : HTMLElement { - open var open: Boolean -} - -public external abstract class HTMLMenuElement : HTMLElement { - open var type: String - open var label: String - open var compact: Boolean -} - -public external abstract class HTMLMenuItemElement : HTMLElement { - open var type: String - open var label: String - open var icon: String - open var disabled: Boolean - open var checked: Boolean - open var radiogroup: String - open var default: Boolean -} - -public external open class RelatedEvent(type: String, eventInitDict: RelatedEventInit = definedExternally) : Event { - open val relatedTarget: EventTarget? -} - -public external interface RelatedEventInit : EventInit { - var relatedTarget: EventTarget? /* = null */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun RelatedEventInit(relatedTarget: EventTarget? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): RelatedEventInit { - val o = js("({})") - - o["relatedTarget"] = relatedTarget - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [HTMLDialogElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDialogElement) to Kotlin - */ -public external abstract class HTMLDialogElement : HTMLElement { - open var open: Boolean - open var returnValue: String - fun show(anchor: UnionElementOrMouseEvent = definedExternally): Unit - fun showModal(anchor: UnionElementOrMouseEvent = definedExternally): Unit - fun close(returnValue: String = definedExternally): Unit -} - -/** - * Exposes the JavaScript [HTMLScriptElement](https://developer.mozilla.org/en/docs/Web/API/HTMLScriptElement) to Kotlin - */ -public external abstract class HTMLScriptElement : HTMLElement, HTMLOrSVGScriptElement { - open var src: String - open var type: String - open var charset: String - open var async: Boolean - open var defer: Boolean - open var crossOrigin: String? - open var text: String - open var nonce: String - open var event: String - open var htmlFor: String -} - -/** - * Exposes the JavaScript [HTMLTemplateElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTemplateElement) to Kotlin - */ -public external abstract class HTMLTemplateElement : HTMLElement { - open val content: DocumentFragment -} - -/** - * Exposes the JavaScript [HTMLSlotElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSlotElement) to Kotlin - */ -public external abstract class HTMLSlotElement : HTMLElement { - open var name: String - fun assignedNodes(options: AssignedNodesOptions = definedExternally): Array -} - -public external interface AssignedNodesOptions { - var flatten: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun AssignedNodesOptions(flatten: Boolean? = false): AssignedNodesOptions { - val o = js("({})") - - o["flatten"] = flatten - - return o -} - -/** - * Exposes the JavaScript [HTMLCanvasElement](https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement) to Kotlin - */ -public external abstract class HTMLCanvasElement : HTMLElement, TexImageSource { - open var width: Int - open var height: Int - fun getContext(contextId: String, vararg arguments: Any?): RenderingContext? - fun toDataURL(type: String = definedExternally, quality: Any? = definedExternally): String - fun toBlob(_callback: (Blob?) -> Unit, type: String = definedExternally, quality: Any? = definedExternally): Unit -} - -public external interface CanvasRenderingContext2DSettings { - var alpha: Boolean? /* = true */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun CanvasRenderingContext2DSettings(alpha: Boolean? = true): CanvasRenderingContext2DSettings { - val o = js("({})") - - o["alpha"] = alpha - - return o -} - -/** - * Exposes the JavaScript [CanvasRenderingContext2D](https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D) to Kotlin - */ -public external abstract class CanvasRenderingContext2D : CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasHitRegion, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath, RenderingContext { - open val canvas: HTMLCanvasElement -} - -public external interface CanvasState { - fun save(): Unit - fun restore(): Unit -} - -public external interface CanvasTransform { - fun scale(x: Double, y: Double): Unit - fun rotate(angle: Double): Unit - fun translate(x: Double, y: Double): Unit - fun transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double): Unit - fun getTransform(): DOMMatrix - fun setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double): Unit - fun setTransform(transform: dynamic = definedExternally): Unit - fun resetTransform(): Unit -} - -public external interface CanvasCompositing { - var globalAlpha: Double - var globalCompositeOperation: String -} - -public external interface CanvasImageSmoothing { - var imageSmoothingEnabled: Boolean - var imageSmoothingQuality: ImageSmoothingQuality -} - -public external interface CanvasFillStrokeStyles { - var strokeStyle: dynamic - var fillStyle: dynamic - fun createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double): CanvasGradient - fun createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double): CanvasGradient - fun createPattern(image: dynamic, repetition: String): CanvasPattern? -} - -public external interface CanvasShadowStyles { - var shadowOffsetX: Double - var shadowOffsetY: Double - var shadowBlur: Double - var shadowColor: String -} - -public external interface CanvasFilters { - var filter: String -} - -public external interface CanvasRect { - fun clearRect(x: Double, y: Double, w: Double, h: Double): Unit - fun fillRect(x: Double, y: Double, w: Double, h: Double): Unit - fun strokeRect(x: Double, y: Double, w: Double, h: Double): Unit -} - -public external interface CanvasDrawPath { - fun beginPath(): Unit - fun fill(fillRule: CanvasFillRule = definedExternally): Unit - fun fill(path: Path2D, fillRule: CanvasFillRule = definedExternally): Unit - fun stroke(): Unit - fun stroke(path: Path2D): Unit - fun clip(fillRule: CanvasFillRule = definedExternally): Unit - fun clip(path: Path2D, fillRule: CanvasFillRule = definedExternally): Unit - fun resetClip(): Unit - fun isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule = definedExternally): Boolean - fun isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule = definedExternally): Boolean - fun isPointInStroke(x: Double, y: Double): Boolean - fun isPointInStroke(path: Path2D, x: Double, y: Double): Boolean -} - -public external interface CanvasUserInterface { - fun drawFocusIfNeeded(element: Element): Unit - fun drawFocusIfNeeded(path: Path2D, element: Element): Unit - fun scrollPathIntoView(): Unit - fun scrollPathIntoView(path: Path2D): Unit -} - -public external interface CanvasText { - fun fillText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally): Unit - fun strokeText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally): Unit - fun measureText(text: String): TextMetrics -} - -public external interface CanvasDrawImage { - fun drawImage(image: dynamic, dx: Double, dy: Double): Unit - fun drawImage(image: dynamic, dx: Double, dy: Double, dw: Double, dh: Double): Unit - fun drawImage(image: dynamic, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double): Unit -} - -public external interface CanvasHitRegion { - fun addHitRegion(options: HitRegionOptions = definedExternally): Unit - fun removeHitRegion(id: String): Unit - fun clearHitRegions(): Unit -} - -public external interface CanvasImageData { - fun createImageData(sw: Double, sh: Double): ImageData - fun createImageData(imagedata: ImageData): ImageData - fun getImageData(sx: Double, sy: Double, sw: Double, sh: Double): ImageData - fun putImageData(imagedata: ImageData, dx: Double, dy: Double): Unit - fun putImageData(imagedata: ImageData, dx: Double, dy: Double, dirtyX: Double, dirtyY: Double, dirtyWidth: Double, dirtyHeight: Double): Unit -} - -public external interface CanvasPathDrawingStyles { - var lineWidth: Double - var lineCap: CanvasLineCap - var lineJoin: CanvasLineJoin - var miterLimit: Double - var lineDashOffset: Double - fun setLineDash(segments: Array): Unit - fun getLineDash(): Array -} - -public external interface CanvasTextDrawingStyles { - var font: String - var textAlign: CanvasTextAlign - var textBaseline: CanvasTextBaseline - var direction: CanvasDirection -} - -public external interface CanvasPath { - fun closePath(): Unit - fun moveTo(x: Double, y: Double): Unit - fun lineTo(x: Double, y: Double): Unit - fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double): Unit - fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double): Unit - fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double): Unit - fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double): Unit - fun rect(x: Double, y: Double, w: Double, h: Double): Unit - fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = definedExternally): Unit - fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = definedExternally): Unit -} - -/** - * Exposes the JavaScript [CanvasGradient](https://developer.mozilla.org/en/docs/Web/API/CanvasGradient) to Kotlin - */ -public external abstract class CanvasGradient { - fun addColorStop(offset: Double, color: String): Unit -} - -/** - * Exposes the JavaScript [CanvasPattern](https://developer.mozilla.org/en/docs/Web/API/CanvasPattern) to Kotlin - */ -public external abstract class CanvasPattern { - fun setTransform(transform: dynamic = definedExternally): Unit -} - -/** - * Exposes the JavaScript [TextMetrics](https://developer.mozilla.org/en/docs/Web/API/TextMetrics) to Kotlin - */ -public external abstract class TextMetrics { - open val width: Double - open val actualBoundingBoxLeft: Double - open val actualBoundingBoxRight: Double - open val fontBoundingBoxAscent: Double - open val fontBoundingBoxDescent: Double - open val actualBoundingBoxAscent: Double - open val actualBoundingBoxDescent: Double - open val emHeightAscent: Double - open val emHeightDescent: Double - open val hangingBaseline: Double - open val alphabeticBaseline: Double - open val ideographicBaseline: Double -} - -public external interface HitRegionOptions { - var path: Path2D? /* = null */ - get() = definedExternally - set(value) = definedExternally - var fillRule: CanvasFillRule? /* = CanvasFillRule.NONZERO */ - get() = definedExternally - set(value) = definedExternally - var id: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally - var parentID: String? /* = null */ - get() = definedExternally - set(value) = definedExternally - var cursor: String? /* = "inherit" */ - get() = definedExternally - set(value) = definedExternally - var control: Element? /* = null */ - get() = definedExternally - set(value) = definedExternally - var label: String? /* = null */ - get() = definedExternally - set(value) = definedExternally - var role: String? /* = null */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun HitRegionOptions(path: Path2D? = null, fillRule: CanvasFillRule? = CanvasFillRule.NONZERO, id: String? = "", parentID: String? = null, cursor: String? = "inherit", control: Element? = null, label: String? = null, role: String? = null): HitRegionOptions { - val o = js("({})") - - o["path"] = path - o["fillRule"] = fillRule - o["id"] = id - o["parentID"] = parentID - o["cursor"] = cursor - o["control"] = control - o["label"] = label - o["role"] = role - - return o -} - -/** - * Exposes the JavaScript [ImageData](https://developer.mozilla.org/en/docs/Web/API/ImageData) to Kotlin - */ -public external open class ImageData : TexImageSource { - constructor(sw: Int, sh: Int) - constructor(data: Uint8ClampedArray, sw: Int, sh: Int = definedExternally) - open val width: Int - open val height: Int - open val data: Uint8ClampedArray -} - -/** - * Exposes the JavaScript [Path2D](https://developer.mozilla.org/en/docs/Web/API/Path2D) to Kotlin - */ -public external open class Path2D() : CanvasPath { - constructor(path: Path2D) - constructor(paths: Array, fillRule: CanvasFillRule = definedExternally) - constructor(d: String) - fun addPath(path: Path2D, transform: dynamic = definedExternally): Unit - override fun closePath(): Unit - override fun moveTo(x: Double, y: Double): Unit - override fun lineTo(x: Double, y: Double): Unit - override fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double): Unit - override fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double): Unit - override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double): Unit - override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double): Unit - override fun rect(x: Double, y: Double, w: Double, h: Double): Unit - override fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* = definedExternally */): Unit - override fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* = definedExternally */): Unit -} - -/** - * Exposes the JavaScript [Touch](https://developer.mozilla.org/en/docs/Web/API/Touch) to Kotlin - */ -public external abstract class Touch { - open val region: String? -} - -/** - * Exposes the JavaScript [ImageBitmapRenderingContext](https://developer.mozilla.org/en/docs/Web/API/ImageBitmapRenderingContext) to Kotlin - */ -public external abstract class ImageBitmapRenderingContext { - open val canvas: HTMLCanvasElement - fun transferFromImageBitmap(bitmap: ImageBitmap?): Unit -} - -public external interface ImageBitmapRenderingContextSettings { - var alpha: Boolean? /* = true */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun ImageBitmapRenderingContextSettings(alpha: Boolean? = true): ImageBitmapRenderingContextSettings { - val o = js("({})") - - o["alpha"] = alpha - - return o -} - -/** - * Exposes the JavaScript [CustomElementRegistry](https://developer.mozilla.org/en/docs/Web/API/CustomElementRegistry) to Kotlin - */ -public external abstract class CustomElementRegistry { - fun define(name: String, constructor: () -> dynamic, options: ElementDefinitionOptions = definedExternally): Unit - fun get(name: String): Any? - fun whenDefined(name: String): Promise -} - -public external interface ElementDefinitionOptions { - var extends: String? - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun ElementDefinitionOptions(extends: String? = undefined): ElementDefinitionOptions { - val o = js("({})") - - o["extends"] = extends - - return o -} - -public external interface ElementContentEditable { - var contentEditable: String - val isContentEditable: Boolean -} - -/** - * Exposes the JavaScript [DataTransfer](https://developer.mozilla.org/en/docs/Web/API/DataTransfer) to Kotlin - */ -public external abstract class DataTransfer { - open var dropEffect: String - open var effectAllowed: String - open val items: DataTransferItemList - open val types: Array - open val files: FileList - fun setDragImage(image: Element, x: Int, y: Int): Unit - fun getData(format: String): String - fun setData(format: String, data: String): Unit - fun clearData(format: String = definedExternally): Unit -} - -/** - * Exposes the JavaScript [DataTransferItemList](https://developer.mozilla.org/en/docs/Web/API/DataTransferItemList) to Kotlin - */ -public external abstract class DataTransferItemList { - open val length: Int - fun add(data: String, type: String): DataTransferItem? - fun add(data: File): DataTransferItem? - fun remove(index: Int): Unit - fun clear(): Unit -} -@kotlin.internal.InlineOnly inline operator fun DataTransferItemList.get(index: Int): DataTransferItem? = asDynamic()[index] - -/** - * Exposes the JavaScript [DataTransferItem](https://developer.mozilla.org/en/docs/Web/API/DataTransferItem) to Kotlin - */ -public external abstract class DataTransferItem { - open val kind: String - open val type: String - fun getAsString(_callback: ((String) -> Unit)?): Unit - fun getAsFile(): File? -} - -/** - * Exposes the JavaScript [DragEvent](https://developer.mozilla.org/en/docs/Web/API/DragEvent) to Kotlin - */ -public external open class DragEvent(type: String, eventInitDict: DragEventInit = definedExternally) : MouseEvent { - open val dataTransfer: DataTransfer? -} - -public external interface DragEventInit : MouseEventInit { - var dataTransfer: DataTransfer? /* = null */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun DragEventInit(dataTransfer: DataTransfer? = null, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): DragEventInit { - val o = js("({})") - - o["dataTransfer"] = dataTransfer - o["screenX"] = screenX - o["screenY"] = screenY - o["clientX"] = clientX - o["clientY"] = clientY - o["button"] = button - o["buttons"] = buttons - o["relatedTarget"] = relatedTarget - o["ctrlKey"] = ctrlKey - o["shiftKey"] = shiftKey - o["altKey"] = altKey - o["metaKey"] = metaKey - o["modifierAltGraph"] = modifierAltGraph - o["modifierCapsLock"] = modifierCapsLock - o["modifierFn"] = modifierFn - o["modifierFnLock"] = modifierFnLock - o["modifierHyper"] = modifierHyper - o["modifierNumLock"] = modifierNumLock - o["modifierScrollLock"] = modifierScrollLock - o["modifierSuper"] = modifierSuper - o["modifierSymbol"] = modifierSymbol - o["modifierSymbolLock"] = modifierSymbolLock - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -public external abstract class BarProp { - open val visible: Boolean -} - -/** - * Exposes the JavaScript [History](https://developer.mozilla.org/en/docs/Web/API/History) to Kotlin - */ -public external abstract class History { - open val length: Int - open var scrollRestoration: ScrollRestoration - open val state: Any? - fun go(delta: Int = definedExternally): Unit - fun back(): Unit - fun forward(): Unit - fun pushState(data: Any?, title: String, url: String? = definedExternally): Unit - fun replaceState(data: Any?, title: String, url: String? = definedExternally): Unit -} - -/** - * Exposes the JavaScript [Location](https://developer.mozilla.org/en/docs/Web/API/Location) to Kotlin - */ -public external abstract class Location { - open var href: String - open val origin: String - open var protocol: String - open var host: String - open var hostname: String - open var port: String - open var pathname: String - open var search: String - open var hash: String - open val ancestorOrigins: Array - fun assign(url: String): Unit - fun replace(url: String): Unit - fun reload(): Unit -} - -/** - * Exposes the JavaScript [PopStateEvent](https://developer.mozilla.org/en/docs/Web/API/PopStateEvent) to Kotlin - */ -public external open class PopStateEvent(type: String, eventInitDict: PopStateEventInit = definedExternally) : Event { - open val state: Any? -} - -public external interface PopStateEventInit : EventInit { - var state: Any? /* = null */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun PopStateEventInit(state: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PopStateEventInit { - val o = js("({})") - - o["state"] = state - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [HashChangeEvent](https://developer.mozilla.org/en/docs/Web/API/HashChangeEvent) to Kotlin - */ -public external open class HashChangeEvent(type: String, eventInitDict: HashChangeEventInit = definedExternally) : Event { - open val oldURL: String - open val newURL: String -} - -public external interface HashChangeEventInit : EventInit { - var oldURL: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally - var newURL: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun HashChangeEventInit(oldURL: String? = "", newURL: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): HashChangeEventInit { - val o = js("({})") - - o["oldURL"] = oldURL - o["newURL"] = newURL - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [PageTransitionEvent](https://developer.mozilla.org/en/docs/Web/API/PageTransitionEvent) to Kotlin - */ -public external open class PageTransitionEvent(type: String, eventInitDict: PageTransitionEventInit = definedExternally) : Event { - open val persisted: Boolean -} - -public external interface PageTransitionEventInit : EventInit { - var persisted: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun PageTransitionEventInit(persisted: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PageTransitionEventInit { - val o = js("({})") - - o["persisted"] = persisted - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [BeforeUnloadEvent](https://developer.mozilla.org/en/docs/Web/API/BeforeUnloadEvent) to Kotlin - */ -public external open class BeforeUnloadEvent : Event { - var returnValue: String -} - -public external abstract class ApplicationCache : EventTarget { - open val status: Short - open var onchecking: ((Event) -> dynamic)? - open var onerror: ((Event) -> dynamic)? - open var onnoupdate: ((Event) -> dynamic)? - open var ondownloading: ((Event) -> dynamic)? - open var onprogress: ((ProgressEvent) -> dynamic)? - open var onupdateready: ((Event) -> dynamic)? - open var oncached: ((Event) -> dynamic)? - open var onobsolete: ((Event) -> dynamic)? - fun update(): Unit - fun abort(): Unit - fun swapCache(): Unit - - companion object { - val UNCACHED: Short - val IDLE: Short - val CHECKING: Short - val DOWNLOADING: Short - val UPDATEREADY: Short - val OBSOLETE: Short - } -} - -/** - * Exposes the JavaScript [NavigatorOnLine](https://developer.mozilla.org/en/docs/Web/API/NavigatorOnLine) to Kotlin - */ -public external interface NavigatorOnLine { - val onLine: Boolean -} - -/** - * Exposes the JavaScript [ErrorEvent](https://developer.mozilla.org/en/docs/Web/API/ErrorEvent) to Kotlin - */ -public external open class ErrorEvent(type: String, eventInitDict: ErrorEventInit = definedExternally) : Event { - open val message: String - open val filename: String - open val lineno: Int - open val colno: Int - open val error: Any? -} - -public external interface ErrorEventInit : EventInit { - var message: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally - var filename: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally - var lineno: Int? /* = 0 */ - get() = definedExternally - set(value) = definedExternally - var colno: Int? /* = 0 */ - get() = definedExternally - set(value) = definedExternally - var error: Any? /* = null */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun ErrorEventInit(message: String? = "", filename: String? = "", lineno: Int? = 0, colno: Int? = 0, error: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ErrorEventInit { - val o = js("({})") - - o["message"] = message - o["filename"] = filename - o["lineno"] = lineno - o["colno"] = colno - o["error"] = error - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [PromiseRejectionEvent](https://developer.mozilla.org/en/docs/Web/API/PromiseRejectionEvent) to Kotlin - */ -public external open class PromiseRejectionEvent(type: String, eventInitDict: PromiseRejectionEventInit) : Event { - open val promise: Promise - open val reason: Any? -} - -public external interface PromiseRejectionEventInit : EventInit { - var promise: Promise? - get() = definedExternally - set(value) = definedExternally - var reason: Any? - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun PromiseRejectionEventInit(promise: Promise?, reason: Any? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PromiseRejectionEventInit { - val o = js("({})") - - o["promise"] = promise - o["reason"] = reason - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [GlobalEventHandlers](https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers) to Kotlin - */ -public external interface GlobalEventHandlers { - var ongotpointercapture: ((PointerEvent) -> dynamic)? - var onlostpointercapture: ((PointerEvent) -> dynamic)? - var onpointerdown: ((PointerEvent) -> dynamic)? - var onpointermove: ((PointerEvent) -> dynamic)? - var onpointerup: ((PointerEvent) -> dynamic)? - var onpointercancel: ((PointerEvent) -> dynamic)? - var onpointerover: ((PointerEvent) -> dynamic)? - var onpointerout: ((PointerEvent) -> dynamic)? - var onpointerenter: ((PointerEvent) -> dynamic)? - var onpointerleave: ((PointerEvent) -> dynamic)? - var onabort: ((Event) -> dynamic)? - var onblur: ((FocusEvent) -> dynamic)? - var oncancel: ((Event) -> dynamic)? - var oncanplay: ((Event) -> dynamic)? - var oncanplaythrough: ((Event) -> dynamic)? - var onchange: ((Event) -> dynamic)? - var onclick: ((MouseEvent) -> dynamic)? - var onclose: ((Event) -> dynamic)? - var oncontextmenu: ((MouseEvent) -> dynamic)? - var oncuechange: ((Event) -> dynamic)? - var ondblclick: ((MouseEvent) -> dynamic)? - var ondrag: ((DragEvent) -> dynamic)? - var ondragend: ((DragEvent) -> dynamic)? - var ondragenter: ((DragEvent) -> dynamic)? - var ondragexit: ((DragEvent) -> dynamic)? - var ondragleave: ((DragEvent) -> dynamic)? - var ondragover: ((DragEvent) -> dynamic)? - var ondragstart: ((DragEvent) -> dynamic)? - var ondrop: ((DragEvent) -> dynamic)? - var ondurationchange: ((Event) -> dynamic)? - var onemptied: ((Event) -> dynamic)? - var onended: ((Event) -> dynamic)? - var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? - var onfocus: ((FocusEvent) -> dynamic)? - var oninput: ((InputEvent) -> dynamic)? - var oninvalid: ((Event) -> dynamic)? - var onkeydown: ((KeyboardEvent) -> dynamic)? - var onkeypress: ((KeyboardEvent) -> dynamic)? - var onkeyup: ((KeyboardEvent) -> dynamic)? - var onload: ((Event) -> dynamic)? - var onloadeddata: ((Event) -> dynamic)? - var onloadedmetadata: ((Event) -> dynamic)? - var onloadend: ((Event) -> dynamic)? - var onloadstart: ((ProgressEvent) -> dynamic)? - var onmousedown: ((MouseEvent) -> dynamic)? - var onmouseenter: ((MouseEvent) -> dynamic)? - var onmouseleave: ((MouseEvent) -> dynamic)? - var onmousemove: ((MouseEvent) -> dynamic)? - var onmouseout: ((MouseEvent) -> dynamic)? - var onmouseover: ((MouseEvent) -> dynamic)? - var onmouseup: ((MouseEvent) -> dynamic)? - var onwheel: ((WheelEvent) -> dynamic)? - var onpause: ((Event) -> dynamic)? - var onplay: ((Event) -> dynamic)? - var onplaying: ((Event) -> dynamic)? - var onprogress: ((ProgressEvent) -> dynamic)? - var onratechange: ((Event) -> dynamic)? - var onreset: ((Event) -> dynamic)? - var onresize: ((Event) -> dynamic)? - var onscroll: ((Event) -> dynamic)? - var onseeked: ((Event) -> dynamic)? - var onseeking: ((Event) -> dynamic)? - var onselect: ((Event) -> dynamic)? - var onshow: ((Event) -> dynamic)? - var onstalled: ((Event) -> dynamic)? - var onsubmit: ((Event) -> dynamic)? - var onsuspend: ((Event) -> dynamic)? - var ontimeupdate: ((Event) -> dynamic)? - var ontoggle: ((Event) -> dynamic)? - var onvolumechange: ((Event) -> dynamic)? - var onwaiting: ((Event) -> dynamic)? -} - -/** - * Exposes the JavaScript [WindowEventHandlers](https://developer.mozilla.org/en/docs/Web/API/WindowEventHandlers) to Kotlin - */ -public external interface WindowEventHandlers { - var onafterprint: ((Event) -> dynamic)? - var onbeforeprint: ((Event) -> dynamic)? - var onbeforeunload: ((BeforeUnloadEvent) -> String?)? - var onhashchange: ((HashChangeEvent) -> dynamic)? - var onlanguagechange: ((Event) -> dynamic)? - var onmessage: ((MessageEvent) -> dynamic)? - var onoffline: ((Event) -> dynamic)? - var ononline: ((Event) -> dynamic)? - var onpagehide: ((PageTransitionEvent) -> dynamic)? - var onpageshow: ((PageTransitionEvent) -> dynamic)? - var onpopstate: ((PopStateEvent) -> dynamic)? - var onrejectionhandled: ((Event) -> dynamic)? - var onstorage: ((StorageEvent) -> dynamic)? - var onunhandledrejection: ((PromiseRejectionEvent) -> dynamic)? - var onunload: ((Event) -> dynamic)? -} - -public external interface DocumentAndElementEventHandlers { - var oncopy: ((ClipboardEvent) -> dynamic)? - var oncut: ((ClipboardEvent) -> dynamic)? - var onpaste: ((ClipboardEvent) -> dynamic)? -} - -/** - * Exposes the JavaScript [WindowOrWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WindowOrWorkerGlobalScope) to Kotlin - */ -public external interface WindowOrWorkerGlobalScope { - val caches: CacheStorage - val origin: String - fun fetch(input: dynamic, init: RequestInit = definedExternally): Promise - fun btoa(data: String): String - fun atob(data: String): String - fun setTimeout(handler: dynamic, timeout: Int = definedExternally, vararg arguments: Any?): Int - fun clearTimeout(handle: Int = definedExternally): Unit - fun setInterval(handler: dynamic, timeout: Int = definedExternally, vararg arguments: Any?): Int - fun clearInterval(handle: Int = definedExternally): Unit - fun createImageBitmap(image: dynamic, options: ImageBitmapOptions = definedExternally): Promise - fun createImageBitmap(image: dynamic, sx: Int, sy: Int, sw: Int, sh: Int, options: ImageBitmapOptions = definedExternally): Promise -} - -/** - * Exposes the JavaScript [NavigatorID](https://developer.mozilla.org/en/docs/Web/API/NavigatorID) to Kotlin - */ -public external interface NavigatorID { - val appCodeName: String - val appName: String - val appVersion: String - val platform: String - val product: String - val productSub: String - val userAgent: String - val vendor: String - val vendorSub: String - val oscpu: String - fun taintEnabled(): Boolean -} - -/** - * Exposes the JavaScript [NavigatorLanguage](https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage) to Kotlin - */ -public external interface NavigatorLanguage { - val language: String - val languages: Array -} - -public external interface NavigatorContentUtils { - fun registerProtocolHandler(scheme: String, url: String, title: String): Unit - fun registerContentHandler(mimeType: String, url: String, title: String): Unit - fun isProtocolHandlerRegistered(scheme: String, url: String): String - fun isContentHandlerRegistered(mimeType: String, url: String): String - fun unregisterProtocolHandler(scheme: String, url: String): Unit - fun unregisterContentHandler(mimeType: String, url: String): Unit -} - -public external interface NavigatorCookies { - val cookieEnabled: Boolean -} - -/** - * Exposes the JavaScript [NavigatorPlugins](https://developer.mozilla.org/en/docs/Web/API/NavigatorPlugins) to Kotlin - */ -public external interface NavigatorPlugins { - val plugins: PluginArray - val mimeTypes: MimeTypeArray - fun javaEnabled(): Boolean -} - -/** - * Exposes the JavaScript [PluginArray](https://developer.mozilla.org/en/docs/Web/API/PluginArray) to Kotlin - */ -public external abstract class PluginArray : ItemArrayLike { - override val length: Int - fun refresh(reload: Boolean = definedExternally): Unit - override fun item(index: Int): Plugin? - fun namedItem(name: String): Plugin? -} -@kotlin.internal.InlineOnly inline operator fun PluginArray.get(index: Int): Plugin? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun PluginArray.get(name: String): Plugin? = asDynamic()[name] - -/** - * Exposes the JavaScript [MimeTypeArray](https://developer.mozilla.org/en/docs/Web/API/MimeTypeArray) to Kotlin - */ -public external abstract class MimeTypeArray : ItemArrayLike { - override val length: Int - override fun item(index: Int): MimeType? - fun namedItem(name: String): MimeType? -} -@kotlin.internal.InlineOnly inline operator fun MimeTypeArray.get(index: Int): MimeType? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun MimeTypeArray.get(name: String): MimeType? = asDynamic()[name] - -/** - * Exposes the JavaScript [Plugin](https://developer.mozilla.org/en/docs/Web/API/Plugin) to Kotlin - */ -public external abstract class Plugin : ItemArrayLike { - open val name: String - open val description: String - open val filename: String - override val length: Int - override fun item(index: Int): MimeType? - fun namedItem(name: String): MimeType? -} -@kotlin.internal.InlineOnly inline operator fun Plugin.get(index: Int): MimeType? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun Plugin.get(name: String): MimeType? = asDynamic()[name] - -/** - * Exposes the JavaScript [MimeType](https://developer.mozilla.org/en/docs/Web/API/MimeType) to Kotlin - */ -public external abstract class MimeType { - open val type: String - open val description: String - open val suffixes: String - open val enabledPlugin: Plugin -} - -/** - * Exposes the JavaScript [ImageBitmap](https://developer.mozilla.org/en/docs/Web/API/ImageBitmap) to Kotlin - */ -public external abstract class ImageBitmap : TexImageSource { - open val width: Int - open val height: Int - fun close(): Unit -} - -public external interface ImageBitmapOptions { - var imageOrientation: ImageOrientation? /* = ImageOrientation.NONE */ - get() = definedExternally - set(value) = definedExternally - var premultiplyAlpha: PremultiplyAlpha? /* = PremultiplyAlpha.DEFAULT */ - get() = definedExternally - set(value) = definedExternally - var colorSpaceConversion: ColorSpaceConversion? /* = ColorSpaceConversion.DEFAULT */ - get() = definedExternally - set(value) = definedExternally - var resizeWidth: Int? - get() = definedExternally - set(value) = definedExternally - var resizeHeight: Int? - get() = definedExternally - set(value) = definedExternally - var resizeQuality: ResizeQuality? /* = ResizeQuality.LOW */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun ImageBitmapOptions(imageOrientation: ImageOrientation? = ImageOrientation.NONE, premultiplyAlpha: PremultiplyAlpha? = PremultiplyAlpha.DEFAULT, colorSpaceConversion: ColorSpaceConversion? = ColorSpaceConversion.DEFAULT, resizeWidth: Int? = undefined, resizeHeight: Int? = undefined, resizeQuality: ResizeQuality? = ResizeQuality.LOW): ImageBitmapOptions { - val o = js("({})") - - o["imageOrientation"] = imageOrientation - o["premultiplyAlpha"] = premultiplyAlpha - o["colorSpaceConversion"] = colorSpaceConversion - o["resizeWidth"] = resizeWidth - o["resizeHeight"] = resizeHeight - o["resizeQuality"] = resizeQuality - - return o -} - -/** - * Exposes the JavaScript [MessageEvent](https://developer.mozilla.org/en/docs/Web/API/MessageEvent) to Kotlin - */ -public external open class MessageEvent(type: String, eventInitDict: MessageEventInit = definedExternally) : Event { - open val data: Any? - open val origin: String - open val lastEventId: String - open val source: UnionMessagePortOrWindow? - open val ports: Array - fun initMessageEvent(type: String, bubbles: Boolean, cancelable: Boolean, data: Any?, origin: String, lastEventId: String, source: UnionMessagePortOrWindow?, ports: Array): Unit -} - -public external interface MessageEventInit : EventInit { - var data: Any? /* = null */ - get() = definedExternally - set(value) = definedExternally - var origin: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally - var lastEventId: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally - var source: UnionMessagePortOrWindow? /* = null */ - get() = definedExternally - set(value) = definedExternally - var ports: Array? /* = arrayOf() */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun MessageEventInit(data: Any? = null, origin: String? = "", lastEventId: String? = "", source: UnionMessagePortOrWindow? = null, ports: Array? = arrayOf(), bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MessageEventInit { - val o = js("({})") - - o["data"] = data - o["origin"] = origin - o["lastEventId"] = lastEventId - o["source"] = source - o["ports"] = ports - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [EventSource](https://developer.mozilla.org/en/docs/Web/API/EventSource) to Kotlin - */ -public external open class EventSource(url: String, eventSourceInitDict: EventSourceInit = definedExternally) : EventTarget { - open val url: String - open val withCredentials: Boolean - open val readyState: Short - var onopen: ((Event) -> dynamic)? - var onmessage: ((MessageEvent) -> dynamic)? - var onerror: ((Event) -> dynamic)? - fun close(): Unit - - companion object { - val CONNECTING: Short - val OPEN: Short - val CLOSED: Short - } -} - -public external interface EventSourceInit { - var withCredentials: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun EventSourceInit(withCredentials: Boolean? = false): EventSourceInit { - val o = js("({})") - - o["withCredentials"] = withCredentials - - return o -} - -/** - * Exposes the JavaScript [WebSocket](https://developer.mozilla.org/en/docs/Web/API/WebSocket) to Kotlin - */ -public external open class WebSocket(url: String, protocols: dynamic = definedExternally) : EventTarget { - open val url: String - open val readyState: Short - open val bufferedAmount: Int - var onopen: ((Event) -> dynamic)? - var onerror: ((Event) -> dynamic)? - var onclose: ((Event) -> dynamic)? - open val extensions: String - open val protocol: String - var onmessage: ((MessageEvent) -> dynamic)? - var binaryType: BinaryType - fun close(code: Short = definedExternally, reason: String = definedExternally): Unit - fun send(data: String): Unit - fun send(data: Blob): Unit - fun send(data: ArrayBuffer): Unit - fun send(data: ArrayBufferView): Unit - - companion object { - val CONNECTING: Short - val OPEN: Short - val CLOSING: Short - val CLOSED: Short - } -} - -/** - * Exposes the JavaScript [CloseEvent](https://developer.mozilla.org/en/docs/Web/API/CloseEvent) to Kotlin - */ -public external open class CloseEvent(type: String, eventInitDict: CloseEventInit = definedExternally) : Event { - open val wasClean: Boolean - open val code: Short - open val reason: String -} - -public external interface CloseEventInit : EventInit { - var wasClean: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally - var code: Short? /* = 0 */ - get() = definedExternally - set(value) = definedExternally - var reason: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun CloseEventInit(wasClean: Boolean? = false, code: Short? = 0, reason: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CloseEventInit { - val o = js("({})") - - o["wasClean"] = wasClean - o["code"] = code - o["reason"] = reason - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [MessageChannel](https://developer.mozilla.org/en/docs/Web/API/MessageChannel) to Kotlin - */ -public external open class MessageChannel { - open val port1: MessagePort - open val port2: MessagePort -} - -/** - * Exposes the JavaScript [MessagePort](https://developer.mozilla.org/en/docs/Web/API/MessagePort) to Kotlin - */ -public external abstract class MessagePort : EventTarget, UnionMessagePortOrWindow, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker { - open var onmessage: ((MessageEvent) -> dynamic)? - fun postMessage(message: Any?, transfer: Array = definedExternally): Unit - fun start(): Unit - fun close(): Unit -} - -/** - * Exposes the JavaScript [BroadcastChannel](https://developer.mozilla.org/en/docs/Web/API/BroadcastChannel) to Kotlin - */ -public external open class BroadcastChannel(name: String) : EventTarget { - open val name: String - var onmessage: ((MessageEvent) -> dynamic)? - fun postMessage(message: Any?): Unit - fun close(): Unit -} - -/** - * Exposes the JavaScript [WorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WorkerGlobalScope) to Kotlin - */ -public external abstract class WorkerGlobalScope : EventTarget, WindowOrWorkerGlobalScope, GlobalPerformance { - open val self: WorkerGlobalScope - open val location: WorkerLocation - open val navigator: WorkerNavigator - open var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? - open var onlanguagechange: ((Event) -> dynamic)? - open var onoffline: ((Event) -> dynamic)? - open var ononline: ((Event) -> dynamic)? - open var onrejectionhandled: ((Event) -> dynamic)? - open var onunhandledrejection: ((PromiseRejectionEvent) -> dynamic)? - fun importScripts(vararg urls: String): Unit -} - -/** - * Exposes the JavaScript [DedicatedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/DedicatedWorkerGlobalScope) to Kotlin - */ -public external abstract class DedicatedWorkerGlobalScope : WorkerGlobalScope { - open var onmessage: ((MessageEvent) -> dynamic)? - fun postMessage(message: Any?, transfer: Array = definedExternally): Unit - fun close(): Unit -} - -/** - * Exposes the JavaScript [SharedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/SharedWorkerGlobalScope) to Kotlin - */ -public external abstract class SharedWorkerGlobalScope : WorkerGlobalScope { - open val name: String - open val applicationCache: ApplicationCache - open var onconnect: ((Event) -> dynamic)? - fun close(): Unit -} - -/** - * Exposes the JavaScript [AbstractWorker](https://developer.mozilla.org/en/docs/Web/API/AbstractWorker) to Kotlin - */ -public external interface AbstractWorker { - var onerror: ((Event) -> dynamic)? -} - -/** - * Exposes the JavaScript [Worker](https://developer.mozilla.org/en/docs/Web/API/Worker) to Kotlin - */ -public external open class Worker(scriptURL: String, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker { - var onmessage: ((MessageEvent) -> dynamic)? - override var onerror: ((Event) -> dynamic)? - fun terminate(): Unit - fun postMessage(message: Any?, transfer: Array = definedExternally): Unit -} - -public external interface WorkerOptions { - var type: WorkerType? /* = WorkerType.CLASSIC */ - get() = definedExternally - set(value) = definedExternally - var credentials: RequestCredentials? /* = RequestCredentials.OMIT */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun WorkerOptions(type: WorkerType? = WorkerType.CLASSIC, credentials: RequestCredentials? = RequestCredentials.OMIT): WorkerOptions { - val o = js("({})") - - o["type"] = type - o["credentials"] = credentials - - return o -} - -/** - * Exposes the JavaScript [SharedWorker](https://developer.mozilla.org/en/docs/Web/API/SharedWorker) to Kotlin - */ -public external open class SharedWorker(scriptURL: String, name: String = definedExternally, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker { - open val port: MessagePort - override var onerror: ((Event) -> dynamic)? -} - -/** - * Exposes the JavaScript [NavigatorConcurrentHardware](https://developer.mozilla.org/en/docs/Web/API/NavigatorConcurrentHardware) to Kotlin - */ -public external interface NavigatorConcurrentHardware { - val hardwareConcurrency: Int -} - -/** - * Exposes the JavaScript [WorkerNavigator](https://developer.mozilla.org/en/docs/Web/API/WorkerNavigator) to Kotlin - */ -public external abstract class WorkerNavigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorConcurrentHardware { - open val serviceWorker: ServiceWorkerContainer -} - -/** - * Exposes the JavaScript [WorkerLocation](https://developer.mozilla.org/en/docs/Web/API/WorkerLocation) to Kotlin - */ -public external abstract class WorkerLocation { - open var href: String - open val origin: String - open val protocol: String - open val host: String - open val hostname: String - open val port: String - open val pathname: String - open val search: String - open val hash: String -} - -/** - * Exposes the JavaScript [Storage](https://developer.mozilla.org/en/docs/Web/API/Storage) to Kotlin - */ -public external abstract class Storage { - open val length: Int - fun key(index: Int): String? - fun getItem(key: String): String? - fun setItem(key: String, value: String): Unit - fun removeItem(key: String): Unit - fun clear(): Unit -} -@kotlin.internal.InlineOnly inline operator fun Storage.get(key: String): String? = asDynamic()[key] -@kotlin.internal.InlineOnly inline operator fun Storage.set(key: String, value: String): Unit { asDynamic()[key] = value; } - -/** - * Exposes the JavaScript [WindowSessionStorage](https://developer.mozilla.org/en/docs/Web/API/WindowSessionStorage) to Kotlin - */ -public external interface WindowSessionStorage { - val sessionStorage: Storage -} - -/** - * Exposes the JavaScript [WindowLocalStorage](https://developer.mozilla.org/en/docs/Web/API/WindowLocalStorage) to Kotlin - */ -public external interface WindowLocalStorage { - val localStorage: Storage -} - -/** - * Exposes the JavaScript [StorageEvent](https://developer.mozilla.org/en/docs/Web/API/StorageEvent) to Kotlin - */ -public external open class StorageEvent(type: String, eventInitDict: StorageEventInit = definedExternally) : Event { - open val key: String? - open val oldValue: String? - open val newValue: String? - open val url: String - open val storageArea: Storage? -} - -public external interface StorageEventInit : EventInit { - var key: String? /* = null */ - get() = definedExternally - set(value) = definedExternally - var oldValue: String? /* = null */ - get() = definedExternally - set(value) = definedExternally - var newValue: String? /* = null */ - get() = definedExternally - set(value) = definedExternally - var url: String? /* = "" */ - get() = definedExternally - set(value) = definedExternally - var storageArea: Storage? /* = null */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun StorageEventInit(key: String? = null, oldValue: String? = null, newValue: String? = null, url: String? = "", storageArea: Storage? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): StorageEventInit { - val o = js("({})") - - o["key"] = key - o["oldValue"] = oldValue - o["newValue"] = newValue - o["url"] = url - o["storageArea"] = storageArea - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -public external abstract class HTMLAppletElement : HTMLElement { - open var align: String - open var alt: String - open var archive: String - open var code: String - open var codeBase: String - open var height: String - open var hspace: Int - open var name: String - open var _object: String - open var vspace: Int - open var width: String -} - -/** - * Exposes the JavaScript [HTMLMarqueeElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMarqueeElement) to Kotlin - */ -public external abstract class HTMLMarqueeElement : HTMLElement { - open var behavior: String - open var bgColor: String - open var direction: String - open var height: String - open var hspace: Int - open var loop: Int - open var scrollAmount: Int - open var scrollDelay: Int - open var trueSpeed: Boolean - open var vspace: Int - open var width: String - open var onbounce: ((Event) -> dynamic)? - open var onfinish: ((Event) -> dynamic)? - open var onstart: ((Event) -> dynamic)? - fun start(): Unit - fun stop(): Unit -} - -/** - * Exposes the JavaScript [HTMLFrameSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFrameSetElement) to Kotlin - */ -public external abstract class HTMLFrameSetElement : HTMLElement, WindowEventHandlers { - open var cols: String - open var rows: String -} - -public external abstract class HTMLFrameElement : HTMLElement { - open var name: String - open var scrolling: String - open var src: String - open var frameBorder: String - open var longDesc: String - open var noResize: Boolean - open val contentDocument: Document? - open val contentWindow: Window? - open var marginHeight: String - open var marginWidth: String -} - -public external abstract class HTMLDirectoryElement : HTMLElement { - open var compact: Boolean -} - -/** - * Exposes the JavaScript [HTMLFontElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFontElement) to Kotlin - */ -public external abstract class HTMLFontElement : HTMLElement { - open var color: String - open var face: String - open var size: String -} - -public external interface External { - fun AddSearchProvider(): Unit - fun IsSearchProviderInstalled(): Unit -} - -public external interface EventInit { - var bubbles: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally - var cancelable: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally - var composed: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun EventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventInit { - val o = js("({})") - - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -/** - * Exposes the JavaScript [CustomEvent](https://developer.mozilla.org/en/docs/Web/API/CustomEvent) to Kotlin - */ -public external open class CustomEvent(type: String, eventInitDict: CustomEventInit = definedExternally) : Event { - open val detail: Any? - fun initCustomEvent(type: String, bubbles: Boolean, cancelable: Boolean, detail: Any?): Unit -} - -public external interface CustomEventInit : EventInit { - var detail: Any? /* = null */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun CustomEventInit(detail: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CustomEventInit { - val o = js("({})") - - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - - return o -} - -public external interface EventListenerOptions { - var capture: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun EventListenerOptions(capture: Boolean? = false): EventListenerOptions { - val o = js("({})") - - o["capture"] = capture - - return o -} - -public external interface AddEventListenerOptions : EventListenerOptions { - var passive: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally - var once: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun AddEventListenerOptions(passive: Boolean? = false, once: Boolean? = false, capture: Boolean? = false): AddEventListenerOptions { - val o = js("({})") - - o["passive"] = passive - o["once"] = once - o["capture"] = capture - - return o -} - -public external interface NonElementParentNode { - fun getElementById(elementId: String): Element? -} - -/** - * Exposes the JavaScript [DocumentOrShadowRoot](https://developer.mozilla.org/en/docs/Web/API/DocumentOrShadowRoot) to Kotlin - */ -public external interface DocumentOrShadowRoot { - val fullscreenElement: Element? -} - -/** - * Exposes the JavaScript [ParentNode](https://developer.mozilla.org/en/docs/Web/API/ParentNode) to Kotlin - */ -public external interface ParentNode { - val children: HTMLCollection - val firstElementChild: Element? - val lastElementChild: Element? - val childElementCount: Int - fun prepend(vararg nodes: dynamic): Unit - fun append(vararg nodes: dynamic): Unit - fun querySelector(selectors: String): Element? - fun querySelectorAll(selectors: String): NodeList -} - -/** - * Exposes the JavaScript [NonDocumentTypeChildNode](https://developer.mozilla.org/en/docs/Web/API/NonDocumentTypeChildNode) to Kotlin - */ -public external interface NonDocumentTypeChildNode { - val previousElementSibling: Element? - val nextElementSibling: Element? -} - -/** - * Exposes the JavaScript [ChildNode](https://developer.mozilla.org/en/docs/Web/API/ChildNode) to Kotlin - */ -public external interface ChildNode { - fun before(vararg nodes: dynamic): Unit - fun after(vararg nodes: dynamic): Unit - fun replaceWith(vararg nodes: dynamic): Unit - fun remove(): Unit -} - -/** - * Exposes the JavaScript [Slotable](https://developer.mozilla.org/en/docs/Web/API/Slotable) to Kotlin - */ -public external interface Slotable { - val assignedSlot: HTMLSlotElement? -} - -/** - * Exposes the JavaScript [NodeList](https://developer.mozilla.org/en/docs/Web/API/NodeList) to Kotlin - */ -public external abstract class NodeList : ItemArrayLike { - override val length: Int - override fun item(index: Int): Node? -} -@kotlin.internal.InlineOnly inline operator fun NodeList.get(index: Int): Node? = asDynamic()[index] - -/** - * Exposes the JavaScript [HTMLCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLCollection) to Kotlin - */ -public external abstract class HTMLCollection : UnionElementOrHTMLCollection, ItemArrayLike { - override val length: Int - override fun item(index: Int): Element? - fun namedItem(name: String): Element? -} -@kotlin.internal.InlineOnly inline operator fun HTMLCollection.get(index: Int): Element? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun HTMLCollection.get(name: String): Element? = asDynamic()[name] - -/** - * Exposes the JavaScript [MutationObserver](https://developer.mozilla.org/en/docs/Web/API/MutationObserver) to Kotlin - */ -public external open class MutationObserver(callback: (Array, MutationObserver) -> Unit) { - fun observe(target: Node, options: MutationObserverInit = definedExternally): Unit - fun disconnect(): Unit - fun takeRecords(): Array -} - -/** - * Exposes the JavaScript [MutationObserverInit](https://developer.mozilla.org/en/docs/Web/API/MutationObserverInit) to Kotlin - */ -public external interface MutationObserverInit { - var childList: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally - var attributes: Boolean? - get() = definedExternally - set(value) = definedExternally - var characterData: Boolean? - get() = definedExternally - set(value) = definedExternally - var subtree: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally - var attributeOldValue: Boolean? - get() = definedExternally - set(value) = definedExternally - var characterDataOldValue: Boolean? - get() = definedExternally - set(value) = definedExternally - var attributeFilter: Array? - get() = definedExternally - set(value) = definedExternally -} - -@kotlin.internal.InlineOnly -public inline fun MutationObserverInit(childList: Boolean? = false, attributes: Boolean? = undefined, characterData: Boolean? = undefined, subtree: Boolean? = false, attributeOldValue: Boolean? = undefined, characterDataOldValue: Boolean? = undefined, attributeFilter: Array? = undefined): MutationObserverInit { - val o = js("({})") - - o["childList"] = childList - o["attributes"] = attributes - o["characterData"] = characterData - o["subtree"] = subtree - o["attributeOldValue"] = attributeOldValue - o["characterDataOldValue"] = characterDataOldValue - o["attributeFilter"] = attributeFilter - - return o -} - -/** - * Exposes the JavaScript [MutationRecord](https://developer.mozilla.org/en/docs/Web/API/MutationRecord) to Kotlin - */ -public external abstract class MutationRecord { - open val type: String - open val target: Node - open val addedNodes: NodeList - open val removedNodes: NodeList - open val previousSibling: Node? - open val nextSibling: Node? - open val attributeName: String? - open val attributeNamespace: String? - open val oldValue: String? -} - -/** - * Exposes the JavaScript [Node](https://developer.mozilla.org/en/docs/Web/API/Node) to Kotlin - */ -public external abstract class Node : EventTarget { - open val nodeType: Short - open val nodeName: String - open val baseURI: String - open val isConnected: Boolean - open val ownerDocument: Document? - open val parentNode: Node? - open val parentElement: Element? - open val childNodes: NodeList - open val firstChild: Node? - open val lastChild: Node? - open val previousSibling: Node? - open val nextSibling: Node? - open var nodeValue: String? - open var textContent: String? - fun getRootNode(options: GetRootNodeOptions = definedExternally): Node - fun hasChildNodes(): Boolean - fun normalize(): Unit - fun cloneNode(deep: Boolean = definedExternally): Node - fun isEqualNode(otherNode: Node?): Boolean - fun isSameNode(otherNode: Node?): Boolean - fun compareDocumentPosition(other: Node): Short - fun contains(other: Node?): Boolean - fun lookupPrefix(namespace: String?): String? - fun lookupNamespaceURI(prefix: String?): String? - fun isDefaultNamespace(namespace: String?): Boolean - fun insertBefore(node: Node, child: Node?): Node - fun appendChild(node: Node): Node - fun replaceChild(node: Node, child: Node): Node - fun removeChild(child: Node): Node companion object { val ELEMENT_NODE: Short @@ -3412,48 +4971,45 @@ public external abstract class Node : EventTarget { } } -public external interface GetRootNodeOptions { - var composed: Boolean? /* = false */ - get() = definedExternally - set(value) = definedExternally -} - @kotlin.internal.InlineOnly -public inline fun GetRootNodeOptions(composed: Boolean? = false): GetRootNodeOptions { - val o = js("({})") - - o["composed"] = composed - - return o -} +public inline operator fun Document.get(name: String): dynamic = asDynamic()[name] /** * Exposes the JavaScript [XMLDocument](https://developer.mozilla.org/en/docs/Web/API/XMLDocument) to Kotlin */ public external open class XMLDocument : Document { - override fun getElementById(elementId: String): Element? - override fun prepend(vararg nodes: dynamic): Unit - override fun append(vararg nodes: dynamic): Unit - override fun querySelector(selectors: String): Element? - override fun querySelectorAll(selectors: String): NodeList - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external interface ElementCreationOptions { - @JsName("is") var is_: String? + var `is`: String? get() = definedExternally set(value) = definedExternally } @kotlin.internal.InlineOnly -public inline fun ElementCreationOptions(is_: String? = undefined): ElementCreationOptions { +public inline fun ElementCreationOptions(`is`: String? = undefined): ElementCreationOptions { val o = js("({})") - - o["is"] = is_ - + o["is"] = `is` return o } @@ -3474,6 +5030,27 @@ public external abstract class DocumentType : Node, ChildNode { open val name: String open val publicId: String open val systemId: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -3485,10 +5062,31 @@ public external open class DocumentFragment : Node, NonElementParentNode, Parent override val lastElementChild: Element? override val childElementCount: Int override fun getElementById(elementId: String): Element? - override fun prepend(vararg nodes: dynamic): Unit - override fun append(vararg nodes: dynamic): Unit + override fun prepend(vararg nodes: dynamic) + override fun append(vararg nodes: dynamic) override fun querySelector(selectors: String): Element? override fun querySelectorAll(selectors: String): NodeList + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -3498,19 +5096,33 @@ public external open class ShadowRoot : DocumentFragment, DocumentOrShadowRoot { open val mode: ShadowRootMode open val host: Element override val fullscreenElement: Element? - override fun getElementById(elementId: String): Element? - override fun prepend(vararg nodes: dynamic): Unit - override fun append(vararg nodes: dynamic): Unit - override fun querySelector(selectors: String): Element? - override fun querySelectorAll(selectors: String): NodeList + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [Element](https://developer.mozilla.org/en/docs/Web/API/Element) to Kotlin */ -public external abstract class Element : Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slotable, GeometryUtils, UnionElementOrProcessingInstruction, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent { - open var innerHTML: String - open var outerHTML: String +public external abstract class Element : Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slotable, GeometryUtils, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent, UnionElementOrProcessingInstruction { open val namespaceURI: String? open val prefix: String? open val localName: String @@ -3529,19 +5141,16 @@ public external abstract class Element : Node, ParentNode, NonDocumentTypeChildN open val clientLeft: Int open val clientWidth: Int open val clientHeight: Int - fun requestFullscreen(): Promise - fun setPointerCapture(pointerId: Int): Unit - fun releasePointerCapture(pointerId: Int): Unit - fun hasPointerCapture(pointerId: Int): Boolean - fun insertAdjacentHTML(position: String, text: String): Unit + open var innerHTML: String + open var outerHTML: String fun hasAttributes(): Boolean fun getAttributeNames(): Array fun getAttribute(qualifiedName: String): String? fun getAttributeNS(namespace: String?, localName: String): String? - fun setAttribute(qualifiedName: String, value: String): Unit - fun setAttributeNS(namespace: String?, qualifiedName: String, value: String): Unit - fun removeAttribute(qualifiedName: String): Unit - fun removeAttributeNS(namespace: String?, localName: String): Unit + fun setAttribute(qualifiedName: String, value: String) + fun setAttributeNS(namespace: String?, qualifiedName: String, value: String) + fun removeAttribute(qualifiedName: String) + fun removeAttributeNS(namespace: String?, localName: String) fun hasAttribute(qualifiedName: String): Boolean fun hasAttributeNS(namespace: String?, localName: String): Boolean fun getAttributeNode(qualifiedName: String): Attr? @@ -3557,17 +5166,43 @@ public external abstract class Element : Node, ParentNode, NonDocumentTypeChildN fun getElementsByTagNameNS(namespace: String?, localName: String): HTMLCollection fun getElementsByClassName(classNames: String): HTMLCollection fun insertAdjacentElement(where: String, element: Element): Element? - fun insertAdjacentText(where: String, data: String): Unit + fun insertAdjacentText(where: String, data: String) fun getClientRects(): Array fun getBoundingClientRect(): DOMRect - fun scrollIntoView(): Unit - fun scrollIntoView(arg: dynamic): Unit - fun scroll(options: ScrollToOptions = definedExternally): Unit - fun scroll(x: Double, y: Double): Unit - fun scrollTo(options: ScrollToOptions = definedExternally): Unit - fun scrollTo(x: Double, y: Double): Unit - fun scrollBy(options: ScrollToOptions = definedExternally): Unit - fun scrollBy(x: Double, y: Double): Unit + fun scrollIntoView() + fun scrollIntoView(arg: dynamic) + fun scroll(options: ScrollToOptions = definedExternally) + fun scroll(x: Double, y: Double) + fun scrollTo(options: ScrollToOptions = definedExternally) + fun scrollTo(x: Double, y: Double) + fun scrollBy(options: ScrollToOptions = definedExternally) + fun scrollBy(x: Double, y: Double) + fun insertAdjacentHTML(position: String, text: String) + fun setPointerCapture(pointerId: Int) + fun releasePointerCapture(pointerId: Int) + fun hasPointerCapture(pointerId: Int): Boolean + fun requestFullscreen(): Promise + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external interface ShadowRootInit { @@ -3579,9 +5214,7 @@ public external interface ShadowRootInit { @kotlin.internal.InlineOnly public inline fun ShadowRootInit(mode: ShadowRootMode?): ShadowRootInit { val o = js("({})") - o["mode"] = mode - return o } @@ -3589,17 +5222,20 @@ public inline fun ShadowRootInit(mode: ShadowRootMode?): ShadowRootInit { * Exposes the JavaScript [NamedNodeMap](https://developer.mozilla.org/en/docs/Web/API/NamedNodeMap) to Kotlin */ public external abstract class NamedNodeMap : ItemArrayLike { - override val length: Int - override fun item(index: Int): Attr? - fun getNamedItem(qualifiedName: String): Attr? fun getNamedItemNS(namespace: String?, localName: String): Attr? fun setNamedItem(attr: Attr): Attr? fun setNamedItemNS(attr: Attr): Attr? fun removeNamedItem(qualifiedName: String): Attr fun removeNamedItemNS(namespace: String?, localName: String): Attr + override fun item(index: Int): Attr? + fun getNamedItem(qualifiedName: String): Attr? } -@kotlin.internal.InlineOnly inline operator fun NamedNodeMap.get(index: Int): Attr? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun NamedNodeMap.get(qualifiedName: String): Attr? = asDynamic()[qualifiedName] + +@kotlin.internal.InlineOnly +public inline operator fun NamedNodeMap.get(index: Int): Attr? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun NamedNodeMap.get(qualifiedName: String): Attr? = asDynamic()[qualifiedName] /** * Exposes the JavaScript [Attr](https://developer.mozilla.org/en/docs/Web/API/Attr) to Kotlin @@ -3612,6 +5248,27 @@ public external abstract class Attr : Node { open var value: String open val ownerElement: Element? open val specified: Boolean + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -3621,10 +5278,31 @@ public external abstract class CharacterData : Node, NonDocumentTypeChildNode, C open var data: String open val length: Int fun substringData(offset: Int, count: Int): String - fun appendData(data: String): Unit - fun insertData(offset: Int, data: String): Unit - fun deleteData(offset: Int, count: Int): Unit - fun replaceData(offset: Int, count: Int, data: String): Unit + fun appendData(data: String) + fun insertData(offset: Int, data: String) + fun deleteData(offset: Int, count: Int) + fun replaceData(offset: Int, count: Int, data: String) + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -3632,32 +5310,65 @@ public external abstract class CharacterData : Node, NonDocumentTypeChildNode, C */ public external open class Text(data: String = definedExternally) : CharacterData, Slotable, GeometryUtils { open val wholeText: String + override val assignedSlot: HTMLSlotElement? override val previousElementSibling: Element? override val nextElementSibling: Element? - override val assignedSlot: HTMLSlotElement? fun splitText(offset: Int): Text - override fun before(vararg nodes: dynamic): Unit - override fun after(vararg nodes: dynamic): Unit - override fun replaceWith(vararg nodes: dynamic): Unit - override fun remove(): Unit override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + override fun before(vararg nodes: dynamic) + override fun after(vararg nodes: dynamic) + override fun replaceWith(vararg nodes: dynamic) + override fun remove() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [CDATASection](https://developer.mozilla.org/en/docs/Web/API/CDATASection) to Kotlin */ public external open class CDATASection : Text { - override fun before(vararg nodes: dynamic): Unit - override fun after(vararg nodes: dynamic): Unit - override fun replaceWith(vararg nodes: dynamic): Unit - override fun remove(): Unit - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -3665,6 +5376,27 @@ public external open class CDATASection : Text { */ public external abstract class ProcessingInstruction : CharacterData, LinkStyle, UnionElementOrProcessingInstruction { open val target: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -3673,10 +5405,31 @@ public external abstract class ProcessingInstruction : CharacterData, LinkStyle, public external open class Comment(data: String = definedExternally) : CharacterData { override val previousElementSibling: Element? override val nextElementSibling: Element? - override fun before(vararg nodes: dynamic): Unit - override fun after(vararg nodes: dynamic): Unit - override fun replaceWith(vararg nodes: dynamic): Unit - override fun remove(): Unit + override fun before(vararg nodes: dynamic) + override fun after(vararg nodes: dynamic) + override fun replaceWith(vararg nodes: dynamic) + override fun remove() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -3689,29 +5442,29 @@ public external open class Range { open val endOffset: Int open val collapsed: Boolean open val commonAncestorContainer: Node - fun createContextualFragment(fragment: String): DocumentFragment - fun setStart(node: Node, offset: Int): Unit - fun setEnd(node: Node, offset: Int): Unit - fun setStartBefore(node: Node): Unit - fun setStartAfter(node: Node): Unit - fun setEndBefore(node: Node): Unit - fun setEndAfter(node: Node): Unit - fun collapse(toStart: Boolean = definedExternally): Unit - fun selectNode(node: Node): Unit - fun selectNodeContents(node: Node): Unit + fun setStart(node: Node, offset: Int) + fun setEnd(node: Node, offset: Int) + fun setStartBefore(node: Node) + fun setStartAfter(node: Node) + fun setEndBefore(node: Node) + fun setEndAfter(node: Node) + fun collapse(toStart: Boolean = definedExternally) + fun selectNode(node: Node) + fun selectNodeContents(node: Node) fun compareBoundaryPoints(how: Short, sourceRange: Range): Short - fun deleteContents(): Unit + fun deleteContents() fun extractContents(): DocumentFragment fun cloneContents(): DocumentFragment - fun insertNode(node: Node): Unit - fun surroundContents(newParent: Node): Unit + fun insertNode(node: Node) + fun surroundContents(newParent: Node) fun cloneRange(): Range - fun detach(): Unit + fun detach() fun isPointInRange(node: Node, offset: Int): Boolean fun comparePoint(node: Node, offset: Int): Short fun intersectsNode(node: Node): Boolean fun getClientRects(): Array fun getBoundingClientRect(): DOMRect + fun createContextualFragment(fragment: String): DocumentFragment companion object { val START_TO_START: Short @@ -3732,7 +5485,7 @@ public external abstract class NodeIterator { open val filter: NodeFilter? fun nextNode(): Node? fun previousNode(): Node? - fun detach(): Unit + fun detach() } /** @@ -3755,6 +5508,7 @@ public external abstract class TreeWalker { /** * Exposes the JavaScript [NodeFilter](https://developer.mozilla.org/en/docs/Web/API/NodeFilter) to Kotlin */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface NodeFilter { fun acceptNode(node: Node): Short @@ -3782,17 +5536,18 @@ public external interface NodeFilter { * Exposes the JavaScript [DOMTokenList](https://developer.mozilla.org/en/docs/Web/API/DOMTokenList) to Kotlin */ public external abstract class DOMTokenList : ItemArrayLike { - override val length: Int open var value: String - override fun item(index: Int): String? fun contains(token: String): Boolean - fun add(vararg tokens: String): Unit - fun remove(vararg tokens: String): Unit + fun add(vararg tokens: String) + fun remove(vararg tokens: String) fun toggle(token: String, force: Boolean = definedExternally): Boolean - fun replace(token: String, newToken: String): Unit + fun replace(token: String, newToken: String) fun supports(token: String): Boolean + override fun item(index: Int): String? } -@kotlin.internal.InlineOnly inline operator fun DOMTokenList.get(index: Int): String? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun DOMTokenList.get(index: Int): String? = asDynamic()[index] /** * Exposes the JavaScript [DOMPointReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMPointReadOnly) to Kotlin @@ -3838,12 +5593,10 @@ public external interface DOMPointInit { @kotlin.internal.InlineOnly public inline fun DOMPointInit(x: Double? = 0.0, y: Double? = 0.0, z: Double? = 0.0, w: Double? = 1.0): DOMPointInit { val o = js("({})") - o["x"] = x o["y"] = y o["z"] = z o["w"] = w - return o } @@ -3889,19 +5642,19 @@ public external interface DOMRectInit { @kotlin.internal.InlineOnly public inline fun DOMRectInit(x: Double? = 0.0, y: Double? = 0.0, width: Double? = 0.0, height: Double? = 0.0): DOMRectInit { val o = js("({})") - o["x"] = x o["y"] = y o["width"] = width o["height"] = height - return o } public external interface DOMRectList : ItemArrayLike { override fun item(index: Int): DOMRect? } -@kotlin.internal.InlineOnly inline operator fun DOMRectList.get(index: Int): DOMRect? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun DOMRectList.get(index: Int): DOMRect? = asDynamic()[index] /** * Exposes the JavaScript [DOMQuad](https://developer.mozilla.org/en/docs/Web/API/DOMQuad) to Kotlin @@ -4017,9 +5770,7 @@ public external interface ScrollOptions { @kotlin.internal.InlineOnly public inline fun ScrollOptions(behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollOptions { val o = js("({})") - o["behavior"] = behavior - return o } @@ -4038,11 +5789,9 @@ public external interface ScrollToOptions : ScrollOptions { @kotlin.internal.InlineOnly public inline fun ScrollToOptions(left: Double? = undefined, top: Double? = undefined, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollToOptions { val o = js("({})") - o["left"] = left o["top"] = top o["behavior"] = behavior - return o } @@ -4053,10 +5802,10 @@ public external abstract class MediaQueryList : EventTarget { open val media: String open val matches: Boolean open var onchange: ((Event) -> dynamic)? - fun addListener(listener: EventListener?): Unit - fun addListener(listener: ((Event) -> Unit)?): Unit - fun removeListener(listener: EventListener?): Unit - fun removeListener(listener: ((Event) -> Unit)?): Unit + fun addListener(listener: EventListener?) + fun addListener(listener: ((Event) -> Unit)?) + fun removeListener(listener: EventListener?) + fun removeListener(listener: ((Event) -> Unit)?) } /** @@ -4065,6 +5814,13 @@ public external abstract class MediaQueryList : EventTarget { public external open class MediaQueryListEvent(type: String, eventInitDict: MediaQueryListEventInit = definedExternally) : Event { open val media: String open val matches: Boolean + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface MediaQueryListEventInit : EventInit { @@ -4079,13 +5835,11 @@ public external interface MediaQueryListEventInit : EventInit { @kotlin.internal.InlineOnly public inline fun MediaQueryListEventInit(media: String? = "", matches: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaQueryListEventInit { val o = js("({})") - o["media"] = media o["matches"] = matches o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -4122,11 +5876,9 @@ public external interface ScrollIntoViewOptions : ScrollOptions { @kotlin.internal.InlineOnly public inline fun ScrollIntoViewOptions(block: ScrollLogicalPosition? = ScrollLogicalPosition.CENTER, inline: ScrollLogicalPosition? = ScrollLogicalPosition.CENTER, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollIntoViewOptions { val o = js("({})") - o["block"] = block o["inline"] = inline o["behavior"] = behavior - return o } @@ -4142,10 +5894,8 @@ public external interface BoxQuadOptions { @kotlin.internal.InlineOnly public inline fun BoxQuadOptions(box: CSSBoxType? = CSSBoxType.BORDER, relativeTo: dynamic = undefined): BoxQuadOptions { val o = js("({})") - o["box"] = box o["relativeTo"] = relativeTo - return o } @@ -4161,10 +5911,8 @@ public external interface ConvertCoordinateOptions { @kotlin.internal.InlineOnly public inline fun ConvertCoordinateOptions(fromBox: CSSBoxType? = CSSBoxType.BORDER, toBox: CSSBoxType? = CSSBoxType.BORDER): ConvertCoordinateOptions { val o = js("({})") - o["fromBox"] = fromBox o["toBox"] = toBox - return o } @@ -4178,224 +5926,683 @@ public external interface GeometryUtils { fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions = definedExternally): DOMPoint } -public external @marker interface UnionElementOrProcessingInstruction { +/** + * Exposes the JavaScript [Image](https://developer.mozilla.org/en/docs/Web/API/Image) to Kotlin + */ +public external open class Image(width: Int = definedExternally, height: Int = definedExternally) : HTMLImageElement { + override var onabort: ((Event) -> dynamic)? + override var onblur: ((FocusEvent) -> dynamic)? + override var oncancel: ((Event) -> dynamic)? + override var oncanplay: ((Event) -> dynamic)? + override var oncanplaythrough: ((Event) -> dynamic)? + override var onchange: ((Event) -> dynamic)? + override var onclick: ((MouseEvent) -> dynamic)? + override var onclose: ((Event) -> dynamic)? + override var oncontextmenu: ((MouseEvent) -> dynamic)? + override var oncuechange: ((Event) -> dynamic)? + override var ondblclick: ((MouseEvent) -> dynamic)? + override var ondrag: ((DragEvent) -> dynamic)? + override var ondragend: ((DragEvent) -> dynamic)? + override var ondragenter: ((DragEvent) -> dynamic)? + override var ondragexit: ((DragEvent) -> dynamic)? + override var ondragleave: ((DragEvent) -> dynamic)? + override var ondragover: ((DragEvent) -> dynamic)? + override var ondragstart: ((DragEvent) -> dynamic)? + override var ondrop: ((DragEvent) -> dynamic)? + override var ondurationchange: ((Event) -> dynamic)? + override var onemptied: ((Event) -> dynamic)? + override var onended: ((Event) -> dynamic)? + override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? + override var onfocus: ((FocusEvent) -> dynamic)? + override var oninput: ((InputEvent) -> dynamic)? + override var oninvalid: ((Event) -> dynamic)? + override var onkeydown: ((KeyboardEvent) -> dynamic)? + override var onkeypress: ((KeyboardEvent) -> dynamic)? + override var onkeyup: ((KeyboardEvent) -> dynamic)? + override var onload: ((Event) -> dynamic)? + override var onloadeddata: ((Event) -> dynamic)? + override var onloadedmetadata: ((Event) -> dynamic)? + override var onloadend: ((Event) -> dynamic)? + override var onloadstart: ((ProgressEvent) -> dynamic)? + override var onmousedown: ((MouseEvent) -> dynamic)? + override var onmouseenter: ((MouseEvent) -> dynamic)? + override var onmouseleave: ((MouseEvent) -> dynamic)? + override var onmousemove: ((MouseEvent) -> dynamic)? + override var onmouseout: ((MouseEvent) -> dynamic)? + override var onmouseover: ((MouseEvent) -> dynamic)? + override var onmouseup: ((MouseEvent) -> dynamic)? + override var onwheel: ((WheelEvent) -> dynamic)? + override var onpause: ((Event) -> dynamic)? + override var onplay: ((Event) -> dynamic)? + override var onplaying: ((Event) -> dynamic)? + override var onprogress: ((ProgressEvent) -> dynamic)? + override var onratechange: ((Event) -> dynamic)? + override var onreset: ((Event) -> dynamic)? + override var onresize: ((Event) -> dynamic)? + override var onscroll: ((Event) -> dynamic)? + override var onseeked: ((Event) -> dynamic)? + override var onseeking: ((Event) -> dynamic)? + override var onselect: ((Event) -> dynamic)? + override var onshow: ((Event) -> dynamic)? + override var onstalled: ((Event) -> dynamic)? + override var onsubmit: ((Event) -> dynamic)? + override var onsuspend: ((Event) -> dynamic)? + override var ontimeupdate: ((Event) -> dynamic)? + override var ontoggle: ((Event) -> dynamic)? + override var onvolumechange: ((Event) -> dynamic)? + override var onwaiting: ((Event) -> dynamic)? + override var ongotpointercapture: ((PointerEvent) -> dynamic)? + override var onlostpointercapture: ((PointerEvent) -> dynamic)? + override var onpointerdown: ((PointerEvent) -> dynamic)? + override var onpointermove: ((PointerEvent) -> dynamic)? + override var onpointerup: ((PointerEvent) -> dynamic)? + override var onpointercancel: ((PointerEvent) -> dynamic)? + override var onpointerover: ((PointerEvent) -> dynamic)? + override var onpointerout: ((PointerEvent) -> dynamic)? + override var onpointerenter: ((PointerEvent) -> dynamic)? + override var onpointerleave: ((PointerEvent) -> dynamic)? + override var oncopy: ((ClipboardEvent) -> dynamic)? + override var oncut: ((ClipboardEvent) -> dynamic)? + override var onpaste: ((ClipboardEvent) -> dynamic)? + override var contentEditable: String + override val isContentEditable: Boolean + override val style: CSSStyleDeclaration + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + override val previousElementSibling: Element? + override val nextElementSibling: Element? + override val assignedSlot: HTMLSlotElement? + override fun prepend(vararg nodes: dynamic) + override fun append(vararg nodes: dynamic) + override fun querySelector(selectors: String): Element? + override fun querySelectorAll(selectors: String): NodeList + override fun before(vararg nodes: dynamic) + override fun after(vararg nodes: dynamic) + override fun replaceWith(vararg nodes: dynamic) + override fun remove() + override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array + override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } -public external @marker interface UnionElementOrHTMLCollection { +public external open class Audio(src: String = definedExternally) : HTMLAudioElement { + override var onabort: ((Event) -> dynamic)? + override var onblur: ((FocusEvent) -> dynamic)? + override var oncancel: ((Event) -> dynamic)? + override var oncanplay: ((Event) -> dynamic)? + override var oncanplaythrough: ((Event) -> dynamic)? + override var onchange: ((Event) -> dynamic)? + override var onclick: ((MouseEvent) -> dynamic)? + override var onclose: ((Event) -> dynamic)? + override var oncontextmenu: ((MouseEvent) -> dynamic)? + override var oncuechange: ((Event) -> dynamic)? + override var ondblclick: ((MouseEvent) -> dynamic)? + override var ondrag: ((DragEvent) -> dynamic)? + override var ondragend: ((DragEvent) -> dynamic)? + override var ondragenter: ((DragEvent) -> dynamic)? + override var ondragexit: ((DragEvent) -> dynamic)? + override var ondragleave: ((DragEvent) -> dynamic)? + override var ondragover: ((DragEvent) -> dynamic)? + override var ondragstart: ((DragEvent) -> dynamic)? + override var ondrop: ((DragEvent) -> dynamic)? + override var ondurationchange: ((Event) -> dynamic)? + override var onemptied: ((Event) -> dynamic)? + override var onended: ((Event) -> dynamic)? + override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? + override var onfocus: ((FocusEvent) -> dynamic)? + override var oninput: ((InputEvent) -> dynamic)? + override var oninvalid: ((Event) -> dynamic)? + override var onkeydown: ((KeyboardEvent) -> dynamic)? + override var onkeypress: ((KeyboardEvent) -> dynamic)? + override var onkeyup: ((KeyboardEvent) -> dynamic)? + override var onload: ((Event) -> dynamic)? + override var onloadeddata: ((Event) -> dynamic)? + override var onloadedmetadata: ((Event) -> dynamic)? + override var onloadend: ((Event) -> dynamic)? + override var onloadstart: ((ProgressEvent) -> dynamic)? + override var onmousedown: ((MouseEvent) -> dynamic)? + override var onmouseenter: ((MouseEvent) -> dynamic)? + override var onmouseleave: ((MouseEvent) -> dynamic)? + override var onmousemove: ((MouseEvent) -> dynamic)? + override var onmouseout: ((MouseEvent) -> dynamic)? + override var onmouseover: ((MouseEvent) -> dynamic)? + override var onmouseup: ((MouseEvent) -> dynamic)? + override var onwheel: ((WheelEvent) -> dynamic)? + override var onpause: ((Event) -> dynamic)? + override var onplay: ((Event) -> dynamic)? + override var onplaying: ((Event) -> dynamic)? + override var onprogress: ((ProgressEvent) -> dynamic)? + override var onratechange: ((Event) -> dynamic)? + override var onreset: ((Event) -> dynamic)? + override var onresize: ((Event) -> dynamic)? + override var onscroll: ((Event) -> dynamic)? + override var onseeked: ((Event) -> dynamic)? + override var onseeking: ((Event) -> dynamic)? + override var onselect: ((Event) -> dynamic)? + override var onshow: ((Event) -> dynamic)? + override var onstalled: ((Event) -> dynamic)? + override var onsubmit: ((Event) -> dynamic)? + override var onsuspend: ((Event) -> dynamic)? + override var ontimeupdate: ((Event) -> dynamic)? + override var ontoggle: ((Event) -> dynamic)? + override var onvolumechange: ((Event) -> dynamic)? + override var onwaiting: ((Event) -> dynamic)? + override var ongotpointercapture: ((PointerEvent) -> dynamic)? + override var onlostpointercapture: ((PointerEvent) -> dynamic)? + override var onpointerdown: ((PointerEvent) -> dynamic)? + override var onpointermove: ((PointerEvent) -> dynamic)? + override var onpointerup: ((PointerEvent) -> dynamic)? + override var onpointercancel: ((PointerEvent) -> dynamic)? + override var onpointerover: ((PointerEvent) -> dynamic)? + override var onpointerout: ((PointerEvent) -> dynamic)? + override var onpointerenter: ((PointerEvent) -> dynamic)? + override var onpointerleave: ((PointerEvent) -> dynamic)? + override var oncopy: ((ClipboardEvent) -> dynamic)? + override var oncut: ((ClipboardEvent) -> dynamic)? + override var onpaste: ((ClipboardEvent) -> dynamic)? + override var contentEditable: String + override val isContentEditable: Boolean + override val style: CSSStyleDeclaration + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + override val previousElementSibling: Element? + override val nextElementSibling: Element? + override val assignedSlot: HTMLSlotElement? + override fun prepend(vararg nodes: dynamic) + override fun append(vararg nodes: dynamic) + override fun querySelector(selectors: String): Element? + override fun querySelectorAll(selectors: String): NodeList + override fun before(vararg nodes: dynamic) + override fun after(vararg nodes: dynamic) + override fun replaceWith(vararg nodes: dynamic) + override fun remove() + override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array + override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + + companion object { + val NETWORK_EMPTY: Short + val NETWORK_IDLE: Short + val NETWORK_LOADING: Short + val NETWORK_NO_SOURCE: Short + val HAVE_NOTHING: Short + val HAVE_METADATA: Short + val HAVE_CURRENT_DATA: Short + val HAVE_FUTURE_DATA: Short + val HAVE_ENOUGH_DATA: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } -public external @marker interface UnionElementOrRadioNodeList { +/** + * Exposes the JavaScript [Option](https://developer.mozilla.org/en/docs/Web/API/Option) to Kotlin + */ +public external open class Option(text: String = definedExternally, value: String = definedExternally, defaultSelected: Boolean = definedExternally, selected: Boolean = definedExternally) : HTMLOptionElement { + override var onabort: ((Event) -> dynamic)? + override var onblur: ((FocusEvent) -> dynamic)? + override var oncancel: ((Event) -> dynamic)? + override var oncanplay: ((Event) -> dynamic)? + override var oncanplaythrough: ((Event) -> dynamic)? + override var onchange: ((Event) -> dynamic)? + override var onclick: ((MouseEvent) -> dynamic)? + override var onclose: ((Event) -> dynamic)? + override var oncontextmenu: ((MouseEvent) -> dynamic)? + override var oncuechange: ((Event) -> dynamic)? + override var ondblclick: ((MouseEvent) -> dynamic)? + override var ondrag: ((DragEvent) -> dynamic)? + override var ondragend: ((DragEvent) -> dynamic)? + override var ondragenter: ((DragEvent) -> dynamic)? + override var ondragexit: ((DragEvent) -> dynamic)? + override var ondragleave: ((DragEvent) -> dynamic)? + override var ondragover: ((DragEvent) -> dynamic)? + override var ondragstart: ((DragEvent) -> dynamic)? + override var ondrop: ((DragEvent) -> dynamic)? + override var ondurationchange: ((Event) -> dynamic)? + override var onemptied: ((Event) -> dynamic)? + override var onended: ((Event) -> dynamic)? + override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)? + override var onfocus: ((FocusEvent) -> dynamic)? + override var oninput: ((InputEvent) -> dynamic)? + override var oninvalid: ((Event) -> dynamic)? + override var onkeydown: ((KeyboardEvent) -> dynamic)? + override var onkeypress: ((KeyboardEvent) -> dynamic)? + override var onkeyup: ((KeyboardEvent) -> dynamic)? + override var onload: ((Event) -> dynamic)? + override var onloadeddata: ((Event) -> dynamic)? + override var onloadedmetadata: ((Event) -> dynamic)? + override var onloadend: ((Event) -> dynamic)? + override var onloadstart: ((ProgressEvent) -> dynamic)? + override var onmousedown: ((MouseEvent) -> dynamic)? + override var onmouseenter: ((MouseEvent) -> dynamic)? + override var onmouseleave: ((MouseEvent) -> dynamic)? + override var onmousemove: ((MouseEvent) -> dynamic)? + override var onmouseout: ((MouseEvent) -> dynamic)? + override var onmouseover: ((MouseEvent) -> dynamic)? + override var onmouseup: ((MouseEvent) -> dynamic)? + override var onwheel: ((WheelEvent) -> dynamic)? + override var onpause: ((Event) -> dynamic)? + override var onplay: ((Event) -> dynamic)? + override var onplaying: ((Event) -> dynamic)? + override var onprogress: ((ProgressEvent) -> dynamic)? + override var onratechange: ((Event) -> dynamic)? + override var onreset: ((Event) -> dynamic)? + override var onresize: ((Event) -> dynamic)? + override var onscroll: ((Event) -> dynamic)? + override var onseeked: ((Event) -> dynamic)? + override var onseeking: ((Event) -> dynamic)? + override var onselect: ((Event) -> dynamic)? + override var onshow: ((Event) -> dynamic)? + override var onstalled: ((Event) -> dynamic)? + override var onsubmit: ((Event) -> dynamic)? + override var onsuspend: ((Event) -> dynamic)? + override var ontimeupdate: ((Event) -> dynamic)? + override var ontoggle: ((Event) -> dynamic)? + override var onvolumechange: ((Event) -> dynamic)? + override var onwaiting: ((Event) -> dynamic)? + override var ongotpointercapture: ((PointerEvent) -> dynamic)? + override var onlostpointercapture: ((PointerEvent) -> dynamic)? + override var onpointerdown: ((PointerEvent) -> dynamic)? + override var onpointermove: ((PointerEvent) -> dynamic)? + override var onpointerup: ((PointerEvent) -> dynamic)? + override var onpointercancel: ((PointerEvent) -> dynamic)? + override var onpointerover: ((PointerEvent) -> dynamic)? + override var onpointerout: ((PointerEvent) -> dynamic)? + override var onpointerenter: ((PointerEvent) -> dynamic)? + override var onpointerleave: ((PointerEvent) -> dynamic)? + override var oncopy: ((ClipboardEvent) -> dynamic)? + override var oncut: ((ClipboardEvent) -> dynamic)? + override var onpaste: ((ClipboardEvent) -> dynamic)? + override var contentEditable: String + override val isContentEditable: Boolean + override val style: CSSStyleDeclaration + override val children: HTMLCollection + override val firstElementChild: Element? + override val lastElementChild: Element? + override val childElementCount: Int + override val previousElementSibling: Element? + override val nextElementSibling: Element? + override val assignedSlot: HTMLSlotElement? + override fun prepend(vararg nodes: dynamic) + override fun append(vararg nodes: dynamic) + override fun querySelector(selectors: String): Element? + override fun querySelectorAll(selectors: String): NodeList + override fun before(vararg nodes: dynamic) + override fun after(vararg nodes: dynamic) + override fun replaceWith(vararg nodes: dynamic) + override fun remove() + override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array + override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } -public external @marker interface UnionHTMLOptGroupElementOrHTMLOptionElement { -} +public external interface UnionElementOrHTMLCollection -public external @marker interface UnionAudioTrackOrTextTrackOrVideoTrack { -} +public external interface UnionElementOrRadioNodeList -public external @marker interface UnionElementOrMouseEvent { -} +public external interface UnionHTMLOptGroupElementOrHTMLOptionElement -public external @marker interface UnionMessagePortOrWindow { -} +public external interface UnionAudioTrackOrTextTrackOrVideoTrack -public external @marker interface UnionMessagePortOrServiceWorker { -} +public external interface UnionElementOrMouseEvent -public external @marker interface HTMLOrSVGScriptElement { -} +public external interface RenderingContext -public external @marker interface RenderingContext { -} +public external interface HTMLOrSVGImageElement : CanvasImageSource -public external @marker interface HTMLOrSVGImageElement { -} +public external interface CanvasImageSource : ImageBitmapSource + +public external interface ImageBitmapSource + +public external interface UnionMessagePortOrWindowProxy + +public external interface HTMLOrSVGScriptElement /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface DocumentReadyState { companion object } + public inline val DocumentReadyState.Companion.LOADING: DocumentReadyState get() = "loading".asDynamic().unsafeCast() + public inline val DocumentReadyState.Companion.INTERACTIVE: DocumentReadyState get() = "interactive".asDynamic().unsafeCast() + public inline val DocumentReadyState.Companion.COMPLETE: DocumentReadyState get() = "complete".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface CanPlayTypeResult { companion object } + public inline val CanPlayTypeResult.Companion.EMPTY: CanPlayTypeResult get() = "".asDynamic().unsafeCast() + public inline val CanPlayTypeResult.Companion.MAYBE: CanPlayTypeResult get() = "maybe".asDynamic().unsafeCast() + public inline val CanPlayTypeResult.Companion.PROBABLY: CanPlayTypeResult get() = "probably".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface TextTrackMode { companion object } + public inline val TextTrackMode.Companion.DISABLED: TextTrackMode get() = "disabled".asDynamic().unsafeCast() + public inline val TextTrackMode.Companion.HIDDEN: TextTrackMode get() = "hidden".asDynamic().unsafeCast() + public inline val TextTrackMode.Companion.SHOWING: TextTrackMode get() = "showing".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface TextTrackKind { companion object } + public inline val TextTrackKind.Companion.SUBTITLES: TextTrackKind get() = "subtitles".asDynamic().unsafeCast() + public inline val TextTrackKind.Companion.CAPTIONS: TextTrackKind get() = "captions".asDynamic().unsafeCast() + public inline val TextTrackKind.Companion.DESCRIPTIONS: TextTrackKind get() = "descriptions".asDynamic().unsafeCast() + public inline val TextTrackKind.Companion.CHAPTERS: TextTrackKind get() = "chapters".asDynamic().unsafeCast() + public inline val TextTrackKind.Companion.METADATA: TextTrackKind get() = "metadata".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface SelectionMode { companion object } + public inline val SelectionMode.Companion.SELECT: SelectionMode get() = "select".asDynamic().unsafeCast() + public inline val SelectionMode.Companion.START: SelectionMode get() = "start".asDynamic().unsafeCast() + public inline val SelectionMode.Companion.END: SelectionMode get() = "end".asDynamic().unsafeCast() + public inline val SelectionMode.Companion.PRESERVE: SelectionMode get() = "preserve".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface CanvasFillRule { companion object } + public inline val CanvasFillRule.Companion.NONZERO: CanvasFillRule get() = "nonzero".asDynamic().unsafeCast() + public inline val CanvasFillRule.Companion.EVENODD: CanvasFillRule get() = "evenodd".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ImageSmoothingQuality { companion object } + public inline val ImageSmoothingQuality.Companion.LOW: ImageSmoothingQuality get() = "low".asDynamic().unsafeCast() + public inline val ImageSmoothingQuality.Companion.MEDIUM: ImageSmoothingQuality get() = "medium".asDynamic().unsafeCast() + public inline val ImageSmoothingQuality.Companion.HIGH: ImageSmoothingQuality get() = "high".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface CanvasLineCap { companion object } + public inline val CanvasLineCap.Companion.BUTT: CanvasLineCap get() = "butt".asDynamic().unsafeCast() + public inline val CanvasLineCap.Companion.ROUND: CanvasLineCap get() = "round".asDynamic().unsafeCast() + public inline val CanvasLineCap.Companion.SQUARE: CanvasLineCap get() = "square".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface CanvasLineJoin { companion object } + public inline val CanvasLineJoin.Companion.ROUND: CanvasLineJoin get() = "round".asDynamic().unsafeCast() + public inline val CanvasLineJoin.Companion.BEVEL: CanvasLineJoin get() = "bevel".asDynamic().unsafeCast() + public inline val CanvasLineJoin.Companion.MITER: CanvasLineJoin get() = "miter".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface CanvasTextAlign { companion object } + public inline val CanvasTextAlign.Companion.START: CanvasTextAlign get() = "start".asDynamic().unsafeCast() + public inline val CanvasTextAlign.Companion.END: CanvasTextAlign get() = "end".asDynamic().unsafeCast() + public inline val CanvasTextAlign.Companion.LEFT: CanvasTextAlign get() = "left".asDynamic().unsafeCast() + public inline val CanvasTextAlign.Companion.RIGHT: CanvasTextAlign get() = "right".asDynamic().unsafeCast() + public inline val CanvasTextAlign.Companion.CENTER: CanvasTextAlign get() = "center".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface CanvasTextBaseline { companion object } + public inline val CanvasTextBaseline.Companion.TOP: CanvasTextBaseline get() = "top".asDynamic().unsafeCast() + public inline val CanvasTextBaseline.Companion.HANGING: CanvasTextBaseline get() = "hanging".asDynamic().unsafeCast() + public inline val CanvasTextBaseline.Companion.MIDDLE: CanvasTextBaseline get() = "middle".asDynamic().unsafeCast() + public inline val CanvasTextBaseline.Companion.ALPHABETIC: CanvasTextBaseline get() = "alphabetic".asDynamic().unsafeCast() + public inline val CanvasTextBaseline.Companion.IDEOGRAPHIC: CanvasTextBaseline get() = "ideographic".asDynamic().unsafeCast() + public inline val CanvasTextBaseline.Companion.BOTTOM: CanvasTextBaseline get() = "bottom".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface CanvasDirection { companion object } + public inline val CanvasDirection.Companion.LTR: CanvasDirection get() = "ltr".asDynamic().unsafeCast() + public inline val CanvasDirection.Companion.RTL: CanvasDirection get() = "rtl".asDynamic().unsafeCast() + public inline val CanvasDirection.Companion.INHERIT: CanvasDirection get() = "inherit".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ScrollRestoration { companion object } + public inline val ScrollRestoration.Companion.AUTO: ScrollRestoration get() = "auto".asDynamic().unsafeCast() + public inline val ScrollRestoration.Companion.MANUAL: ScrollRestoration get() = "manual".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ImageOrientation { companion object } + public inline val ImageOrientation.Companion.NONE: ImageOrientation get() = "none".asDynamic().unsafeCast() + public inline val ImageOrientation.Companion.FLIPY: ImageOrientation get() = "flipY".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface PremultiplyAlpha { companion object } + public inline val PremultiplyAlpha.Companion.NONE: PremultiplyAlpha get() = "none".asDynamic().unsafeCast() + public inline val PremultiplyAlpha.Companion.PREMULTIPLY: PremultiplyAlpha get() = "premultiply".asDynamic().unsafeCast() + public inline val PremultiplyAlpha.Companion.DEFAULT: PremultiplyAlpha get() = "default".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ColorSpaceConversion { companion object } + public inline val ColorSpaceConversion.Companion.NONE: ColorSpaceConversion get() = "none".asDynamic().unsafeCast() + public inline val ColorSpaceConversion.Companion.DEFAULT: ColorSpaceConversion get() = "default".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ResizeQuality { companion object } + public inline val ResizeQuality.Companion.PIXELATED: ResizeQuality get() = "pixelated".asDynamic().unsafeCast() + public inline val ResizeQuality.Companion.LOW: ResizeQuality get() = "low".asDynamic().unsafeCast() + public inline val ResizeQuality.Companion.MEDIUM: ResizeQuality get() = "medium".asDynamic().unsafeCast() + public inline val ResizeQuality.Companion.HIGH: ResizeQuality get() = "high".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface BinaryType { companion object } + public inline val BinaryType.Companion.BLOB: BinaryType get() = "blob".asDynamic().unsafeCast() + public inline val BinaryType.Companion.ARRAYBUFFER: BinaryType get() = "arraybuffer".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface WorkerType { companion object } + public inline val WorkerType.Companion.CLASSIC: WorkerType get() = "classic".asDynamic().unsafeCast() + public inline val WorkerType.Companion.MODULE: WorkerType get() = "module".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ShadowRootMode { companion object } + public inline val ShadowRootMode.Companion.OPEN: ShadowRootMode get() = "open".asDynamic().unsafeCast() + public inline val ShadowRootMode.Companion.CLOSED: ShadowRootMode get() = "closed".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ScrollBehavior { companion object } + public inline val ScrollBehavior.Companion.AUTO: ScrollBehavior get() = "auto".asDynamic().unsafeCast() + public inline val ScrollBehavior.Companion.INSTANT: ScrollBehavior get() = "instant".asDynamic().unsafeCast() + public inline val ScrollBehavior.Companion.SMOOTH: ScrollBehavior get() = "smooth".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ScrollLogicalPosition { companion object } + public inline val ScrollLogicalPosition.Companion.START: ScrollLogicalPosition get() = "start".asDynamic().unsafeCast() + public inline val ScrollLogicalPosition.Companion.CENTER: ScrollLogicalPosition get() = "center".asDynamic().unsafeCast() + public inline val ScrollLogicalPosition.Companion.END: ScrollLogicalPosition get() = "end".asDynamic().unsafeCast() + public inline val ScrollLogicalPosition.Companion.NEAREST: ScrollLogicalPosition get() = "nearest".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface CSSBoxType { companion object } -public inline val CSSBoxType.Companion.MARGIN: CSSBoxType get() = "margin".asDynamic().unsafeCast() -public inline val CSSBoxType.Companion.BORDER: CSSBoxType get() = "border".asDynamic().unsafeCast() -public inline val CSSBoxType.Companion.PADDING: CSSBoxType get() = "padding".asDynamic().unsafeCast() -public inline val CSSBoxType.Companion.CONTENT: CSSBoxType get() = "content".asDynamic().unsafeCast() +public inline val CSSBoxType.Companion.MARGIN: CSSBoxType get() = "margin".asDynamic().unsafeCast() + +public inline val CSSBoxType.Companion.BORDER: CSSBoxType get() = "border".asDynamic().unsafeCast() + +public inline val CSSBoxType.Companion.PADDING: CSSBoxType get() = "padding".asDynamic().unsafeCast() + +public inline val CSSBoxType.Companion.CONTENT: CSSBoxType get() = "content".asDynamic().unsafeCast() \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.mediacapture.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.mediacapture.kt index a4ab05e3b81..038eb86e8bb 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.mediacapture.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.mediacapture.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom.mediacapture import kotlin.js.* @@ -41,8 +40,8 @@ public external open class MediaStream() : EventTarget { fun getVideoTracks(): Array fun getTracks(): Array fun getTrackById(trackId: String): MediaStreamTrack? - fun addTrack(track: MediaStreamTrack): Unit - fun removeTrack(track: MediaStreamTrack): Unit + fun addTrack(track: MediaStreamTrack) + fun removeTrack(track: MediaStreamTrack) fun clone(): MediaStream } @@ -61,7 +60,7 @@ public external abstract class MediaStreamTrack : EventTarget { open var onended: ((Event) -> dynamic)? open var onoverconstrained: ((Event) -> dynamic)? fun clone(): MediaStreamTrack - fun stop(): Unit + fun stop() fun getCapabilities(): MediaTrackCapabilities fun getConstraints(): MediaTrackConstraints fun getSettings(): MediaTrackSettings @@ -125,7 +124,6 @@ public external interface MediaTrackSupportedConstraints { @kotlin.internal.InlineOnly public inline fun MediaTrackSupportedConstraints(width: Boolean? = true, height: Boolean? = true, aspectRatio: Boolean? = true, frameRate: Boolean? = true, facingMode: Boolean? = true, resizeMode: Boolean? = true, volume: Boolean? = true, sampleRate: Boolean? = true, sampleSize: Boolean? = true, echoCancellation: Boolean? = true, autoGainControl: Boolean? = true, noiseSuppression: Boolean? = true, latency: Boolean? = true, channelCount: Boolean? = true, deviceId: Boolean? = true, groupId: Boolean? = true): MediaTrackSupportedConstraints { val o = js("({})") - o["width"] = width o["height"] = height o["aspectRatio"] = aspectRatio @@ -142,7 +140,6 @@ public inline fun MediaTrackSupportedConstraints(width: Boolean? = true, height: o["channelCount"] = channelCount o["deviceId"] = deviceId o["groupId"] = groupId - return o } @@ -200,7 +197,6 @@ public external interface MediaTrackCapabilities { @kotlin.internal.InlineOnly public inline fun MediaTrackCapabilities(width: ULongRange? = undefined, height: ULongRange? = undefined, aspectRatio: DoubleRange? = undefined, frameRate: DoubleRange? = undefined, facingMode: Array? = undefined, resizeMode: Array? = undefined, volume: DoubleRange? = undefined, sampleRate: ULongRange? = undefined, sampleSize: ULongRange? = undefined, echoCancellation: Array? = undefined, autoGainControl: Array? = undefined, noiseSuppression: Array? = undefined, latency: DoubleRange? = undefined, channelCount: ULongRange? = undefined, deviceId: String? = undefined, groupId: String? = undefined): MediaTrackCapabilities { val o = js("({})") - o["width"] = width o["height"] = height o["aspectRatio"] = aspectRatio @@ -217,7 +213,6 @@ public inline fun MediaTrackCapabilities(width: ULongRange? = undefined, height: o["channelCount"] = channelCount o["deviceId"] = deviceId o["groupId"] = groupId - return o } @@ -233,7 +228,6 @@ public external interface MediaTrackConstraints : MediaTrackConstraintSet { @kotlin.internal.InlineOnly public inline fun MediaTrackConstraints(advanced: Array? = undefined, width: dynamic = undefined, height: dynamic = undefined, aspectRatio: dynamic = undefined, frameRate: dynamic = undefined, facingMode: dynamic = undefined, resizeMode: dynamic = undefined, volume: dynamic = undefined, sampleRate: dynamic = undefined, sampleSize: dynamic = undefined, echoCancellation: dynamic = undefined, autoGainControl: dynamic = undefined, noiseSuppression: dynamic = undefined, latency: dynamic = undefined, channelCount: dynamic = undefined, deviceId: dynamic = undefined, groupId: dynamic = undefined): MediaTrackConstraints { val o = js("({})") - o["advanced"] = advanced o["width"] = width o["height"] = height @@ -251,7 +245,6 @@ public inline fun MediaTrackConstraints(advanced: Array o["channelCount"] = channelCount o["deviceId"] = deviceId o["groupId"] = groupId - return o } @@ -309,7 +302,6 @@ public external interface MediaTrackConstraintSet { @kotlin.internal.InlineOnly public inline fun MediaTrackConstraintSet(width: dynamic = undefined, height: dynamic = undefined, aspectRatio: dynamic = undefined, frameRate: dynamic = undefined, facingMode: dynamic = undefined, resizeMode: dynamic = undefined, volume: dynamic = undefined, sampleRate: dynamic = undefined, sampleSize: dynamic = undefined, echoCancellation: dynamic = undefined, autoGainControl: dynamic = undefined, noiseSuppression: dynamic = undefined, latency: dynamic = undefined, channelCount: dynamic = undefined, deviceId: dynamic = undefined, groupId: dynamic = undefined): MediaTrackConstraintSet { val o = js("({})") - o["width"] = width o["height"] = height o["aspectRatio"] = aspectRatio @@ -326,7 +318,6 @@ public inline fun MediaTrackConstraintSet(width: dynamic = undefined, height: dy o["channelCount"] = channelCount o["deviceId"] = deviceId o["groupId"] = groupId - return o } @@ -387,7 +378,6 @@ public external interface MediaTrackSettings { @kotlin.internal.InlineOnly public inline fun MediaTrackSettings(width: Int? = undefined, height: Int? = undefined, aspectRatio: Double? = undefined, frameRate: Double? = undefined, facingMode: String? = undefined, resizeMode: String? = undefined, volume: Double? = undefined, sampleRate: Int? = undefined, sampleSize: Int? = undefined, echoCancellation: Boolean? = undefined, autoGainControl: Boolean? = undefined, noiseSuppression: Boolean? = undefined, latency: Double? = undefined, channelCount: Int? = undefined, deviceId: String? = undefined, groupId: String? = undefined): MediaTrackSettings { val o = js("({})") - o["width"] = width o["height"] = height o["aspectRatio"] = aspectRatio @@ -404,7 +394,6 @@ public inline fun MediaTrackSettings(width: Int? = undefined, height: Int? = und o["channelCount"] = channelCount o["deviceId"] = deviceId o["groupId"] = groupId - return o } @@ -413,6 +402,13 @@ public inline fun MediaTrackSettings(width: Int? = undefined, height: Int? = und */ public external open class MediaStreamTrackEvent(type: String, eventInitDict: MediaStreamTrackEventInit) : Event { open val track: MediaStreamTrack + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface MediaStreamTrackEventInit : EventInit { @@ -424,17 +420,22 @@ public external interface MediaStreamTrackEventInit : EventInit { @kotlin.internal.InlineOnly public inline fun MediaStreamTrackEventInit(track: MediaStreamTrack?, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaStreamTrackEventInit { val o = js("({})") - o["track"] = track o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } public external open class OverconstrainedErrorEvent(type: String, eventInitDict: OverconstrainedErrorEventInit) : Event { open val error: dynamic + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface OverconstrainedErrorEventInit : EventInit { @@ -446,12 +447,10 @@ public external interface OverconstrainedErrorEventInit : EventInit { @kotlin.internal.InlineOnly public inline fun OverconstrainedErrorEventInit(error: dynamic = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): OverconstrainedErrorEventInit { val o = js("({})") - o["error"] = error o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -460,7 +459,7 @@ public inline fun OverconstrainedErrorEventInit(error: dynamic = null, bubbles: */ public external abstract class MediaDevices : EventTarget { open var ondevicechange: ((Event) -> dynamic)? - fun enumerateDevices(): Promise + fun enumerateDevices(): Promise> fun getSupportedConstraints(): MediaTrackSupportedConstraints fun getUserMedia(constraints: MediaStreamConstraints = definedExternally): Promise } @@ -495,15 +494,15 @@ public external interface MediaStreamConstraints { @kotlin.internal.InlineOnly public inline fun MediaStreamConstraints(video: dynamic = false, audio: dynamic = false): MediaStreamConstraints { val o = js("({})") - o["video"] = video o["audio"] = audio - return o } public external interface ConstrainablePattern { var onoverconstrained: ((Event) -> dynamic)? + get() = definedExternally + set(value) = definedExternally fun getCapabilities(): Capabilities fun getConstraints(): Constraints fun getSettings(): Settings @@ -525,10 +524,8 @@ public external interface DoubleRange { @kotlin.internal.InlineOnly public inline fun DoubleRange(max: Double? = undefined, min: Double? = undefined): DoubleRange { val o = js("({})") - o["max"] = max o["min"] = min - return o } @@ -544,12 +541,10 @@ public external interface ConstrainDoubleRange : DoubleRange { @kotlin.internal.InlineOnly public inline fun ConstrainDoubleRange(exact: Double? = undefined, ideal: Double? = undefined, max: Double? = undefined, min: Double? = undefined): ConstrainDoubleRange { val o = js("({})") - o["exact"] = exact o["ideal"] = ideal o["max"] = max o["min"] = min - return o } @@ -565,10 +560,8 @@ public external interface ULongRange { @kotlin.internal.InlineOnly public inline fun ULongRange(max: Int? = undefined, min: Int? = undefined): ULongRange { val o = js("({})") - o["max"] = max o["min"] = min - return o } @@ -584,12 +577,10 @@ public external interface ConstrainULongRange : ULongRange { @kotlin.internal.InlineOnly public inline fun ConstrainULongRange(exact: Int? = undefined, ideal: Int? = undefined, max: Int? = undefined, min: Int? = undefined): ConstrainULongRange { val o = js("({})") - o["exact"] = exact o["ideal"] = ideal o["max"] = max o["min"] = min - return o } @@ -608,10 +599,8 @@ public external interface ConstrainBooleanParameters { @kotlin.internal.InlineOnly public inline fun ConstrainBooleanParameters(exact: Boolean? = undefined, ideal: Boolean? = undefined): ConstrainBooleanParameters { val o = js("({})") - o["exact"] = exact o["ideal"] = ideal - return o } @@ -630,43 +619,32 @@ public external interface ConstrainDOMStringParameters { @kotlin.internal.InlineOnly public inline fun ConstrainDOMStringParameters(exact: dynamic = undefined, ideal: dynamic = undefined): ConstrainDOMStringParameters { val o = js("({})") - o["exact"] = exact o["ideal"] = ideal - return o } -public external interface Capabilities { -} +public external interface Capabilities @kotlin.internal.InlineOnly public inline fun Capabilities(): Capabilities { val o = js("({})") - - return o } -public external interface Settings { -} +public external interface Settings @kotlin.internal.InlineOnly public inline fun Settings(): Settings { val o = js("({})") - - return o } -public external interface ConstraintSet { -} +public external interface ConstraintSet @kotlin.internal.InlineOnly public inline fun ConstraintSet(): ConstraintSet { val o = js("({})") - - return o } @@ -679,40 +657,52 @@ public external interface Constraints : ConstraintSet { @kotlin.internal.InlineOnly public inline fun Constraints(advanced: Array? = undefined): Constraints { val o = js("({})") - o["advanced"] = advanced - return o } /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface MediaStreamTrackState { companion object } + public inline val MediaStreamTrackState.Companion.LIVE: MediaStreamTrackState get() = "live".asDynamic().unsafeCast() + public inline val MediaStreamTrackState.Companion.ENDED: MediaStreamTrackState get() = "ended".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface VideoFacingModeEnum { companion object } + public inline val VideoFacingModeEnum.Companion.USER: VideoFacingModeEnum get() = "user".asDynamic().unsafeCast() + public inline val VideoFacingModeEnum.Companion.ENVIRONMENT: VideoFacingModeEnum get() = "environment".asDynamic().unsafeCast() + public inline val VideoFacingModeEnum.Companion.LEFT: VideoFacingModeEnum get() = "left".asDynamic().unsafeCast() + public inline val VideoFacingModeEnum.Companion.RIGHT: VideoFacingModeEnum get() = "right".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface VideoResizeModeEnum { companion object } + public inline val VideoResizeModeEnum.Companion.NONE: VideoResizeModeEnum get() = "none".asDynamic().unsafeCast() + public inline val VideoResizeModeEnum.Companion.CROP_AND_SCALE: VideoResizeModeEnum get() = "crop-and-scale".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface MediaDeviceKind { companion object } -public inline val MediaDeviceKind.Companion.AUDIOINPUT: MediaDeviceKind get() = "audioinput".asDynamic().unsafeCast() -public inline val MediaDeviceKind.Companion.AUDIOOUTPUT: MediaDeviceKind get() = "audiooutput".asDynamic().unsafeCast() -public inline val MediaDeviceKind.Companion.VIDEOINPUT: MediaDeviceKind get() = "videoinput".asDynamic().unsafeCast() +public inline val MediaDeviceKind.Companion.AUDIOINPUT: MediaDeviceKind get() = "audioinput".asDynamic().unsafeCast() + +public inline val MediaDeviceKind.Companion.AUDIOOUTPUT: MediaDeviceKind get() = "audiooutput".asDynamic().unsafeCast() + +public inline val MediaDeviceKind.Companion.VIDEOINPUT: MediaDeviceKind get() = "videoinput".asDynamic().unsafeCast() \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.parsing.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.parsing.kt index b19de70969e..8b131132dc3 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.parsing.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.parsing.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom.parsing import kotlin.js.* @@ -39,5 +38,4 @@ public external open class DOMParser { */ public external open class XMLSerializer { fun serializeToString(root: Node): String -} - +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.pointerevents.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.pointerevents.kt index 7ce3eee739d..fc0c65683d5 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.pointerevents.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.pointerevents.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom.pointerevents import kotlin.js.* @@ -61,9 +60,8 @@ public external interface PointerEventInit : MouseEventInit { } @kotlin.internal.InlineOnly -public inline fun PointerEventInit(pointerId: Int? = 0, width: Double? = 1.0, height: Double? = 1.0, pressure: Float? = 0f, tangentialPressure: Float? = 0f, tiltX: Int? = 0, tiltY: Int? = 0, twist: Int? = 0, pointerType: String? = "", isPrimary: Boolean? = false, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PointerEventInit { +public inline fun PointerEventInit(pointerId: Int? = 0, width: Double? = 1.0, height: Double? = 1.0, pressure: Float? = 0f, tangentialPressure: Float? = 0f, tiltX: Int? = 0, tiltY: Int? = 0, twist: Int? = 0, pointerType: String? = "", isPrimary: Boolean? = false, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PointerEventInit { val o = js("({})") - o["pointerId"] = pointerId o["width"] = width o["height"] = height @@ -81,6 +79,7 @@ public inline fun PointerEventInit(pointerId: Int? = 0, width: Double? = 1.0, he o["button"] = button o["buttons"] = buttons o["relatedTarget"] = relatedTarget + o["region"] = region o["ctrlKey"] = ctrlKey o["shiftKey"] = shiftKey o["altKey"] = altKey @@ -100,7 +99,6 @@ public inline fun PointerEventInit(pointerId: Int? = 0, width: Double? = 1.0, he o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -118,5 +116,11 @@ public external open class PointerEvent(type: String, eventInitDict: PointerEven open val twist: Int open val pointerType: String open val isPrimary: Boolean -} + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.svg.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.svg.kt index 27e34fb1634..e24726257ae 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.svg.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.svg.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom.svg import kotlin.js.* @@ -35,8 +34,29 @@ public external abstract class SVGElement : Element, ElementCSSInlineStyle, Glob open val ownerSVGElement: SVGSVGElement? open val viewportElement: SVGElement? open var tabIndex: Int - fun focus(): Unit - fun blur(): Unit + fun focus() + fun blur() + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external interface SVGBoundingBoxOptions { @@ -57,12 +77,10 @@ public external interface SVGBoundingBoxOptions { @kotlin.internal.InlineOnly public inline fun SVGBoundingBoxOptions(fill: Boolean? = true, stroke: Boolean? = false, markers: Boolean? = false, clipped: Boolean? = false): SVGBoundingBoxOptions { val o = js("({})") - o["fill"] = fill o["stroke"] = stroke o["markers"] = markers o["clipped"] = clipped - return o } @@ -74,6 +92,27 @@ public external abstract class SVGGraphicsElement : SVGElement, SVGTests { fun getBBox(options: SVGBoundingBoxOptions = definedExternally): DOMRect fun getCTM(): DOMMatrix? fun getScreenCTM(): DOMMatrix? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -85,6 +124,27 @@ public external abstract class SVGGeometryElement : SVGGraphicsElement { fun isPointInStroke(point: DOMPoint): Boolean fun getTotalLength(): Float fun getPointAtLength(distance: Float): DOMPoint + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -102,8 +162,8 @@ public external abstract class SVGLength { open var value: Float open var valueInSpecifiedUnits: Float open var valueAsString: String - fun newValueSpecifiedUnits(unitType: Short, valueInSpecifiedUnits: Float): Unit - fun convertToSpecifiedUnits(unitType: Short): Unit + fun newValueSpecifiedUnits(unitType: Short, valueInSpecifiedUnits: Float) + fun convertToSpecifiedUnits(unitType: Short) companion object { val SVG_LENGTHTYPE_UNKNOWN: Short @@ -128,8 +188,8 @@ public external abstract class SVGAngle { open var value: Float open var valueInSpecifiedUnits: Float open var valueAsString: String - fun newValueSpecifiedUnits(unitType: Short, valueInSpecifiedUnits: Float): Unit - fun convertToSpecifiedUnits(unitType: Short): Unit + fun newValueSpecifiedUnits(unitType: Short, valueInSpecifiedUnits: Float) + fun convertToSpecifiedUnits(unitType: Short) companion object { val SVG_ANGLETYPE_UNKNOWN: Short @@ -143,16 +203,20 @@ public external abstract class SVGAngle { public external abstract class SVGNameList { open val length: Int open val numberOfItems: Int - fun clear(): Unit + fun clear() fun initialize(newItem: dynamic): dynamic - fun getItem(index: Int): dynamic fun insertItemBefore(newItem: dynamic, index: Int): dynamic fun replaceItem(newItem: dynamic, index: Int): dynamic fun removeItem(index: Int): dynamic fun appendItem(newItem: dynamic): dynamic + fun getItem(index: Int): dynamic } -@kotlin.internal.InlineOnly inline operator fun SVGNameList.get(index: Int): dynamic = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun SVGNameList.set(index: Int, newItem: dynamic): Unit { asDynamic()[index] = newItem; } + +@kotlin.internal.InlineOnly +public inline operator fun SVGNameList.get(index: Int): dynamic = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun SVGNameList.set(index: Int, newItem: dynamic) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGNumberList](https://developer.mozilla.org/en/docs/Web/API/SVGNumberList) to Kotlin @@ -160,16 +224,20 @@ public external abstract class SVGNameList { public external abstract class SVGNumberList { open val length: Int open val numberOfItems: Int - fun clear(): Unit + fun clear() fun initialize(newItem: SVGNumber): SVGNumber - fun getItem(index: Int): SVGNumber fun insertItemBefore(newItem: SVGNumber, index: Int): SVGNumber fun replaceItem(newItem: SVGNumber, index: Int): SVGNumber fun removeItem(index: Int): SVGNumber fun appendItem(newItem: SVGNumber): SVGNumber + fun getItem(index: Int): SVGNumber } -@kotlin.internal.InlineOnly inline operator fun SVGNumberList.get(index: Int): SVGNumber? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun SVGNumberList.set(index: Int, newItem: SVGNumber): Unit { asDynamic()[index] = newItem; } + +@kotlin.internal.InlineOnly +public inline operator fun SVGNumberList.get(index: Int): SVGNumber? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun SVGNumberList.set(index: Int, newItem: SVGNumber) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGLengthList](https://developer.mozilla.org/en/docs/Web/API/SVGLengthList) to Kotlin @@ -177,16 +245,20 @@ public external abstract class SVGNumberList { public external abstract class SVGLengthList { open val length: Int open val numberOfItems: Int - fun clear(): Unit + fun clear() fun initialize(newItem: SVGLength): SVGLength - fun getItem(index: Int): SVGLength fun insertItemBefore(newItem: SVGLength, index: Int): SVGLength fun replaceItem(newItem: SVGLength, index: Int): SVGLength fun removeItem(index: Int): SVGLength fun appendItem(newItem: SVGLength): SVGLength + fun getItem(index: Int): SVGLength } -@kotlin.internal.InlineOnly inline operator fun SVGLengthList.get(index: Int): SVGLength? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun SVGLengthList.set(index: Int, newItem: SVGLength): Unit { asDynamic()[index] = newItem; } + +@kotlin.internal.InlineOnly +public inline operator fun SVGLengthList.get(index: Int): SVGLength? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun SVGLengthList.set(index: Int, newItem: SVGLength) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGAnimatedBoolean](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedBoolean) to Kotlin @@ -274,22 +346,26 @@ public external abstract class SVGAnimatedLengthList { public external abstract class SVGStringList { open val length: Int open val numberOfItems: Int - fun clear(): Unit + fun clear() fun initialize(newItem: String): String - fun getItem(index: Int): String fun insertItemBefore(newItem: String, index: Int): String fun replaceItem(newItem: String, index: Int): String fun removeItem(index: Int): String fun appendItem(newItem: String): String + fun getItem(index: Int): String } -@kotlin.internal.InlineOnly inline operator fun SVGStringList.get(index: Int): String? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun SVGStringList.set(index: Int, newItem: String): Unit { asDynamic()[index] = newItem; } + +@kotlin.internal.InlineOnly +public inline operator fun SVGStringList.get(index: Int): String? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun SVGStringList.set(index: Int, newItem: String) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGUnitTypes](https://developer.mozilla.org/en/docs/Web/API/SVGUnitTypes) to Kotlin */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface SVGUnitTypes { - companion object { val SVG_UNIT_TYPE_UNKNOWN: Short val SVG_UNIT_TYPE_USERSPACEONUSE: Short @@ -313,6 +389,7 @@ public external interface SVGFitToViewBox { /** * Exposes the JavaScript [SVGZoomAndPan](https://developer.mozilla.org/en/docs/Web/API/SVGZoomAndPan) to Kotlin */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface SVGZoomAndPan { var zoomAndPan: Short @@ -344,7 +421,7 @@ public external abstract class SVGSVGElement : SVGGraphicsElement, SVGFitToViewB fun getEnclosureList(rect: DOMRectReadOnly, referenceElement: SVGElement?): NodeList fun checkIntersection(element: SVGElement, rect: DOMRectReadOnly): Boolean fun checkEnclosure(element: SVGElement, rect: DOMRectReadOnly): Boolean - fun deselectAll(): Unit + fun deselectAll() fun createSVGNumber(): SVGNumber fun createSVGLength(): SVGLength fun createSVGAngle(): SVGAngle @@ -355,14 +432,32 @@ public external abstract class SVGSVGElement : SVGGraphicsElement, SVGFitToViewB fun createSVGTransformFromMatrix(matrix: DOMMatrixReadOnly): SVGTransform fun getElementById(elementId: String): Element fun suspendRedraw(maxWaitMilliseconds: Int): Int - fun unsuspendRedraw(suspendHandleID: Int): Unit - fun unsuspendRedrawAll(): Unit - fun forceRedraw(): Unit + fun unsuspendRedraw(suspendHandleID: Int) + fun unsuspendRedrawAll() + fun forceRedraw() companion object { val SVG_ZOOMANDPAN_UNKNOWN: Short val SVG_ZOOMANDPAN_DISABLE: Short val SVG_ZOOMANDPAN_MAGNIFY: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } @@ -370,39 +465,179 @@ public external abstract class SVGSVGElement : SVGGraphicsElement, SVGFitToViewB * Exposes the JavaScript [SVGGElement](https://developer.mozilla.org/en/docs/Web/API/SVGGElement) to Kotlin */ public external abstract class SVGGElement : SVGGraphicsElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external abstract class SVGUnknownElement : SVGGraphicsElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGDefsElement](https://developer.mozilla.org/en/docs/Web/API/SVGDefsElement) to Kotlin */ public external abstract class SVGDefsElement : SVGGraphicsElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGDescElement](https://developer.mozilla.org/en/docs/Web/API/SVGDescElement) to Kotlin */ public external abstract class SVGDescElement : SVGElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGMetadataElement](https://developer.mozilla.org/en/docs/Web/API/SVGMetadataElement) to Kotlin */ public external abstract class SVGMetadataElement : SVGElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGTitleElement](https://developer.mozilla.org/en/docs/Web/API/SVGTitleElement) to Kotlin */ public external abstract class SVGTitleElement : SVGElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGSymbolElement](https://developer.mozilla.org/en/docs/Web/API/SVGSymbolElement) to Kotlin */ public external abstract class SVGSymbolElement : SVGGraphicsElement, SVGFitToViewBox { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -415,19 +650,57 @@ public external abstract class SVGUseElement : SVGGraphicsElement, SVGURIReferen open val height: SVGAnimatedLength open val instanceRoot: SVGElement? open val animatedInstanceRoot: SVGElement? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external open class SVGUseElementShadowRoot : ShadowRoot { - override fun getElementById(elementId: String): Element? - override fun prepend(vararg nodes: dynamic): Unit - override fun append(vararg nodes: dynamic): Unit - override fun querySelector(selectors: String): Element? - override fun querySelectorAll(selectors: String): NodeList + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external interface SVGElementInstance { val correspondingElement: SVGElement? + get() = definedExternally val correspondingUseElement: SVGUseElement? + get() = definedExternally } public external open class ShadowAnimation(source: dynamic, newTarget: dynamic) { @@ -438,6 +711,26 @@ public external open class ShadowAnimation(source: dynamic, newTarget: dynamic) * Exposes the JavaScript [SVGSwitchElement](https://developer.mozilla.org/en/docs/Web/API/SVGSwitchElement) to Kotlin */ public external abstract class SVGSwitchElement : SVGGraphicsElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external interface GetSVGDocument { @@ -451,6 +744,27 @@ public external abstract class SVGStyleElement : SVGElement, LinkStyle { open var type: String open var media: String open var title: String + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -460,12 +774,12 @@ public external abstract class SVGTransform { open val type: Short open val matrix: DOMMatrix open val angle: Float - fun setMatrix(matrix: DOMMatrixReadOnly): Unit - fun setTranslate(tx: Float, ty: Float): Unit - fun setScale(sx: Float, sy: Float): Unit - fun setRotate(angle: Float, cx: Float, cy: Float): Unit - fun setSkewX(angle: Float): Unit - fun setSkewY(angle: Float): Unit + fun setMatrix(matrix: DOMMatrixReadOnly) + fun setTranslate(tx: Float, ty: Float) + fun setScale(sx: Float, sy: Float) + fun setRotate(angle: Float, cx: Float, cy: Float) + fun setSkewX(angle: Float) + fun setSkewY(angle: Float) companion object { val SVG_TRANSFORM_UNKNOWN: Short @@ -484,18 +798,22 @@ public external abstract class SVGTransform { public external abstract class SVGTransformList { open val length: Int open val numberOfItems: Int - fun clear(): Unit + fun clear() fun initialize(newItem: SVGTransform): SVGTransform - fun getItem(index: Int): SVGTransform fun insertItemBefore(newItem: SVGTransform, index: Int): SVGTransform fun replaceItem(newItem: SVGTransform, index: Int): SVGTransform fun removeItem(index: Int): SVGTransform fun appendItem(newItem: SVGTransform): SVGTransform fun createSVGTransformFromMatrix(matrix: DOMMatrixReadOnly): SVGTransform fun consolidate(): SVGTransform? + fun getItem(index: Int): SVGTransform } -@kotlin.internal.InlineOnly inline operator fun SVGTransformList.get(index: Int): SVGTransform? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun SVGTransformList.set(index: Int, newItem: SVGTransform): Unit { asDynamic()[index] = newItem; } + +@kotlin.internal.InlineOnly +public inline operator fun SVGTransformList.get(index: Int): SVGTransform? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun SVGTransformList.set(index: Int, newItem: SVGTransform) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGAnimatedTransformList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedTransformList) to Kotlin @@ -542,6 +860,26 @@ public external abstract class SVGAnimatedPreserveAspectRatio { * Exposes the JavaScript [SVGPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGPathElement) to Kotlin */ public external abstract class SVGPathElement : SVGGeometryElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -554,6 +892,27 @@ public external abstract class SVGRectElement : SVGGeometryElement { open val height: SVGAnimatedLength open val rx: SVGAnimatedLength open val ry: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -563,6 +922,27 @@ public external abstract class SVGCircleElement : SVGGeometryElement { open val cx: SVGAnimatedLength open val cy: SVGAnimatedLength open val r: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -573,6 +953,27 @@ public external abstract class SVGEllipseElement : SVGGeometryElement { open val cy: SVGAnimatedLength open val rx: SVGAnimatedLength open val ry: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -583,12 +984,53 @@ public external abstract class SVGLineElement : SVGGeometryElement { open val y1: SVGAnimatedLength open val x2: SVGAnimatedLength open val y2: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGMeshElement](https://developer.mozilla.org/en/docs/Web/API/SVGMeshElement) to Kotlin */ public external abstract class SVGMeshElement : SVGGeometryElement, SVGURIReference { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -602,27 +1044,71 @@ public external interface SVGAnimatedPoints { public external abstract class SVGPointList { open val length: Int open val numberOfItems: Int - fun clear(): Unit + fun clear() fun initialize(newItem: DOMPoint): DOMPoint - fun getItem(index: Int): DOMPoint fun insertItemBefore(newItem: DOMPoint, index: Int): DOMPoint fun replaceItem(newItem: DOMPoint, index: Int): DOMPoint fun removeItem(index: Int): DOMPoint fun appendItem(newItem: DOMPoint): DOMPoint + fun getItem(index: Int): DOMPoint } -@kotlin.internal.InlineOnly inline operator fun SVGPointList.get(index: Int): DOMPoint? = asDynamic()[index] -@kotlin.internal.InlineOnly inline operator fun SVGPointList.set(index: Int, newItem: DOMPoint): Unit { asDynamic()[index] = newItem; } + +@kotlin.internal.InlineOnly +public inline operator fun SVGPointList.get(index: Int): DOMPoint? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun SVGPointList.set(index: Int, newItem: DOMPoint) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGPolylineElement](https://developer.mozilla.org/en/docs/Web/API/SVGPolylineElement) to Kotlin */ public external abstract class SVGPolylineElement : SVGGeometryElement, SVGAnimatedPoints { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGPolygonElement](https://developer.mozilla.org/en/docs/Web/API/SVGPolygonElement) to Kotlin */ public external abstract class SVGPolygonElement : SVGGeometryElement, SVGAnimatedPoints { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -639,12 +1125,30 @@ public external abstract class SVGTextContentElement : SVGGraphicsElement { fun getExtentOfChar(charnum: Int): DOMRect fun getRotationOfChar(charnum: Int): Float fun getCharNumAtPosition(point: DOMPoint): Int - fun selectSubString(charnum: Int, nchars: Int): Unit + fun selectSubString(charnum: Int, nchars: Int) companion object { val LENGTHADJUST_UNKNOWN: Short val LENGTHADJUST_SPACING: Short val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } @@ -657,18 +1161,88 @@ public external abstract class SVGTextPositioningElement : SVGTextContentElement open val dx: SVGAnimatedLengthList open val dy: SVGAnimatedLengthList open val rotate: SVGAnimatedNumberList + + companion object { + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGTextElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextElement) to Kotlin */ public external abstract class SVGTextElement : SVGTextPositioningElement { + companion object { + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGTSpanElement](https://developer.mozilla.org/en/docs/Web/API/SVGTSpanElement) to Kotlin */ public external abstract class SVGTSpanElement : SVGTextPositioningElement { + companion object { + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -686,6 +1260,27 @@ public external abstract class SVGTextPathElement : SVGTextContentElement, SVGUR val TEXTPATH_SPACINGTYPE_UNKNOWN: Short val TEXTPATH_SPACINGTYPE_AUTO: Short val TEXTPATH_SPACINGTYPE_EXACT: Short + val LENGTHADJUST_UNKNOWN: Short + val LENGTHADJUST_SPACING: Short + val LENGTHADJUST_SPACINGANDGLYPHS: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } @@ -699,6 +1294,27 @@ public external abstract class SVGImageElement : SVGGraphicsElement, SVGURIRefer open val height: SVGAnimatedLength open val preserveAspectRatio: SVGAnimatedPreserveAspectRatio open var crossOrigin: String? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -709,6 +1325,27 @@ public external abstract class SVGForeignObjectElement : SVGGraphicsElement { open val y: SVGAnimatedLength open val width: SVGAnimatedLength open val height: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox { @@ -720,8 +1357,8 @@ public external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox { open val orientType: SVGAnimatedEnumeration open val orientAngle: SVGAnimatedAngle open var orient: String - fun setOrientToAuto(): Unit - fun setOrientToAngle(angle: SVGAngle): Unit + fun setOrientToAuto() + fun setOrientToAngle(angle: SVGAngle) companion object { val SVG_MARKERUNITS_UNKNOWN: Short @@ -730,6 +1367,24 @@ public external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox { val SVG_MARKER_ORIENT_UNKNOWN: Short val SVG_MARKER_ORIENT_AUTO: Short val SVG_MARKER_ORIENT_ANGLE: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } @@ -737,6 +1392,26 @@ public external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox { * Exposes the JavaScript [SVGSolidcolorElement](https://developer.mozilla.org/en/docs/Web/API/SVGSolidcolorElement) to Kotlin */ public external abstract class SVGSolidcolorElement : SVGElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -755,6 +1430,24 @@ public external abstract class SVGGradientElement : SVGElement, SVGURIReference, val SVG_UNIT_TYPE_UNKNOWN: Short val SVG_UNIT_TYPE_USERSPACEONUSE: Short val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } @@ -766,6 +1459,34 @@ public external abstract class SVGLinearGradientElement : SVGGradientElement { open val y1: SVGAnimatedLength open val x2: SVGAnimatedLength open val y2: SVGAnimatedLength + + companion object { + val SVG_SPREADMETHOD_UNKNOWN: Short + val SVG_SPREADMETHOD_PAD: Short + val SVG_SPREADMETHOD_REFLECT: Short + val SVG_SPREADMETHOD_REPEAT: Short + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -778,15 +1499,110 @@ public external abstract class SVGRadialGradientElement : SVGGradientElement { open val fx: SVGAnimatedLength open val fy: SVGAnimatedLength open val fr: SVGAnimatedLength + + companion object { + val SVG_SPREADMETHOD_UNKNOWN: Short + val SVG_SPREADMETHOD_PAD: Short + val SVG_SPREADMETHOD_REFLECT: Short + val SVG_SPREADMETHOD_REPEAT: Short + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external abstract class SVGMeshGradientElement : SVGGradientElement { + companion object { + val SVG_SPREADMETHOD_UNKNOWN: Short + val SVG_SPREADMETHOD_PAD: Short + val SVG_SPREADMETHOD_REFLECT: Short + val SVG_SPREADMETHOD_REPEAT: Short + val SVG_UNIT_TYPE_UNKNOWN: Short + val SVG_UNIT_TYPE_USERSPACEONUSE: Short + val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external abstract class SVGMeshrowElement : SVGElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external abstract class SVGMeshpatchElement : SVGElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -794,6 +1610,27 @@ public external abstract class SVGMeshpatchElement : SVGElement { */ public external abstract class SVGStopElement : SVGElement { open val offset: SVGAnimatedNumber + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -812,13 +1649,71 @@ public external abstract class SVGPatternElement : SVGElement, SVGFitToViewBox, val SVG_UNIT_TYPE_UNKNOWN: Short val SVG_UNIT_TYPE_USERSPACEONUSE: Short val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } } public external abstract class SVGHatchElement : SVGElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } public external abstract class SVGHatchpathElement : SVGElement { + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -827,6 +1722,27 @@ public external abstract class SVGHatchpathElement : SVGElement { public external abstract class SVGCursorElement : SVGElement, SVGURIReference { open val x: SVGAnimatedLength open val y: SVGAnimatedLength + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -835,6 +1751,27 @@ public external abstract class SVGCursorElement : SVGElement, SVGURIReference { public external abstract class SVGScriptElement : SVGElement, SVGURIReference, HTMLOrSVGScriptElement { open var type: String open var crossOrigin: String? + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** @@ -847,17 +1784,54 @@ public external abstract class SVGAElement : SVGGraphicsElement, SVGURIReference open val relList: SVGAnimatedString open val hreflang: SVGAnimatedString open val type: SVGAnimatedString + + companion object { + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short + } } /** * Exposes the JavaScript [SVGViewElement](https://developer.mozilla.org/en/docs/Web/API/SVGViewElement) to Kotlin */ public external abstract class SVGViewElement : SVGElement, SVGFitToViewBox, SVGZoomAndPan { - companion object { val SVG_ZOOMANDPAN_UNKNOWN: Short val SVG_ZOOMANDPAN_DISABLE: Short val SVG_ZOOMANDPAN_MAGNIFY: Short + val ELEMENT_NODE: Short + val ATTRIBUTE_NODE: Short + val TEXT_NODE: Short + val CDATA_SECTION_NODE: Short + val ENTITY_REFERENCE_NODE: Short + val ENTITY_NODE: Short + val PROCESSING_INSTRUCTION_NODE: Short + val COMMENT_NODE: Short + val DOCUMENT_NODE: Short + val DOCUMENT_TYPE_NODE: Short + val DOCUMENT_FRAGMENT_NODE: Short + val NOTATION_NODE: Short + val DOCUMENT_POSITION_DISCONNECTED: Short + val DOCUMENT_POSITION_PRECEDING: Short + val DOCUMENT_POSITION_FOLLOWING: Short + val DOCUMENT_POSITION_CONTAINS: Short + val DOCUMENT_POSITION_CONTAINED_BY: Short + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short } -} - +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.url.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.url.kt index 887d24610ac..4d843f6ec1a 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.dom.url.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.dom.url.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.dom.url import kotlin.js.* @@ -45,11 +44,11 @@ public external open class URL(url: String, base: String = definedExternally) { var hash: String companion object { - fun createObjectURL(blob: Blob): String - fun createFor(blob: Blob): String - fun revokeObjectURL(url: String): Unit fun domainToASCII(domain: String): String fun domainToUnicode(domain: String): String + fun createObjectURL(blob: Blob): String + fun createFor(blob: Blob): String + fun revokeObjectURL(url: String) } } @@ -57,11 +56,10 @@ public external open class URL(url: String, base: String = definedExternally) { * Exposes the JavaScript [URLSearchParams](https://developer.mozilla.org/en/docs/Web/API/URLSearchParams) to Kotlin */ public external open class URLSearchParams(init: dynamic = definedExternally) { - fun append(name: String, value: String): Unit - fun delete(name: String): Unit + fun append(name: String, value: String) + fun delete(name: String) fun get(name: String): String? fun getAll(name: String): Array fun has(name: String): Boolean - fun set(name: String, value: String): Unit -} - + fun set(name: String, value: String) +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.fetch.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.fetch.kt index e926f09b45e..d52f07b313f 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.fetch.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.fetch.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.fetch import kotlin.js.* @@ -31,11 +30,11 @@ import org.w3c.xhr.* * Exposes the JavaScript [Headers](https://developer.mozilla.org/en/docs/Web/API/Headers) to Kotlin */ public external open class Headers(init: dynamic = definedExternally) { - fun append(name: String, value: String): Unit - fun delete(name: String): Unit + fun append(name: String, value: String) + fun delete(name: String) fun get(name: String): String? fun has(name: String): Boolean - fun set(name: String, value: String): Unit + fun set(name: String, value: String) } /** @@ -118,7 +117,6 @@ public external interface RequestInit { @kotlin.internal.InlineOnly public inline fun RequestInit(method: String? = undefined, headers: dynamic = undefined, body: dynamic = undefined, referrer: String? = undefined, referrerPolicy: dynamic = undefined, mode: RequestMode? = undefined, credentials: RequestCredentials? = undefined, cache: RequestCache? = undefined, redirect: RequestRedirect? = undefined, integrity: String? = undefined, keepalive: Boolean? = undefined, window: Any? = undefined): RequestInit { val o = js("({})") - o["method"] = method o["headers"] = headers o["body"] = body @@ -131,7 +129,6 @@ public inline fun RequestInit(method: String? = undefined, headers: dynamic = un o["integrity"] = integrity o["keepalive"] = keepalive o["window"] = window - return o } @@ -177,91 +174,140 @@ public external interface ResponseInit { @kotlin.internal.InlineOnly public inline fun ResponseInit(status: Short? = 200, statusText: String? = "OK", headers: dynamic = undefined): ResponseInit { val o = js("({})") - o["status"] = status o["statusText"] = statusText o["headers"] = headers - return o } /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface RequestType { companion object } + public inline val RequestType.Companion.EMPTY: RequestType get() = "".asDynamic().unsafeCast() + public inline val RequestType.Companion.AUDIO: RequestType get() = "audio".asDynamic().unsafeCast() + public inline val RequestType.Companion.FONT: RequestType get() = "font".asDynamic().unsafeCast() + public inline val RequestType.Companion.IMAGE: RequestType get() = "image".asDynamic().unsafeCast() + public inline val RequestType.Companion.SCRIPT: RequestType get() = "script".asDynamic().unsafeCast() + public inline val RequestType.Companion.STYLE: RequestType get() = "style".asDynamic().unsafeCast() + public inline val RequestType.Companion.TRACK: RequestType get() = "track".asDynamic().unsafeCast() + public inline val RequestType.Companion.VIDEO: RequestType get() = "video".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface RequestDestination { companion object } + public inline val RequestDestination.Companion.EMPTY: RequestDestination get() = "".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.DOCUMENT: RequestDestination get() = "document".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.EMBED: RequestDestination get() = "embed".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.FONT: RequestDestination get() = "font".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.IMAGE: RequestDestination get() = "image".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.MANIFEST: RequestDestination get() = "manifest".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.MEDIA: RequestDestination get() = "media".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.OBJECT: RequestDestination get() = "object".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.REPORT: RequestDestination get() = "report".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.SCRIPT: RequestDestination get() = "script".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.SERVICEWORKER: RequestDestination get() = "serviceworker".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.SHAREDWORKER: RequestDestination get() = "sharedworker".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.STYLE: RequestDestination get() = "style".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.WORKER: RequestDestination get() = "worker".asDynamic().unsafeCast() + public inline val RequestDestination.Companion.XSLT: RequestDestination get() = "xslt".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface RequestMode { companion object } + public inline val RequestMode.Companion.NAVIGATE: RequestMode get() = "navigate".asDynamic().unsafeCast() + public inline val RequestMode.Companion.SAME_ORIGIN: RequestMode get() = "same-origin".asDynamic().unsafeCast() + public inline val RequestMode.Companion.NO_CORS: RequestMode get() = "no-cors".asDynamic().unsafeCast() + public inline val RequestMode.Companion.CORS: RequestMode get() = "cors".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface RequestCredentials { companion object } + public inline val RequestCredentials.Companion.OMIT: RequestCredentials get() = "omit".asDynamic().unsafeCast() + public inline val RequestCredentials.Companion.SAME_ORIGIN: RequestCredentials get() = "same-origin".asDynamic().unsafeCast() + public inline val RequestCredentials.Companion.INCLUDE: RequestCredentials get() = "include".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface RequestCache { companion object } + public inline val RequestCache.Companion.DEFAULT: RequestCache get() = "default".asDynamic().unsafeCast() + public inline val RequestCache.Companion.NO_STORE: RequestCache get() = "no-store".asDynamic().unsafeCast() + public inline val RequestCache.Companion.RELOAD: RequestCache get() = "reload".asDynamic().unsafeCast() + public inline val RequestCache.Companion.NO_CACHE: RequestCache get() = "no-cache".asDynamic().unsafeCast() + public inline val RequestCache.Companion.FORCE_CACHE: RequestCache get() = "force-cache".asDynamic().unsafeCast() + public inline val RequestCache.Companion.ONLY_IF_CACHED: RequestCache get() = "only-if-cached".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface RequestRedirect { companion object } + public inline val RequestRedirect.Companion.FOLLOW: RequestRedirect get() = "follow".asDynamic().unsafeCast() + public inline val RequestRedirect.Companion.ERROR: RequestRedirect get() = "error".asDynamic().unsafeCast() + public inline val RequestRedirect.Companion.MANUAL: RequestRedirect get() = "manual".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ResponseType { companion object } -public inline val ResponseType.Companion.BASIC: ResponseType get() = "basic".asDynamic().unsafeCast() -public inline val ResponseType.Companion.CORS: ResponseType get() = "cors".asDynamic().unsafeCast() -public inline val ResponseType.Companion.DEFAULT: ResponseType get() = "default".asDynamic().unsafeCast() -public inline val ResponseType.Companion.ERROR: ResponseType get() = "error".asDynamic().unsafeCast() -public inline val ResponseType.Companion.OPAQUE: ResponseType get() = "opaque".asDynamic().unsafeCast() -public inline val ResponseType.Companion.OPAQUEREDIRECT: ResponseType get() = "opaqueredirect".asDynamic().unsafeCast() +public inline val ResponseType.Companion.BASIC: ResponseType get() = "basic".asDynamic().unsafeCast() + +public inline val ResponseType.Companion.CORS: ResponseType get() = "cors".asDynamic().unsafeCast() + +public inline val ResponseType.Companion.DEFAULT: ResponseType get() = "default".asDynamic().unsafeCast() + +public inline val ResponseType.Companion.ERROR: ResponseType get() = "error".asDynamic().unsafeCast() + +public inline val ResponseType.Companion.OPAQUE: ResponseType get() = "opaque".asDynamic().unsafeCast() + +public inline val ResponseType.Companion.OPAQUEREDIRECT: ResponseType get() = "opaqueredirect".asDynamic().unsafeCast() \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.files.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.files.kt index 9d7eac13608..b5f15a66231 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.files.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.files.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.files import kotlin.js.* @@ -30,12 +29,12 @@ import org.w3c.xhr.* /** * Exposes the JavaScript [Blob](https://developer.mozilla.org/en/docs/Web/API/Blob) to Kotlin */ -public external open class Blob(blobParts: Array = definedExternally, options: BlobPropertyBag = definedExternally) { - open val size: Int +public external open class Blob(blobParts: Array = definedExternally, options: BlobPropertyBag = definedExternally) : ImageBitmapSource { + open val size: Number open val type: String open val isClosed: Boolean fun slice(start: Int = definedExternally, end: Int = definedExternally, contentType: String = definedExternally): Blob - fun close(): Unit + fun close() } public external interface BlobPropertyBag { @@ -47,9 +46,7 @@ public external interface BlobPropertyBag { @kotlin.internal.InlineOnly public inline fun BlobPropertyBag(type: String? = ""): BlobPropertyBag { val o = js("({})") - o["type"] = type - return o } @@ -70,10 +67,8 @@ public external interface FilePropertyBag : BlobPropertyBag { @kotlin.internal.InlineOnly public inline fun FilePropertyBag(lastModified: Int? = undefined, type: String? = ""): FilePropertyBag { val o = js("({})") - o["lastModified"] = lastModified o["type"] = type - return o } @@ -81,10 +76,11 @@ public inline fun FilePropertyBag(lastModified: Int? = undefined, type: String? * Exposes the JavaScript [FileList](https://developer.mozilla.org/en/docs/Web/API/FileList) to Kotlin */ public external abstract class FileList : ItemArrayLike { - override val length: Int override fun item(index: Int): File? } -@kotlin.internal.InlineOnly inline operator fun FileList.get(index: Int): File? = asDynamic()[index] + +@kotlin.internal.InlineOnly +public inline operator fun FileList.get(index: Int): File? = asDynamic()[index] /** * Exposes the JavaScript [FileReader](https://developer.mozilla.org/en/docs/Web/API/FileReader) to Kotlin @@ -99,11 +95,11 @@ public external open class FileReader : EventTarget { var onabort: ((Event) -> dynamic)? var onerror: ((Event) -> dynamic)? var onloadend: ((Event) -> dynamic)? - fun readAsArrayBuffer(blob: Blob): Unit - fun readAsBinaryString(blob: Blob): Unit - fun readAsText(blob: Blob, label: String = definedExternally): Unit - fun readAsDataURL(blob: Blob): Unit - fun abort(): Unit + fun readAsArrayBuffer(blob: Blob) + fun readAsBinaryString(blob: Blob) + fun readAsText(blob: Blob, label: String = definedExternally) + fun readAsDataURL(blob: Blob) + fun abort() companion object { val EMPTY: Short @@ -120,5 +116,4 @@ public external open class FileReaderSync { fun readAsBinaryString(blob: Blob): String fun readAsText(blob: Blob, label: String = definedExternally): String fun readAsDataURL(blob: Blob): String -} - +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.notifications.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.notifications.kt index c025b5d5e79..3f1d4a3eed5 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.notifications.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.notifications.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.notifications import kotlin.js.* @@ -51,11 +50,11 @@ public external open class Notification(title: String, options: NotificationOpti open val sticky: Boolean open val data: Any? open val actions: Array - fun close(): Unit + fun close() companion object { - var permission: NotificationPermission - var maxActions: Int + val permission: NotificationPermission + val maxActions: Int fun requestPermission(deprecatedCallback: (NotificationPermission) -> Unit = definedExternally): Promise } } @@ -117,7 +116,6 @@ public external interface NotificationOptions { @kotlin.internal.InlineOnly public inline fun NotificationOptions(dir: NotificationDirection? = NotificationDirection.AUTO, lang: String? = "", body: String? = "", tag: String? = "", image: String? = undefined, icon: String? = undefined, badge: String? = undefined, sound: String? = undefined, vibrate: dynamic = undefined, timestamp: Number? = undefined, renotify: Boolean? = false, silent: Boolean? = false, noscreen: Boolean? = false, requireInteraction: Boolean? = false, sticky: Boolean? = false, data: Any? = null, actions: Array? = arrayOf()): NotificationOptions { val o = js("({})") - o["dir"] = dir o["lang"] = lang o["body"] = body @@ -135,7 +133,6 @@ public inline fun NotificationOptions(dir: NotificationDirection? = Notification o["sticky"] = sticky o["data"] = data o["actions"] = actions - return o } @@ -154,11 +151,9 @@ public external interface NotificationAction { @kotlin.internal.InlineOnly public inline fun NotificationAction(action: String?, title: String?, icon: String? = undefined): NotificationAction { val o = js("({})") - o["action"] = action o["title"] = title o["icon"] = icon - return o } @@ -171,9 +166,7 @@ public external interface GetNotificationOptions { @kotlin.internal.InlineOnly public inline fun GetNotificationOptions(tag: String? = ""): GetNotificationOptions { val o = js("({})") - o["tag"] = tag - return o } @@ -183,6 +176,13 @@ public inline fun GetNotificationOptions(tag: String? = ""): GetNotificationOpti public external open class NotificationEvent(type: String, eventInitDict: NotificationEventInit) : ExtendableEvent { open val notification: Notification open val action: String + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface NotificationEventInit : ExtendableEventInit { @@ -197,29 +197,34 @@ public external interface NotificationEventInit : ExtendableEventInit { @kotlin.internal.InlineOnly public inline fun NotificationEventInit(notification: Notification?, action: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): NotificationEventInit { val o = js("({})") - o["notification"] = notification o["action"] = action o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface NotificationPermission { companion object } + public inline val NotificationPermission.Companion.DEFAULT: NotificationPermission get() = "default".asDynamic().unsafeCast() + public inline val NotificationPermission.Companion.DENIED: NotificationPermission get() = "denied".asDynamic().unsafeCast() + public inline val NotificationPermission.Companion.GRANTED: NotificationPermission get() = "granted".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface NotificationDirection { companion object } -public inline val NotificationDirection.Companion.AUTO: NotificationDirection get() = "auto".asDynamic().unsafeCast() -public inline val NotificationDirection.Companion.LTR: NotificationDirection get() = "ltr".asDynamic().unsafeCast() -public inline val NotificationDirection.Companion.RTL: NotificationDirection get() = "rtl".asDynamic().unsafeCast() +public inline val NotificationDirection.Companion.AUTO: NotificationDirection get() = "auto".asDynamic().unsafeCast() + +public inline val NotificationDirection.Companion.LTR: NotificationDirection get() = "ltr".asDynamic().unsafeCast() + +public inline val NotificationDirection.Companion.RTL: NotificationDirection get() = "rtl".asDynamic().unsafeCast() \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.performance.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.performance.kt index 1862b583634..7198b8d7399 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.performance.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.performance.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.performance import kotlin.js.* @@ -44,27 +43,27 @@ public external interface GlobalPerformance { * Exposes the JavaScript [PerformanceTiming](https://developer.mozilla.org/en/docs/Web/API/PerformanceTiming) to Kotlin */ public external abstract class PerformanceTiming { - open val navigationStart: Int - open val unloadEventStart: Int - open val unloadEventEnd: Int - open val redirectStart: Int - open val redirectEnd: Int - open val fetchStart: Int - open val domainLookupStart: Int - open val domainLookupEnd: Int - open val connectStart: Int - open val connectEnd: Int - open val secureConnectionStart: Int - open val requestStart: Int - open val responseStart: Int - open val responseEnd: Int - open val domLoading: Int - open val domInteractive: Int - open val domContentLoadedEventStart: Int - open val domContentLoadedEventEnd: Int - open val domComplete: Int - open val loadEventStart: Int - open val loadEventEnd: Int + open val navigationStart: Number + open val unloadEventStart: Number + open val unloadEventEnd: Number + open val redirectStart: Number + open val redirectEnd: Number + open val fetchStart: Number + open val domainLookupStart: Number + open val domainLookupEnd: Number + open val connectStart: Number + open val connectEnd: Number + open val secureConnectionStart: Number + open val requestStart: Number + open val responseStart: Number + open val responseEnd: Number + open val domLoading: Number + open val domInteractive: Number + open val domContentLoadedEventStart: Number + open val domContentLoadedEventEnd: Number + open val domComplete: Number + open val loadEventStart: Number + open val loadEventEnd: Number } /** @@ -80,5 +79,4 @@ public external abstract class PerformanceNavigation { val TYPE_BACK_FORWARD: Short val TYPE_RESERVED: Short } -} - +} \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.workers.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.workers.kt index 5f2686d4e64..0744ca92fe6 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.workers.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.workers.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.workers import kotlin.js.* @@ -27,6 +26,16 @@ import org.w3c.notifications.* import org.w3c.performance.* import org.w3c.xhr.* +/** + * Exposes the JavaScript [ServiceWorker](https://developer.mozilla.org/en/docs/Web/API/ServiceWorker) to Kotlin + */ +public external abstract class ServiceWorker : EventTarget, AbstractWorker, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker { + open val scriptURL: String + open val state: ServiceWorkerState + open var onstatechange: ((Event) -> dynamic)? + fun postMessage(message: Any?, transfer: Array = definedExternally) +} + /** * Exposes the JavaScript [ServiceWorkerRegistration](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerRegistration) to Kotlin */ @@ -39,36 +48,9 @@ public external abstract class ServiceWorkerRegistration : EventTarget { open val APISpace: dynamic fun update(): Promise fun unregister(): Promise - fun methodName(): Promise fun showNotification(title: String, options: NotificationOptions = definedExternally): Promise - fun getNotifications(filter: GetNotificationOptions = definedExternally): Promise -} - -/** - * Exposes the JavaScript [ServiceWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerGlobalScope) to Kotlin - */ -public external abstract class ServiceWorkerGlobalScope : WorkerGlobalScope { - open val clients: Clients - open val registration: ServiceWorkerRegistration - open var oninstall: ((Event) -> dynamic)? - open var onactivate: ((Event) -> dynamic)? - open var onfetch: ((FetchEvent) -> dynamic)? - open var onforeignfetch: ((Event) -> dynamic)? - open var onmessage: ((MessageEvent) -> dynamic)? - open var onfunctionalevent: ((Event) -> dynamic)? - open var onnotificationclick: ((NotificationEvent) -> dynamic)? - open var onnotificationclose: ((NotificationEvent) -> dynamic)? - fun skipWaiting(): Promise -} - -/** - * Exposes the JavaScript [ServiceWorker](https://developer.mozilla.org/en/docs/Web/API/ServiceWorker) to Kotlin - */ -public external abstract class ServiceWorker : EventTarget, AbstractWorker, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker { - open val scriptURL: String - open val state: ServiceWorkerState - open var onstatechange: ((Event) -> dynamic)? - fun postMessage(message: Any?, transfer: Array = definedExternally): Unit + fun getNotifications(filter: GetNotificationOptions = definedExternally): Promise> + fun methodName(): Promise } /** @@ -81,8 +63,8 @@ public external abstract class ServiceWorkerContainer : EventTarget { open var onmessage: ((MessageEvent) -> dynamic)? fun register(scriptURL: String, options: RegistrationOptions = definedExternally): Promise fun getRegistration(clientURL: String = definedExternally): Promise - fun getRegistrations(): Promise - fun startMessages(): Unit + fun getRegistrations(): Promise> + fun startMessages() } public external interface RegistrationOptions { @@ -97,10 +79,8 @@ public external interface RegistrationOptions { @kotlin.internal.InlineOnly public inline fun RegistrationOptions(scope: String? = undefined, type: WorkerType? = WorkerType.CLASSIC): RegistrationOptions { val o = js("({})") - o["scope"] = scope o["type"] = type - return o } @@ -113,6 +93,13 @@ public external open class ServiceWorkerMessageEvent(type: String, eventInitDict open val lastEventId: String open val source: UnionMessagePortOrServiceWorker? open val ports: Array? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface ServiceWorkerMessageEventInit : EventInit { @@ -136,7 +123,6 @@ public external interface ServiceWorkerMessageEventInit : EventInit { @kotlin.internal.InlineOnly public inline fun ServiceWorkerMessageEventInit(data: Any? = undefined, origin: String? = undefined, lastEventId: String? = undefined, source: UnionMessagePortOrServiceWorker? = undefined, ports: Array? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ServiceWorkerMessageEventInit { val o = js("({})") - o["data"] = data o["origin"] = origin o["lastEventId"] = lastEventId @@ -145,10 +131,26 @@ public inline fun ServiceWorkerMessageEventInit(data: Any? = undefined, origin: o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } +/** + * Exposes the JavaScript [ServiceWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerGlobalScope) to Kotlin + */ +public external abstract class ServiceWorkerGlobalScope : WorkerGlobalScope { + open val clients: Clients + open val registration: ServiceWorkerRegistration + open var oninstall: ((Event) -> dynamic)? + open var onactivate: ((Event) -> dynamic)? + open var onfetch: ((FetchEvent) -> dynamic)? + open var onforeignfetch: ((Event) -> dynamic)? + open var onmessage: ((MessageEvent) -> dynamic)? + open var onnotificationclick: ((NotificationEvent) -> dynamic)? + open var onnotificationclose: ((NotificationEvent) -> dynamic)? + open var onfunctionalevent: ((Event) -> dynamic)? + fun skipWaiting(): Promise +} + /** * Exposes the JavaScript [Client](https://developer.mozilla.org/en/docs/Web/API/Client) to Kotlin */ @@ -156,7 +158,7 @@ public external abstract class Client : UnionClientOrMessagePortOrServiceWorker open val url: String open val frameType: FrameType open val id: String - fun postMessage(message: Any?, transfer: Array = definedExternally): Unit + fun postMessage(message: Any?, transfer: Array = definedExternally) } /** @@ -174,7 +176,7 @@ public external abstract class WindowClient : Client { */ public external abstract class Clients { fun get(id: String): Promise - fun matchAll(options: ClientQueryOptions = definedExternally): Promise + fun matchAll(options: ClientQueryOptions = definedExternally): Promise> fun openWindow(url: String): Promise fun claim(): Promise } @@ -191,10 +193,8 @@ public external interface ClientQueryOptions { @kotlin.internal.InlineOnly public inline fun ClientQueryOptions(includeUncontrolled: Boolean? = false, type: ClientType? = ClientType.WINDOW): ClientQueryOptions { val o = js("({})") - o["includeUncontrolled"] = includeUncontrolled o["type"] = type - return o } @@ -202,20 +202,24 @@ public inline fun ClientQueryOptions(includeUncontrolled: Boolean? = false, type * Exposes the JavaScript [ExtendableEvent](https://developer.mozilla.org/en/docs/Web/API/ExtendableEvent) to Kotlin */ public external open class ExtendableEvent(type: String, eventInitDict: ExtendableEventInit = definedExternally) : Event { - fun waitUntil(f: Promise): Unit + fun waitUntil(f: Promise) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } -public external interface ExtendableEventInit : EventInit { -} +public external interface ExtendableEventInit : EventInit @kotlin.internal.InlineOnly public inline fun ExtendableEventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableEventInit { val o = js("({})") - o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -223,7 +227,14 @@ public inline fun ExtendableEventInit(bubbles: Boolean? = false, cancelable: Boo * Exposes the JavaScript [InstallEvent](https://developer.mozilla.org/en/docs/Web/API/InstallEvent) to Kotlin */ public external open class InstallEvent(type: String, eventInitDict: ExtendableEventInit = definedExternally) : ExtendableEvent { - fun registerForeignFetch(options: ForeignFetchOptions): Unit + fun registerForeignFetch(options: ForeignFetchOptions) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface ForeignFetchOptions { @@ -238,10 +249,8 @@ public external interface ForeignFetchOptions { @kotlin.internal.InlineOnly public inline fun ForeignFetchOptions(scopes: Array?, origins: Array?): ForeignFetchOptions { val o = js("({})") - o["scopes"] = scopes o["origins"] = origins - return o } @@ -252,7 +261,14 @@ public external open class FetchEvent(type: String, eventInitDict: FetchEventIni open val request: Request open val clientId: String? open val isReload: Boolean - fun respondWith(r: Promise): Unit + fun respondWith(r: Promise) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface FetchEventInit : ExtendableEventInit { @@ -270,21 +286,26 @@ public external interface FetchEventInit : ExtendableEventInit { @kotlin.internal.InlineOnly public inline fun FetchEventInit(request: Request?, clientId: String? = null, isReload: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): FetchEventInit { val o = js("({})") - o["request"] = request o["clientId"] = clientId o["isReload"] = isReload o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } public external open class ForeignFetchEvent(type: String, eventInitDict: ForeignFetchEventInit) : ExtendableEvent { open val request: Request open val origin: String - fun respondWith(r: Promise): Unit + fun respondWith(r: Promise) + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface ForeignFetchEventInit : ExtendableEventInit { @@ -299,13 +320,11 @@ public external interface ForeignFetchEventInit : ExtendableEventInit { @kotlin.internal.InlineOnly public inline fun ForeignFetchEventInit(request: Request?, origin: String? = "null", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ForeignFetchEventInit { val o = js("({})") - o["request"] = request o["origin"] = origin o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -324,11 +343,9 @@ public external interface ForeignFetchResponse { @kotlin.internal.InlineOnly public inline fun ForeignFetchResponse(response: Response?, origin: String? = undefined, headers: Array? = undefined): ForeignFetchResponse { val o = js("({})") - o["response"] = response o["origin"] = origin o["headers"] = headers - return o } @@ -341,6 +358,13 @@ public external open class ExtendableMessageEvent(type: String, eventInitDict: E open val lastEventId: String open val source: UnionClientOrMessagePortOrServiceWorker? open val ports: Array? + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface ExtendableMessageEventInit : ExtendableEventInit { @@ -364,7 +388,6 @@ public external interface ExtendableMessageEventInit : ExtendableEventInit { @kotlin.internal.InlineOnly public inline fun ExtendableMessageEventInit(data: Any? = undefined, origin: String? = undefined, lastEventId: String? = undefined, source: UnionClientOrMessagePortOrServiceWorker? = undefined, ports: Array? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableMessageEventInit { val o = js("({})") - o["data"] = data o["origin"] = origin o["lastEventId"] = lastEventId @@ -373,7 +396,6 @@ public inline fun ExtendableMessageEventInit(data: Any? = undefined, origin: Str o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } @@ -382,12 +404,12 @@ public inline fun ExtendableMessageEventInit(data: Any? = undefined, origin: Str */ public external abstract class Cache { fun match(request: dynamic, options: CacheQueryOptions = definedExternally): Promise - fun matchAll(request: dynamic = definedExternally, options: CacheQueryOptions = definedExternally): Promise + fun matchAll(request: dynamic = definedExternally, options: CacheQueryOptions = definedExternally): Promise> fun add(request: dynamic): Promise fun addAll(requests: Array): Promise fun put(request: dynamic, response: Response): Promise fun delete(request: dynamic, options: CacheQueryOptions = definedExternally): Promise - fun keys(request: dynamic = definedExternally, options: CacheQueryOptions = definedExternally): Promise + fun keys(request: dynamic = definedExternally, options: CacheQueryOptions = definedExternally): Promise> } public external interface CacheQueryOptions { @@ -408,12 +430,10 @@ public external interface CacheQueryOptions { @kotlin.internal.InlineOnly public inline fun CacheQueryOptions(ignoreSearch: Boolean? = false, ignoreMethod: Boolean? = false, ignoreVary: Boolean? = false, cacheName: String? = undefined): CacheQueryOptions { val o = js("({})") - o["ignoreSearch"] = ignoreSearch o["ignoreMethod"] = ignoreMethod o["ignoreVary"] = ignoreVary o["cacheName"] = cacheName - return o } @@ -435,12 +455,10 @@ public external interface CacheBatchOperation { @kotlin.internal.InlineOnly public inline fun CacheBatchOperation(type: String? = undefined, request: Request? = undefined, response: Response? = undefined, options: CacheQueryOptions? = undefined): CacheBatchOperation { val o = js("({})") - o["type"] = type o["request"] = request o["response"] = response o["options"] = options - return o } @@ -452,40 +470,62 @@ public external abstract class CacheStorage { fun has(cacheName: String): Promise fun open(cacheName: String): Promise fun delete(cacheName: String): Promise - fun keys(): Promise + fun keys(): Promise> } public external open class FunctionalEvent : ExtendableEvent { + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } -public external @marker interface UnionClientOrMessagePortOrServiceWorker { -} +public external interface UnionMessagePortOrServiceWorker + +public external interface UnionClientOrMessagePortOrServiceWorker /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ServiceWorkerState { companion object } + public inline val ServiceWorkerState.Companion.INSTALLING: ServiceWorkerState get() = "installing".asDynamic().unsafeCast() + public inline val ServiceWorkerState.Companion.INSTALLED: ServiceWorkerState get() = "installed".asDynamic().unsafeCast() + public inline val ServiceWorkerState.Companion.ACTIVATING: ServiceWorkerState get() = "activating".asDynamic().unsafeCast() + public inline val ServiceWorkerState.Companion.ACTIVATED: ServiceWorkerState get() = "activated".asDynamic().unsafeCast() + public inline val ServiceWorkerState.Companion.REDUNDANT: ServiceWorkerState get() = "redundant".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface FrameType { companion object } + public inline val FrameType.Companion.AUXILIARY: FrameType get() = "auxiliary".asDynamic().unsafeCast() + public inline val FrameType.Companion.TOP_LEVEL: FrameType get() = "top-level".asDynamic().unsafeCast() + public inline val FrameType.Companion.NESTED: FrameType get() = "nested".asDynamic().unsafeCast() + public inline val FrameType.Companion.NONE: FrameType get() = "none".asDynamic().unsafeCast() /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface ClientType { companion object } -public inline val ClientType.Companion.WINDOW: ClientType get() = "window".asDynamic().unsafeCast() -public inline val ClientType.Companion.WORKER: ClientType get() = "worker".asDynamic().unsafeCast() -public inline val ClientType.Companion.SHAREDWORKER: ClientType get() = "sharedworker".asDynamic().unsafeCast() -public inline val ClientType.Companion.ALL: ClientType get() = "all".asDynamic().unsafeCast() +public inline val ClientType.Companion.WINDOW: ClientType get() = "window".asDynamic().unsafeCast() + +public inline val ClientType.Companion.WORKER: ClientType get() = "worker".asDynamic().unsafeCast() + +public inline val ClientType.Companion.SHAREDWORKER: ClientType get() = "sharedworker".asDynamic().unsafeCast() + +public inline val ClientType.Companion.ALL: ClientType get() = "all".asDynamic().unsafeCast() \ No newline at end of file diff --git a/libraries/stdlib/js/src/org.w3c/org.w3c.xhr.kt b/libraries/stdlib/js/src/org.w3c/org.w3c.xhr.kt index 2406431f614..1b2fcb94351 100644 --- a/libraries/stdlib/js/src/org.w3c/org.w3c.xhr.kt +++ b/libraries/stdlib/js/src/org.w3c/org.w3c.xhr.kt @@ -1,12 +1,11 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT! -// See libraries/tools/idl2k for details +// See github.com/kotlin/dukat for details -@file:Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") package org.w3c.xhr import kotlin.js.* @@ -40,8 +39,7 @@ public external abstract class XMLHttpRequestEventTarget : EventTarget { open var onloadend: ((Event) -> dynamic)? } -public external abstract class XMLHttpRequestUpload : XMLHttpRequestEventTarget { -} +public external abstract class XMLHttpRequestUpload : XMLHttpRequestEventTarget /** * Exposes the JavaScript [XMLHttpRequest](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest) to Kotlin @@ -59,14 +57,14 @@ public external open class XMLHttpRequest : XMLHttpRequestEventTarget { open val response: Any? open val responseText: String open val responseXML: Document? - fun open(method: String, url: String): Unit - fun open(method: String, url: String, async: Boolean, username: String? = definedExternally, password: String? = definedExternally): Unit - fun setRequestHeader(name: String, value: String): Unit - fun send(body: dynamic = definedExternally): Unit - fun abort(): Unit + fun open(method: String, url: String) + fun open(method: String, url: String, async: Boolean, username: String? = definedExternally, password: String? = definedExternally) + fun setRequestHeader(name: String, value: String) + fun send(body: dynamic = definedExternally) + fun abort() fun getResponseHeader(name: String): String? fun getAllResponseHeaders(): String - fun overrideMimeType(mime: String): Unit + fun overrideMimeType(mime: String) companion object { val UNSENT: Short @@ -81,14 +79,14 @@ public external open class XMLHttpRequest : XMLHttpRequestEventTarget { * Exposes the JavaScript [FormData](https://developer.mozilla.org/en/docs/Web/API/FormData) to Kotlin */ public external open class FormData(form: HTMLFormElement = definedExternally) { - fun append(name: String, value: String): Unit - fun append(name: String, value: Blob, filename: String = definedExternally): Unit - fun delete(name: String): Unit + fun append(name: String, value: String) + fun append(name: String, value: Blob, filename: String = definedExternally) + fun delete(name: String) fun get(name: String): dynamic fun getAll(name: String): Array fun has(name: String): Boolean - fun set(name: String, value: String): Unit - fun set(name: String, value: Blob, filename: String = definedExternally): Unit + fun set(name: String, value: String) + fun set(name: String, value: Blob, filename: String = definedExternally) } /** @@ -96,44 +94,55 @@ public external open class FormData(form: HTMLFormElement = definedExternally) { */ public external open class ProgressEvent(type: String, eventInitDict: ProgressEventInit = definedExternally) : Event { open val lengthComputable: Boolean - open val loaded: Int - open val total: Int + open val loaded: Number + open val total: Number + + companion object { + val NONE: Short + val CAPTURING_PHASE: Short + val AT_TARGET: Short + val BUBBLING_PHASE: Short + } } public external interface ProgressEventInit : EventInit { var lengthComputable: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally - var loaded: Int? /* = 0 */ + var loaded: Number? /* = 0 */ get() = definedExternally set(value) = definedExternally - var total: Int? /* = 0 */ + var total: Number? /* = 0 */ get() = definedExternally set(value) = definedExternally } @kotlin.internal.InlineOnly -public inline fun ProgressEventInit(lengthComputable: Boolean? = false, loaded: Int? = 0, total: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ProgressEventInit { +public inline fun ProgressEventInit(lengthComputable: Boolean? = false, loaded: Number? = 0, total: Number? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ProgressEventInit { val o = js("({})") - o["lengthComputable"] = lengthComputable o["loaded"] = loaded o["total"] = total o["bubbles"] = bubbles o["cancelable"] = cancelable o["composed"] = composed - return o } /* please, don't implement this interface! */ +@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") public external interface XMLHttpRequestResponseType { companion object } -public inline val XMLHttpRequestResponseType.Companion.EMPTY: XMLHttpRequestResponseType get() = "".asDynamic().unsafeCast() -public inline val XMLHttpRequestResponseType.Companion.ARRAYBUFFER: XMLHttpRequestResponseType get() = "arraybuffer".asDynamic().unsafeCast() -public inline val XMLHttpRequestResponseType.Companion.BLOB: XMLHttpRequestResponseType get() = "blob".asDynamic().unsafeCast() -public inline val XMLHttpRequestResponseType.Companion.DOCUMENT: XMLHttpRequestResponseType get() = "document".asDynamic().unsafeCast() -public inline val XMLHttpRequestResponseType.Companion.JSON: XMLHttpRequestResponseType get() = "json".asDynamic().unsafeCast() -public inline val XMLHttpRequestResponseType.Companion.TEXT: XMLHttpRequestResponseType get() = "text".asDynamic().unsafeCast() +public inline val XMLHttpRequestResponseType.Companion.EMPTY: XMLHttpRequestResponseType get() = "".asDynamic().unsafeCast() + +public inline val XMLHttpRequestResponseType.Companion.ARRAYBUFFER: XMLHttpRequestResponseType get() = "arraybuffer".asDynamic().unsafeCast() + +public inline val XMLHttpRequestResponseType.Companion.BLOB: XMLHttpRequestResponseType get() = "blob".asDynamic().unsafeCast() + +public inline val XMLHttpRequestResponseType.Companion.DOCUMENT: XMLHttpRequestResponseType get() = "document".asDynamic().unsafeCast() + +public inline val XMLHttpRequestResponseType.Companion.JSON: XMLHttpRequestResponseType get() = "json".asDynamic().unsafeCast() + +public inline val XMLHttpRequestResponseType.Companion.TEXT: XMLHttpRequestResponseType get() = "text".asDynamic().unsafeCast() \ No newline at end of file diff --git a/libraries/tools/dukat/build.gradle.kts b/libraries/tools/dukat/build.gradle.kts new file mode 100644 index 00000000000..f32a242bea6 --- /dev/null +++ b/libraries/tools/dukat/build.gradle.kts @@ -0,0 +1,26 @@ +plugins { + kotlin("jvm") +} + +repositories { + maven("https://kotlin.bintray.com/dukat") +} + +dependencies { + implementation(kotlinStdlib()) + implementation("org.jetbrains.dukat:dukat:0.0.20.1") + implementation("org.jsoup:jsoup:1.8.2") +} + +task("downloadIDL", JavaExec::class) { + main = "org.jetbrains.kotlin.tools.dukat.DownloadKt" + classpath = sourceSets["main"].runtimeClasspath + dependsOn(":dukat:build") +} + +task("generateStdlibFromIDL", JavaExec::class) { + main = "org.jetbrains.kotlin.tools.dukat.LaunchKt" + classpath = sourceSets["main"].runtimeClasspath + dependsOn(":dukat:build") + systemProperty("line.separator", "\n") +} diff --git a/libraries/tools/idl2k/src/main/kotlin/dl/download.kt b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/download.kt similarity index 50% rename from libraries/tools/idl2k/src/main/kotlin/dl/download.kt rename to libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/download.kt index 9425614f67c..413d5f9fbad 100644 --- a/libraries/tools/idl2k/src/main/kotlin/dl/download.kt +++ b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/download.kt @@ -1,22 +1,10 @@ /* - * 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. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.idl2k.dl +package org.jetbrains.kotlin.tools.dukat -import org.jetbrains.idl2k.urls import org.jsoup.Jsoup import org.jsoup.nodes.Element import org.jsoup.parser.Tag @@ -45,7 +33,7 @@ fun main(args: Array) { val pkg = e.value.first().second File(dir, fileName).bufferedWriter().use { w -> - w.appendln("namespace $pkg;") + w.appendln("package $pkg;") w.appendln() w.appendln() @@ -104,3 +92,40 @@ private fun extractIDLText(rawContent: String, out: Appendable) { soup.select("code.idl-code").attachTo(out) soup.select("spec-idl").attachTo(out) } + +private val urls = listOf( + "https://raw.githubusercontent.com/whatwg/html-mirror/master/source" to "org.w3c.dom", + "https://html.spec.whatwg.org/" to "org.w3c.dom", + "https://raw.githubusercontent.com/whatwg/dom/master/dom.html" to "org.w3c.dom", + "https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html" to "org.w3c.dom", + "https://www.w3.org/TR/animation-timing/" to "org.w3c.dom", + "https://www.w3.org/TR/geometry-1/" to "org.w3c.dom", + "https://www.w3.org/TR/cssom-view/" to "org.w3c.dom", + "https://www.w3.org/TR/uievents/" to "org.w3c.dom.events", + "https://www.w3.org/TR/pointerevents/" to "org.w3c.dom.pointerevents", + + "https://drafts.csswg.org/cssom/" to "org.w3c.dom.css", + "https://www.w3.org/TR/css-masking-1/" to "org.w3c.css.masking", + + "https://w3c.github.io/mediacapture-main/" to "org.w3c.dom.mediacapture", + "https://www.w3.org/TR/DOM-Parsing/" to "org.w3c.dom.parsing", + "https://w3c.github.io/clipboard-apis" to "org.w3c.dom.clipboard", + "https://raw.githubusercontent.com/whatwg/url/master/url.html" to "org.w3c.dom.url", + + "https://www.w3.org/TR/SVG2/single-page.html" to "org.w3c.dom.svg", + "https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl" to "org.khronos.webgl", + "https://www.khronos.org/registry/typedarray/specs/latest/typedarray.idl" to "org.khronos.webgl", + + "https://raw.githubusercontent.com/whatwg/xhr/master/Overview.src.html" to "org.w3c.xhr", + "https://raw.githubusercontent.com/whatwg/fetch/master/Overview.src.html" to "org.w3c.fetch", + "https://raw.githubusercontent.com/w3c/FileAPI/gh-pages/index.html" to "org.w3c.files", + + "https://raw.githubusercontent.com/whatwg/notifications/master/notifications.html" to "org.w3c.notifications", + "https://raw.githubusercontent.com/whatwg/fullscreen/master/fullscreen.html" to "org.w3c.fullscreen", + "https://www.w3.org/TR/vibration/" to "org.w3c.vibration", + + "https://www.w3.org/TR/hr-time/" to "org.w3c.performance", + "https://www.w3.org/TR/2012/REC-navigation-timing-20121217/" to "org.w3c.performance", + + "https://w3c.github.io/ServiceWorker/" to "org.w3c.workers" +) diff --git a/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/launch.kt b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/launch.kt new file mode 100644 index 00000000000..7df072c3920 --- /dev/null +++ b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/launch.kt @@ -0,0 +1,52 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.tools.dukat + +import org.xml.sax.InputSource +import java.io.File +import javax.xml.xpath.XPathFactory + +private val LINE_SEPARATOR = System.lineSeparator() + +private fun readCopyrightNoticeFromProfile(copyrightProfile: File): String { + val template = copyrightProfile.reader().use { reader -> + XPathFactory.newInstance().newXPath().evaluate( + "/component/copyright/option[@name='notice']/@value", + InputSource(reader) + ) + } + val yearTemplate = "$today.year" + val year = java.time.LocalDate.now().year.toString() + assert(yearTemplate in template) + + return template.replace(yearTemplate, year).lines() + .joinToString("", prefix = "/*$LINE_SEPARATOR", postfix = " */$LINE_SEPARATOR") { + " * $it$LINE_SEPARATOR" + } +} + +private fun getHeader(): String { + val copyrightNotice = readCopyrightNoticeFromProfile( + File("../../../.idea/copyright/apache.xml") + ) + val note = "// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!$LINE_SEPARATOR" + + "// See github.com/kotlin/dukat for details$LINE_SEPARATOR" + return copyrightNotice + LINE_SEPARATOR + note + LINE_SEPARATOR +} + +fun main() { + + val input = "../../stdlib/js/idl/org.w3c.dom.idl" + val outputDirectory = "../../stdlib/js/src/org.w3c/" + + org.jetbrains.dukat.cli.main("-d", outputDirectory, input) + + for (file in File(outputDirectory).listFiles { name -> + name.extension == "kt" + }.orEmpty()) { + file.writeBytes((getHeader() + file.readText()).toByteArray()) + } +} \ No newline at end of file diff --git a/libraries/tools/idl2k/build.gradle b/libraries/tools/idl2k/build.gradle deleted file mode 100644 index 39ade599d81..00000000000 --- a/libraries/tools/idl2k/build.gradle +++ /dev/null @@ -1,41 +0,0 @@ -buildscript { - ext.antlr4_version = '4.7.1' -} - -apply plugin: "antlr" -apply plugin: "kotlin" - -if (project.findProperty("idl2k.deploy")?.toBoolean()) { - configurePublishing(project) -} - -project.sourceSets.main.antlr.srcDirs = ["src/main/antlr4"] - -dependencies { - antlr "org.antlr:antlr4:$antlr4_version" - implementation "org.antlr:antlr4-runtime:$antlr4_version" - implementation kotlinStdlib() - implementation "org.jsoup:jsoup:1.8.2" - - testImplementation "junit:junit:4.12" -} - -sourceSets.main.kotlin.srcDirs += file("$buildDir/generated-src/antlr/main/") - -generateGrammarSource { - arguments += ["-visitor", "-long-messages", "-package", "org.antlr.webidl"] -} - - -compileKotlin.dependsOn generateGrammarSource -compileTestKotlin.dependsOn generateTestGrammarSource - -task downloadIDL(type: JavaExec) { - main = "org.jetbrains.idl2k.dl.DownloadKt" - classpath = sourceSets.main.runtimeClasspath -} - -task idl2k(type: JavaExec) { - main = "org.jetbrains.idl2k.MainKt" - classpath = sourceSets.main.runtimeClasspath -} \ No newline at end of file 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 deleted file mode 100644 index c1b738b26f3..00000000000 --- a/libraries/tools/idl2k/src/main/antlr4/org/antlr/webidl/WebIDL.g4 +++ /dev/null @@ -1,595 +0,0 @@ -/* -BSD License - -Copyright (c) 2013, 2015 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 - : namespace? definitions EOF -; - -namespaceScope - : '*' | 'cpp' | 'java' | 'py' | 'perl' | 'rb' | 'cocoa' | 'csharp' -; - -namespaceRest - : IDENTIFIER_WEBIDL ( '.' IDENTIFIER_WEBIDL )* - ; - -namespace - : 'namespace' namespaceScope? namespaceRest ';'; - -definitions - : extendedAttributeList definition definitions - | /* empty */ -; - -definition - : callbackOrInterface - | partial - | dictionary - | enum_ - | typedef - | exception_ - | const_ - | module - | implementsStatement -; - -module - : 'module' IDENTIFIER_WEBIDL '{' definitions '}' ';' - ; - -callbackOrInterface - : 'callback' callbackRestOrInterface - | interface_ -; - -exception_ - : 'exception' IDENTIFIER_WEBIDL inheritance '{' dictionaryMembers '}' ';' - ; - -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 - | typedef -; - -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 ( ',' 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') attributeAnnotations* ';' -; - -attributeAnnotations - : IDENTIFIER_WEBIDL ( '(' type (',' type)* ')' )? -; - -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 ')' attributeAnnotations* ';' -; - -optionalIdentifier - : IDENTIFIER_WEBIDL - | /* empty */ -; - -argumentList - : argument arguments - | /* empty */ -; - -arguments - : ',' argument arguments - | /* empty */ -; - -argument - : extendedAttributeList optionalOrRequiredArgument -; - -optionalOrRequiredArgument - : 'optional'? ('in'|'out')? 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' - | 'namespace' -; - -type - : singleType - | unionType typeSuffix -; - -singleType - : nonAnyType - | 'any' typeSuffixStartingWithArray -; - -unionType - : '(' unionMemberType ( 'or' unionMemberType )* ')' -; - -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 - | sequenceType null_ - | 'object' typeSuffix - | 'Date' typeSuffix - | 'RegExp' typeSuffix - | 'DOMException' typeSuffix - | IDENTIFIER_WEBIDL '<' type '>' null_ -; - -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'+ -; - -sequenceType - : 'sequence' '<' type '>' - | 'FrozenArray' '<' type '>' -; - -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/build.kt b/libraries/tools/idl2k/src/main/kotlin/build.kt deleted file mode 100644 index 17e3fd090f4..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/build.kt +++ /dev/null @@ -1,124 +0,0 @@ -package org.jetbrains.idl2k - -import org.antlr.v4.runtime.CharStreams -import java.io.File -import java.io.IOException -import java.net.URL -import java.util.ArrayList -import java.util.LinkedHashMap - -class BuildWebIdl(val mdnCacheFile: File, val srcDir: File) { - val repositoryPre = loadPreliminaryRepository() - - fun loadPreliminaryRepository(): Repository { - if (!srcDir.exists()) { - System.err?.println("Directory ${srcDir.absolutePath} doesn't exist") - System.exit(1) - } - - return srcDir.walkTopDown().filter { it.isDirectory || it.extension == "idl" }.asSequence().filter { it.isFile }.toList() - .sortedBy { it.absolutePath }.fold(Repository(emptyMap(), emptyMap(), emptyMap(), emptyMap())) { acc, e -> - System.err.flush() - System.err.println("Parsing ${e.absolutePath}") - val fileRepository = parseIDL(CharStreams.fromFileName(e.absolutePath, Charsets.UTF_8)) - - Repository( - interfaces = acc.interfaces.mergeReduce(fileRepository.interfaces, ::merge), - typeDefs = acc.typeDefs + fileRepository.typeDefs, - externals = acc.externals.merge(fileRepository.externals), - enums = acc.enums + fileRepository.enums - ) - } - } - - init { - println("Prepare...") - } - - val repository = - repositoryPre.copy(typeDefs = repositoryPre.typeDefs.mapValues { it.value.copy(mapType(repositoryPre, it.value.types)) }) - - val definitions = implementInterfaces(mapDefinitions(repository, repository.interfaces.values).map { - if (it.name in relocations) { - // we need this to get interfaces listed in the relocations in valid package - // to keep compatibility with DOM Java API - it.copy(namespace = relocations[it.name]!!) - } else { - it - } - }) - - val unions = generateUnions(definitions, repository.typeDefs.values) - - val allPackages = (definitions.asSequence().map { it.namespace } + repository.enums.values.map { it.namespace }).distinct().sorted() - - val mdnCache by lazy { updateMdnCache() } - - fun updateMdnCache(): MDNDocumentationCache { - println("Processing MDN") - - val oldMdnCache = if (mdnCacheFile.canRead()) MDNDocumentationCache.read(mdnCacheFile) else MDNDocumentationCache.Empty - val newMdnCacheExisting = HashSet(oldMdnCache.existing) - val newMdnCacheNonExisting = HashSet(oldMdnCache.nonExisting) - - for (iface in definitions) { - val url = "https://developer.mozilla.org/en/docs/Web/API/${iface.name}" - val addUrl = when (oldMdnCache.checkInCache(url)) { - true -> true - false -> false - else -> try { - val text = URL(url).openStream().reader().use { it.readText() } - text.contains(iface.name, ignoreCase = true) - } catch (ignore: IOException) { - false - } - } - - if (addUrl) - newMdnCacheExisting.add(url) - else - newMdnCacheNonExisting.add(url) - } - - val mdnCache = MDNDocumentationCache(newMdnCacheExisting, newMdnCacheNonExisting) - MDNDocumentationCache.writeTo(mdnCache, mdnCacheFile) - - return mdnCache - } -} - - -internal fun Map>.reduceValues(reduce: (V, V) -> V = { _, b -> b }): Map = mapValues { it.value.reduce(reduce) } - -internal fun Map.mergeReduce(other: Map, reduce: (V, V) -> V = { _, b -> b }): Map { - val result = LinkedHashMap(this.size + other.size) - result.putAll(this) - other.forEach { e -> - val existing = result[e.key] - - if (existing == null) { - result[e.key] = e.value - } else { - result[e.key] = reduce(e.value, existing) - } - } - - return result -} - -internal fun Map>.merge(other: Map>): Map> { - val result = LinkedHashMap>(size + other.size) - this.forEach { - result[it.key] = ArrayList(it.value) - } - other.forEach { - val list = result[it.key] - if (list == null) { - result[it.key] = ArrayList(it.value) - } else { - list.addAll(it.value) - } - } - - return result -} \ No newline at end of file diff --git a/libraries/tools/idl2k/src/main/kotlin/config.kt b/libraries/tools/idl2k/src/main/kotlin/config.kt deleted file mode 100644 index aa407fd6d55..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/config.kt +++ /dev/null @@ -1,185 +0,0 @@ -/* - * 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 - -val urls = listOf( - "https://raw.githubusercontent.com/whatwg/html-mirror/master/source" to "org.w3c.dom", - "https://html.spec.whatwg.org/" to "org.w3c.dom", - "https://raw.githubusercontent.com/whatwg/dom/master/dom.html" to "org.w3c.dom", - "https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html" to "org.w3c.dom", - "https://www.w3.org/TR/animation-timing/" to "org.w3c.dom", - "https://www.w3.org/TR/geometry-1/" to "org.w3c.dom", - "https://www.w3.org/TR/cssom-view/" to "org.w3c.dom", - "https://www.w3.org/TR/uievents/" to "org.w3c.dom.events", - "https://www.w3.org/TR/pointerevents/" to "org.w3c.dom.pointerevents", - - "https://drafts.csswg.org/cssom/" to "org.w3c.dom.css", - "https://www.w3.org/TR/css-masking-1/" to "org.w3c.css.masking", - - "https://w3c.github.io/mediacapture-main/" to "org.w3c.dom.mediacapture", - "https://www.w3.org/TR/DOM-Parsing/" to "org.w3c.dom.parsing", - "https://w3c.github.io/clipboard-apis" to "org.w3c.dom.clipboard", - "https://raw.githubusercontent.com/whatwg/url/master/url.html" to "org.w3c.dom.url", - - "https://www.w3.org/TR/SVG2/single-page.html" to "org.w3c.dom.svg", - "https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl" to "org.khronos.webgl", - "https://www.khronos.org/registry/typedarray/specs/latest/typedarray.idl" to "org.khronos.webgl", - - "https://raw.githubusercontent.com/whatwg/xhr/master/Overview.src.html" to "org.w3c.xhr", - "https://raw.githubusercontent.com/whatwg/fetch/master/Overview.src.html" to "org.w3c.fetch", - "https://raw.githubusercontent.com/w3c/FileAPI/gh-pages/index.html" to "org.w3c.files", - - "https://raw.githubusercontent.com/whatwg/notifications/master/notifications.html" to "org.w3c.notifications", - "https://raw.githubusercontent.com/whatwg/fullscreen/master/fullscreen.html" to "org.w3c.fullscreen", - "https://www.w3.org/TR/vibration/" to "org.w3c.vibration", - - "https://www.w3.org/TR/hr-time/" to "org.w3c.performance", - "https://www.w3.org/TR/2012/REC-navigation-timing-20121217/" to "org.w3c.performance", - - "https://w3c.github.io/ServiceWorker/" to "org.w3c.workers" -) - -val relocations = mapOf( - "Event" to "org.w3c.dom.events", - "EventTarget" to "org.w3c.dom.events", - "EventListener" to "org.w3c.dom.events" -) - -val commentOutDeclarations = setOf( - "MouseEvent.screenX: Double", "MouseEvent.screenY: Double", - "MouseEvent.clientX: Double", "MouseEvent.clientY: Double", - "MouseEvent.x: Double", "MouseEvent.y: Double", - - "HTMLAllCollection.namedItem", - "HTMLAllCollection.get", - - "HTMLFormControlsCollection.namedItem", - "HTMLFormControlsCollection.get", - - "HTMLPropertiesCollection.namedItem", - "HTMLPropertiesCollection.get", - - "SVGElement.id" -) - -val requiredArguments = setOf( - "DOMPoint.constructor.point", - "DOMQuad.constructor.rect" -) - -val inheritanceExclude = mapOf( - "SVGAElement" to setOf("HTMLHyperlinkElementUtils") -) - -val kotlinBuiltinInterfaces = mapOf( - "ItemArrayLike" to GenerateClass("ItemArrayLike", "org.w3c.dom", GenerateDefinitionKind.INTERFACE, emptyList(), - memberAttributes = mutableListOf(GenerateAttribute("length", SimpleType("Int", false), null, false, AttributeKind.VAL, false, false, false, false)), - memberFunctions = mutableListOf(GenerateFunction("item", DynamicType, listOf( - GenerateAttribute("index", SimpleType("Int", false), null, false, AttributeKind.ARGUMENT, false, false, false, false) - ), NativeGetterOrSetter.NONE, false, false)), - constants = emptyList(), - generateBuilderFunction = false, - primaryConstructor = null, - secondaryConstructors = emptyList() - ) -) - -val eventSpecifierMapper = mapOf( - "onbeforeunload" to "BeforeUnloadEvent", - - "ondrag" to "DragEvent", - "ondragend" to "DragEvent", - "ondragenter" to "DragEvent", - "ondragexit" to "DragEvent", - "ondragleave" to "DragEvent", - "ondragover" to "DragEvent", - "ondragstart" to "DragEvent", - "ondrop" to "DragEvent", - - "oncopy" to "ClipboardEvent", - "oncut" to "ClipboardEvent", - "onpaste" to "ClipboardEvent", - - - "onfetch" to "FetchEvent", - - "onblur" to "FocusEvent", - "onfocus" to "FocusEvent", - - "onhashchange" to "HashChangeEvent", - - "oninput" to "InputEvent", - - "onkeydown" to "KeyboardEvent", - "onkeypress" to "KeyboardEvent", - "onkeyup" to "KeyboardEvent", - - "onmessage" to "MessageEvent", - - "onclick" to "MouseEvent", - "oncontextmenu" to "MouseEvent", - "ondblclick" to "MouseEvent", - "onmousedown" to "MouseEvent", - "onmouseenter" to "MouseEvent", - "onmouseleave" to "MouseEvent", - "onmousemove" to "MouseEvent", - "onmouseout" to "MouseEvent", - "onmouseover" to "MouseEvent", - "onmouseup" to "MouseEvent", - - "onnotificationclick" to "NotificationEvent", - "onnotificationclose" to "NotificationEvent", - - "onpagehide" to "PageTransitionEvent", - "onpageshow" to "PageTransitionEvent", - - "ongotpointercapture" to "PointerEvent", - "onlostpointercapture" to "PointerEvent", - "onpointercancel" to "PointerEvent", - "onpointerdown" to "PointerEvent", - "onpointerenter" to "PointerEvent", - "onpointerleave" to "PointerEvent", - "onpointermove" to "PointerEvent", - "onpointerout" to "PointerEvent", - "onpointerover" to "PointerEvent", - "onpointerup" to "PointerEvent", - - "onpopstate" to "PopStateEvent", - - "onloadstart" to "ProgressEvent", - "onprogress" to "ProgressEvent", - - "onunhandledrejection" to "PromiseRejectionEvent", - - "onstorage" to "StorageEvent", - - "onwheel" to "WheelEvent" -) - - -data class EventMapKey(val name: String, val context: String) - -val eventSpecifierMapperWithContext = mapOf( - EventMapKey("onaddtrack", "MediaStream") to "MediaStreamTrackEvent", - EventMapKey("onremovetrack", "MediaStream") to "MediaStreamTrackEvent", - - EventMapKey("onaddtrack", "AudioTrackList") to "TrackEvent", - EventMapKey("onaddtrack", "TextTrackList") to "TrackEvent", - EventMapKey("onaddtrack", "VideoTrackList") to "TrackEvent", - EventMapKey("onremovetrack", "AudioTrackList") to "TrackEvent", - EventMapKey("onremovetrack", "TextTrackList") to "TrackEvent", - EventMapKey("onremovetrack", "VideoTrackList") to "TrackEvent" -) diff --git a/libraries/tools/idl2k/src/main/kotlin/gen.kt b/libraries/tools/idl2k/src/main/kotlin/gen.kt deleted file mode 100644 index f52329840ad..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/gen.kt +++ /dev/null @@ -1,368 +0,0 @@ -/* - * Copyright 2010-2016 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.jetbrains.idl2k.util.mapEnumConstant - -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 - } -} - -fun generateFunction(repository: Repository, function: Operation, functionName: String, nativeGetterOrSetter: NativeGetterOrSetter = function.getterOrSetter()): GenerateFunction = - function.attributes.map { it.call }.toSet().let { - GenerateFunction( - name = functionName, - returnType = mapType(repository, function.returnType).let { mapped -> if (nativeGetterOrSetter == NativeGetterOrSetter.GETTER) mapped.toNullableIfNonPrimitive() else mapped }, - arguments = function.parameters.map { - val mappedType = mapType(repository, it.type) - - GenerateAttribute( - name = it.name, - type = mappedType, - initializer = if (it.defaultValue != null) "definedExternally" else null, - getterSetterNoImpl = false, - override = false, - kind = AttributeKind.ARGUMENT, - vararg = it.vararg, - static = it.static, - required = it.required - ) - }, - nativeGetterOrSetter = nativeGetterOrSetter, - static = function.static, - override = false - ) - } - -fun generateFunctions(repository: Repository, function: Operation): List { - val realFunction = when { - function.name == "" -> null - function.getterOrSetter() == NativeGetterOrSetter.NONE -> generateFunction(repository, function, function.name, NativeGetterOrSetter.NONE) - function.name == "get" || function.name == "set" -> null - else -> generateFunction(repository, function, function.name, NativeGetterOrSetter.NONE) - } - val getterOrSetterFunction = when (function.getterOrSetter()) { - NativeGetterOrSetter.NONE -> null - NativeGetterOrSetter.GETTER -> generateFunction(repository, function, "get") - NativeGetterOrSetter.SETTER -> generateFunction(repository, function, "set") - } - val callbackArgumentsAsLambdas = function.parameters.map { - val parameterType = mapType(repository, it.type) as? SimpleType - val interfaceType = repository.interfaces[parameterType?.type] - when { - interfaceType == null -> it - interfaceType.operations.size != 1 -> it - interfaceType.callback -> interfaceType.operations.single().let { callbackFunction -> - it.copy(type = FunctionType(callbackFunction.parameters.map { it.copy(type = mapType(repository, it.type)) }, mapType(repository, callbackFunction.returnType), parameterType?.nullable ?: false)) - } - else -> it - } - } - - val functionWithCallbackOrNull = when { - callbackArgumentsAsLambdas == function.parameters -> null - realFunction != null -> generateFunction(repository, function.copy(parameters = callbackArgumentsAsLambdas), function.name, NativeGetterOrSetter.NONE) - else -> null - } - - return listOf(realFunction, getterOrSetterFunction, functionWithCallbackOrNull).filterNotNull() -} - -fun generateAttribute(putNoImpl: Boolean, repository: Repository, attribute: Attribute, nullableAttributes: Boolean): GenerateAttribute { - val mappedType = mapType(repository, attribute.type).let { if (nullableAttributes) it.toNullable() else it } - return GenerateAttribute(attribute.name, - type = mappedType, - initializer = - if (putNoImpl && !attribute.static) { - mapLiteral(attribute.defaultValue, mapType(repository, attribute.type), repository.enums) - } else if (attribute.defaultValue != null) { - "definedExternally" - } else { - null - }, - getterSetterNoImpl = putNoImpl, - kind = if (attribute.readOnly) AttributeKind.VAL else AttributeKind.VAR, - override = false, - vararg = attribute.vararg, - static = attribute.static, - required = attribute.required - ) -} - - -private fun InterfaceDefinition.isInterface() : Boolean { - return when { - dictionary -> true - extendedAttributes.any { it.call == "NoInterfaceObject" } -> true - callback -> true - else -> false - } -} - -private fun InterfaceDefinition.superTypes(repository: Repository) = superTypes.map { repository.interfaces[it] }.filterNotNull() -private fun resolveDefinitionKind(repository: Repository, iface: InterfaceDefinition, constructors: List = iface.findConstructors()): GenerateDefinitionKind = - when { - iface.isInterface() -> GenerateDefinitionKind.INTERFACE - constructors.isNotEmpty() || iface.superTypes(repository).any { resolveDefinitionKind(repository, it) == GenerateDefinitionKind.CLASS } -> { - GenerateDefinitionKind.CLASS - } - else -> GenerateDefinitionKind.ABSTRACT_CLASS - } - -private fun InterfaceDefinition.mapAttributes(repository: Repository) - = attributes.map { generateAttribute(putNoImpl = dictionary, repository = repository, attribute = it, nullableAttributes = dictionary) } -private fun InterfaceDefinition.mapOperations(repository: Repository) = operations.flatMap { generateFunctions(repository, it) } -private fun Constant.mapConstant(repository : Repository) = GenerateAttribute(name, mapType(repository, type), null, false, AttributeKind.VAL, false, false, true, false) -private val EMPTY_CONSTRUCTOR = ExtendedAttribute(null, "Constructor", emptyList()) - -fun generateTrait(repository: Repository, iface: InterfaceDefinition): List { - val superClasses = iface.superTypes - .mapNotNull { repository.interfaces[it] } - .filter { - when (resolveDefinitionKind(repository, it)) { - GenerateDefinitionKind.CLASS, - GenerateDefinitionKind.ABSTRACT_CLASS -> true - else -> false - } - } - - assert(superClasses.size <= 1) { "Type ${iface.name} should have one or zero super classes but found ${superClasses.map { it.name }}" } - - val declaredConstructors = iface.findConstructors() - val entityKind = resolveDefinitionKind(repository, iface, declaredConstructors) - val extensions = repository.externals[iface.name]?.mapNotNull { repository.interfaces[it] } ?: emptyList() - - val primaryConstructor = when { - declaredConstructors.size == 1 -> declaredConstructors.single() - declaredConstructors.isEmpty() && (entityKind == GenerateDefinitionKind.CLASS || entityKind == GenerateDefinitionKind.ABSTRACT_CLASS) -> EMPTY_CONSTRUCTOR - else -> declaredConstructors.firstOrNull { it.arguments.isEmpty() } - } - val secondaryConstructors = declaredConstructors.filter { it != primaryConstructor } - - val primaryConstructorWithCall = primaryConstructor?.let { constructor -> - val constructorAsFunction = generateConstructorAsFunction(repository, constructor) - - ConstructorWithSuperTypeCall(constructorAsFunction, constructor) - } - - val secondaryConstructorsWithCall = secondaryConstructors.map { secondaryConstructor -> - val constructorAsFunction = generateConstructorAsFunction(repository, secondaryConstructor) - - ConstructorWithSuperTypeCall(constructorAsFunction, secondaryConstructor) - } - - val memberAttributes = iface.mapAttributes(repository) - val memberFunctions = iface.mapOperations(repository) - - val extensionsNames = extensions.map { it.name } - - val namedConstructors = - iface.findExtendedAttributes("NamedConstructor").map { namedConstructor -> - GenerateClass( - name = namedConstructor.call, - namespace = iface.namespace, - kind = GenerateDefinitionKind.CLASS, - superTypes = listOf(iface.name) + extensionsNames, - memberAttributes = memberAttributes.toMutableList(), - memberFunctions = memberFunctions.toMutableList(), - constants = emptyList(), - primaryConstructor = ConstructorWithSuperTypeCall(generateConstructorAsFunction(repository, namedConstructor), namedConstructor), - secondaryConstructors = emptyList(), - generateBuilderFunction = false - ) - } - - return (listOf(GenerateClass(iface.name, iface.namespace, entityKind, (iface.superTypes + extensionsNames).distinct(), - memberAttributes = memberAttributes.toMutableList(), - memberFunctions = memberFunctions.toMutableList(), - constants = (iface.constants.map { it.mapConstant(repository) } + extensions.flatMap { it.constants.map { it.mapConstant(repository) } }.distinct().toList()), - primaryConstructor = primaryConstructorWithCall, - secondaryConstructors = secondaryConstructorsWithCall, - generateBuilderFunction = iface.dictionary - )) + namedConstructors).map(::markAsArrayLikeIfApplicable) -} - -fun markAsArrayLikeIfApplicable(iface: GenerateClass): GenerateClass { - fun isInt(type: Type) = type is SimpleType && type.type == "Int" - - val lengthProperty = iface.memberAttributes.singleOrNull { it.name == "length" && isInt(it.type) } - val itemAccessFunction = iface.memberFunctions.singleOrNull { it.name == "item" && it.arguments.map { isInt(it.type) } == listOf(true) && it.returnType != UnitType } - - if (lengthProperty == null || itemAccessFunction == null) return iface - - return iface.copy(superTypes = iface.superTypes + "ItemArrayLike<${itemAccessFunction.returnType.dropNullable().render()}>") -} - -fun generateConstructorAsFunction(repository: Repository, constructor: ExtendedAttribute) = generateFunction( - repository, - Operation("constructor", UnitType, constructor.arguments, emptyList(), false), - functionName = "constructor", - nativeGetterOrSetter = NativeGetterOrSetter.NONE) - - -fun mapUnionType(it: UnionType) = GenerateClass( - name = it.name, - namespace = it.namespace, - kind = GenerateDefinitionKind.INTERFACE, - superTypes = emptyList(), - memberAttributes = mutableListOf(), - memberFunctions = mutableListOf(), - constants = emptyList(), - primaryConstructor = null, - secondaryConstructors = emptyList(), - generateBuilderFunction = false -) - -fun generateUnionTypeTraits(allUnionTypes: Sequence): Sequence = allUnionTypes.map(::mapUnionType) - -fun mapDefinitions(repository: Repository, definitions: Iterable) = - definitions.flatMap { generateTrait(repository, it) } - -fun generateUnions(ifaces: List, typedefs: Iterable): GenerateUnionTypes { - val declaredTypes = ifaces.associateBy { it.name } - - val anonymousUnionTypes = collectUnionTypes(declaredTypes) - val anonymousUnionTypeTraits = generateUnionTypeTraits(anonymousUnionTypes) - val anonymousUnionsMap = anonymousUnionTypeTraits.associateBy { it.name } - - val typedefsToBeGenerated = typedefs.filter { it.types is UnionType } - .map { NamedValue(it.name, it.types as UnionType) } - .filter { it.value.memberTypes.all { type -> type is SimpleType && type.type in declaredTypes } } - - val typedefsMarkersMap = typedefsToBeGenerated.groupBy { it.name }.mapValues { mapUnionType(it.value.first().value).copy(name = it.key) } - - val typeNamesToUnions = anonymousUnionTypes - .toList() - .flatMap { unionType -> - unionType.memberTypes - .filterIsInstance() - .map { unionMember -> unionMember.type to unionType.name } - }.toMultiMap() - .merge(typedefsToBeGenerated - .flatMap { typedef -> - typedef.value.memberTypes - .filterIsInstance() - .map { unionMember -> unionMember.type to typedef.name } - }.toMultiMap()) - - return GenerateUnionTypes( - typeNamesToUnionsMap = typeNamesToUnions, - anonymousUnionsMap = anonymousUnionsMap, - typedefsMarkersMap = typedefsMarkersMap - ) -} - -private fun mapLiteral(literal: String?, expectedType: Type = DynamicType, enums: Map) = - if (literal != null && expectedType is SimpleType && expectedType.type in enums.keys) { - expectedType.type + "." + mapEnumConstant(literal.removeSurrounding("\"", "\"")) - } - else { - when (literal) { - "[]" -> when { - expectedType == DynamicType -> "arrayOf()" - expectedType is AnyType -> "arrayOf()" - expectedType is UnionType -> "arrayOf()" - else -> "arrayOf()" - } - else -> literal - } - } - - private fun specifyType(name: String, type: Type, context: String): Type { - - if ((type is SimpleType) && (type.type == "Event")) { - (eventSpecifierMapper[name] ?: eventSpecifierMapperWithContext[EventMapKey(name, context)])?.let { - return type.copy(type = it) - } - } - - return type -} - -private fun generalizeType(name: String, type: Type, context: String): Type { - if ((type is FunctionType) && (type.parameterTypes.size == 1)) { - val paramAttribute = type.parameterTypes[0] - return type.copy(parameterTypes = listOf(paramAttribute.copy(type = specifyType(name, paramAttribute.type, context)))) - } - return type -} - -fun implementInterfaces(declarations: List) : List { - val unimplementedMemberMap = getUnimplementedMembers(declarations) - val nonAbstractDeclarations = declarations.filter { it.kind == GenerateDefinitionKind.CLASS } - for (declaration in nonAbstractDeclarations) { - val unimplementedMembers = unimplementedMemberMap[declaration.name] ?: continue - - for (attribute in unimplementedMembers.attributes) { - declaration.memberAttributes += attribute.copy(override = true) - } - for (function in unimplementedMembers.functions) { - declaration.memberFunctions += function.copy(override = true) - } - } - - return declarations.map { declaration -> - declaration.copy( - memberAttributes = declaration - .memberAttributes.map { attribute -> attribute.copy(type = generalizeType(attribute.name, attribute.type, declaration.name)) }.toMutableList() - ) - } -} - -private fun getUnimplementedMembers(declarations: List): Map { - val declarationMap = declarations.associate { it.name to it } - val unimplementedMemberCache = mutableMapOf() - - fun getForClass(className: String): UnimplementedMembers = unimplementedMemberCache.getOrPut(className) { - val declaration = declarationMap[className] ?: return@getOrPut UnimplementedMembers(emptyList(), emptyList()) - val unimplementedInSuperClasses = declaration.superTypes.map { getForClass(it) } - val attributeMap = unimplementedInSuperClasses - .flatMap { it.attributes } - .associate { it.name to it } - .toMutableMap() - val functionMap = unimplementedInSuperClasses - .flatMap { it.functions } - .associate { "${it.name}(${it.signature})" to it } - .toMutableMap() - - val (implementedAttributes, unimplementedAttributes) = declaration.memberAttributes - .filter { !it.static } - .partition { declaration.kind != GenerateDefinitionKind.INTERFACE && !it.getterSetterNoImpl } - val (implementedFunctions, unimplementedFunctions) = declaration.memberFunctions - .filter { !it.static } - .partition { declaration.kind != GenerateDefinitionKind.INTERFACE } - - attributeMap += unimplementedAttributes.map { it.name to it } - attributeMap.keys -= implementedAttributes.map { it.name } - functionMap += unimplementedFunctions.map { "${it.name}(${it.signature})" to it } - functionMap.keys -= implementedFunctions.map { "${it.name}(${it.signature})" } - - UnimplementedMembers(attributeMap.values.toList(), functionMap.values.toList()) - } - - for (declaration in declarations) { - getForClass(declaration.name) - } - - return unimplementedMemberCache -} - -private class UnimplementedMembers(val attributes: List, val functions: List) \ No newline at end of file diff --git a/libraries/tools/idl2k/src/main/kotlin/generator.kt b/libraries/tools/idl2k/src/main/kotlin/generator.kt deleted file mode 100644 index 6e9bb7a15da..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/generator.kt +++ /dev/null @@ -1,31 +0,0 @@ -package org.jetbrains.idl2k - -import java.io.File - -fun BuildWebIdl.jsGenerator(outDir: File, copyrightNotice: String) { - - outDir.deleteRecursively() - outDir.mkdirs() - - allPackages.forEach { pkg -> - File(outDir, pkg + ".kt").bufferedWriter().use { w -> - println("Generating for package $pkg...") - w.appendln(copyrightNotice) - w.appendln("// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!") - w.appendln("// See libraries/tools/idl2k for details") - - w.appendln() - w.appendln("@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")") - w.appendln("package $pkg") - w.appendln() - - w.appendln("import kotlin.js.*") - allPackages.filter { it != pkg }.forEach { import -> - w.appendln("import $import.*") - } - w.appendln() - - w.render(pkg, definitions, unions, repository.enums.values.toList(), mdnCache) - } - } -} \ No newline at end of file diff --git a/libraries/tools/idl2k/src/main/kotlin/idl.kt b/libraries/tools/idl2k/src/main/kotlin/idl.kt deleted file mode 100644 index 21d449c5365..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/idl.kt +++ /dev/null @@ -1,612 +0,0 @@ -/* - * 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.v4.runtime.CharStream -import org.antlr.v4.runtime.CommonTokenStream -import org.antlr.v4.runtime.ParserRuleContext -import org.antlr.v4.runtime.tree.ParseTree -import org.antlr.v4.runtime.tree.TerminalNode -import org.antlr.webidl.WebIDLBaseVisitor -import org.antlr.webidl.WebIDLLexer -import org.antlr.webidl.WebIDLParser -import org.antlr.webidl.WebIDLParser.* -import java.util.* - -data class ExtendedAttribute(val name: String?, val call: String, val arguments: List) -data class Operation(val name: String, val returnType: Type, val parameters: List, val attributes: List, val static: Boolean) -data class Attribute(val name: String, val type: Type, val readOnly: Boolean = true, val defaultValue: String? = null, val vararg: Boolean, val static: Boolean, val required: Boolean) -data class Constant(val name: String, val type: Type, val value: String?) - -enum class DefinitionKind { - INTERFACE, - TYPEDEF, - EXTENSION_INTERFACE, - ENUM, - DICTIONARY -} - -interface Definition -data class TypedefDefinition(val types: Type, val namespace: String, val name: String) : Definition -data class InterfaceDefinition( - val name: String, - val namespace: String, - val extendedAttributes: List, - val operations: List, - val attributes: List, - val superTypes: List, - val constants: List, - val dictionary: Boolean = false, - val partial: Boolean, - val callback: Boolean -) : Definition - -data class ExtensionInterfaceDefinition(val namespace: String, val name: String, val implements: String) : Definition -data class EnumDefinition(val namespace: String, val name: String, val entries: List) : Definition - -class ExtendedAttributeArgumentsParser(private val namespace: String) : WebIDLBaseVisitor>() { - private val arguments = ArrayList() - - override fun defaultResult(): List = arguments - - override fun visitOptionalOrRequiredArgument(ctx: WebIDLParser.OptionalOrRequiredArgumentContext): List { - val attributeVisitor = AttributeVisitor(namespace = namespace) - attributeVisitor.visit(ctx) - val parameter = attributeVisitor.visitChildren(ctx) - - arguments.add(parameter) - - visitChildren(ctx) - return defaultResult() - } -} - -// [Constructor] -// [Constructor(any, Int)] -// [Constructor(Int arg, String arg2 = "a")] -// [name = Constructor] -class ExtendedAttributeParser(private val namespace: String) : 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.filterIdentifiers().firstOrNull()?.text ?: "" - - visitChildren(ctx) - return defaultResult() - } - - override fun visitArgumentList(ctx: WebIDLParser.ArgumentListContext): ExtendedAttribute { - arguments.addAll(ExtendedAttributeArgumentsParser(namespace).visitChildren(ctx)) - return defaultResult() - } - - override fun visitIdentifierList(ctx: IdentifierListContext): ExtendedAttribute { - object : WebIDLBaseVisitor() { - override fun visitTerminal(node: TerminalNode) { - if (node.symbol.type == WebIDLLexer.IDENTIFIER_WEBIDL) { - arguments.add(Attribute(node.text, AnyType(), true, vararg = false, static = false, required = false)) - } - } - }.visitChildren(ctx) - - return defaultResult() - } - - override fun visitExtendedAttributeNamePart(ctx: WebIDLParser.ExtendedAttributeNamePartContext): ExtendedAttribute { - name = getName(ctx) - return defaultResult() - } -} - -class UnionTypeVisitor(val namespace: String) : WebIDLBaseVisitor>() { - val list = ArrayList() - - override fun defaultResult() = list - - override fun visitUnionMemberType(ctx: WebIDLParser.UnionMemberTypeContext): List { - list.add(TypeVisitor(namespace).visitChildren(ctx)) - - return list - } -} - -class TypeVisitor(val namespace: String) : WebIDLBaseVisitor() { - private var type: Type = AnyType() - private var awaitingSimpleType = false - - override fun defaultResult() = type - - override fun visitType(ctx: TypeContext?): Type { - type = super.visitType(ctx) - return type - } - - override fun visitReturnType(ctx: ReturnTypeContext?): Type { - awaitingSimpleType = true - type = super.visitReturnType(ctx) - return type - } - - override fun visitNonAnyType(ctx: WebIDLParser.NonAnyTypeContext): Type { - awaitingSimpleType = true - type = super.visitNonAnyType(ctx) - return type - } - - override fun visitUnionType(ctx: WebIDLParser.UnionTypeContext): Type { - type = UnionType(namespace, UnionTypeVisitor(namespace).visitChildren(ctx), false) - return type - } - - override fun visitPromiseType(ctx: PromiseTypeContext): Type { - type = PromiseType(TypeVisitor(namespace).visitChildren(ctx), false) - return type - } - - override fun visitSequenceType(ctx: SequenceTypeContext): Type { - val mutable = ctx.getChild(0).text == "sequence" - type = ArrayType(TypeVisitor(namespace).visitChildren(ctx), mutable = mutable, nullable = false) - return type - } - - override fun visitTypeSuffix(ctx: TypeSuffixContext): Type { - when (ctx.text?.trim()) { - "?" -> type = type.toNullable() - "[]" -> type = ArrayType(type, mutable = true, nullable = false) - "[]?" -> type = ArrayType(type, mutable = true, nullable = false) - "?[]" -> type = ArrayType(type.toNullable(), mutable = true, nullable = false) - } - - return type - } - - override fun visitNull_(ctx: Null_Context): Type { - if (ctx.text?.trim() == "?") { - type = type.toNullable() - } - return type - } - - override fun visitTerminal(node: TerminalNode): Type { - if (awaitingSimpleType) { - type = SimpleType(node.text, false) - awaitingSimpleType = false - } - return type - } - - override fun visitUnsignedIntegerType(ctx: UnsignedIntegerTypeContext): Type { - awaitingSimpleType = false - type = super.visitUnsignedIntegerType(ctx) - return type - } - - override fun visitUnrestrictedFloatType(ctx: UnrestrictedFloatTypeContext): Type { - awaitingSimpleType = false - type = super.visitUnrestrictedFloatType(ctx) - return type - } - - override fun visitFloatType(ctx: FloatTypeContext): Type { - type = SimpleType(ctx.text, false) - return type - } - - override fun visitIntegerType(ctx: IntegerTypeContext): Type { - type = SimpleType(ctx.text, false) - return type - } -} - -class OperationVisitor(private val attributes: List, private val static: Boolean, private val namespace: String) : WebIDLBaseVisitor() { - private var name: String = "" - private var returnType: Type = UnitType - private val parameters = ArrayList() - private val exts = ArrayList() - - override fun defaultResult() = Operation(name, returnType, parameters, attributes + exts, static) - - override fun visitOptionalIdentifier(ctx: OptionalIdentifierContext): Operation { - name = ctx.text - return defaultResult() - } - - override fun visitSpecial(ctx: WebIDLParser.SpecialContext): Operation { - if (ctx.children != null) { - exts.add(ExtendedAttribute(call = ctx.text, name = null, arguments = emptyList())) - } - - return defaultResult() - } - - override fun visitReturnType(ctx: ReturnTypeContext): Operation { - returnType = TypeVisitor(namespace).visit(ctx) - return defaultResult() - } - - override fun visitOptionalOrRequiredArgument(ctx: WebIDLParser.OptionalOrRequiredArgumentContext): Operation { - val attributeVisitor = AttributeVisitor(static = false, namespace = namespace) - attributeVisitor.visit(ctx) - val parameter = attributeVisitor.visitChildren(ctx) - - parameters.add(parameter) - - return defaultResult() - } -} - -class AttributeVisitor(private val readOnly: Boolean = false, private val static: Boolean = false, private val namespace: String) : WebIDLBaseVisitor() { - private var type: Type = AnyType(true) - private var name: String = "" - private var defaultValue: String? = null - private var vararg: Boolean = false - private var required: Boolean = false - - override fun defaultResult(): Attribute = Attribute(name, type, readOnly, defaultValue, vararg, static, required) - - override fun visitType(ctx: WebIDLParser.TypeContext): Attribute { - type = TypeVisitor(namespace).visit(ctx) - return defaultResult() - } - - override fun visitOptionalOrRequiredArgument(ctx: WebIDLParser.OptionalOrRequiredArgumentContext): Attribute { - if (ctx.children?.any { it is TerminalNode && it.text == "optional" } ?: false) { - defaultValue = "definedExternally" - } - if (ctx.children?.any { it is TerminalNode && it.text == "required" } ?: false) { - required = true - } - return visitChildren(ctx) - } - - override fun visitAttributeRest(ctx: WebIDLParser.AttributeRestContext): Attribute { - name = getNameOrNull(ctx) ?: ctx.children.filter { it is TerminalNode }.filter { it.text != ";" }.last().text - return defaultResult() - } - - override fun visitArgumentName(ctx: WebIDLParser.ArgumentNameContext): Attribute { - name = getNameOrNull(ctx) ?: ctx.text - return defaultResult() - } - - override fun visitDefaultValue(ctx: WebIDLParser.DefaultValueContext): Attribute { - defaultValue = ctx.text - return defaultResult() - } - - override fun visitEllipsis(ctx: WebIDLParser.EllipsisContext): Attribute { - vararg = vararg || "..." in ctx.text - return defaultResult() - } -} - -class ConstantVisitor : WebIDLBaseVisitor() { - private var type: Type = AnyType(false) - private var name: String = "" - private 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 = SimpleType(ctx.text, false) - return defaultResult() - } - - override fun visitConstValue(ctx: WebIDLParser.ConstValueContext): Constant { - value = ctx.text - return defaultResult() - } -} - -class DefinitionVisitor(val extendedAttributes: List, val namespace: String, val declarations: MutableList) : WebIDLBaseVisitor() { - private var kind = DefinitionKind.INTERFACE - private var name = "" - private val memberAttributes = ArrayList() - private val operations = ArrayList() - private val attributes = ArrayList() - private var readOnly: Boolean = false - private var static: Boolean = false - private val inherited = ArrayList() - private var typedefType: Type? = null - private var implements: String? = null - private val constants = ArrayList() - private var partial = false - private var callback = false - private val enumEntries = mutableListOf() - private var enumEntryExpected = false - - override fun defaultResult(): Definition = when (kind) { - DefinitionKind.INTERFACE -> InterfaceDefinition(name, namespace, extendedAttributes, operations, attributes, inherited, constants, false, partial, callback) - DefinitionKind.DICTIONARY -> InterfaceDefinition(name, namespace, extendedAttributes, operations, attributes, inherited, constants, /* dictionary = */ true, partial, callback) - DefinitionKind.EXTENSION_INTERFACE -> ExtensionInterfaceDefinition(namespace, name, implements ?: "") - DefinitionKind.TYPEDEF -> TypedefDefinition(typedefType ?: AnyType(true), namespace, name) - DefinitionKind.ENUM -> EnumDefinition(namespace, name, enumEntries) - } - - override fun visitCallbackRestOrInterface(ctx: WebIDLParser.CallbackRestOrInterfaceContext): Definition { - callback = true - return visitChildren(ctx) - } - - override fun visitCallbackRest(ctx: WebIDLParser.CallbackRestContext): Definition { - kind = DefinitionKind.TYPEDEF - name = getName(ctx) - - val function = OperationVisitor(memberAttributes.toList(), static, namespace).visit(ctx) - typedefType = FunctionType(function.parameters, function.returnType, false) - - memberAttributes.clear() - return defaultResult() - } - - override fun visitModule(ctx: ModuleContext): Definition { - val moduleName = getName(ctx) - val namespace = if (this.namespace.endsWith(moduleName)) this.namespace else this.namespace + "." + moduleName - - ModuleVisitor(declarations, namespace).visitChildren(ctx) - - return defaultResult() - } - - override fun visitInterface_(ctx: Interface_Context): Definition { - name = getName(ctx) - visitChildren(ctx) - return defaultResult() - } - - override fun visitPartialInterface(ctx: WebIDLParser.PartialInterfaceContext): Definition { - name = getName(ctx) - partial = true - visitChildren(ctx) - return defaultResult() - } - - override fun visitTypedef(ctx: WebIDLParser.TypedefContext): Definition { - if (name != "") { - // TODO temporary workaround for local typedefs - return defaultResult() - } - - kind = DefinitionKind.TYPEDEF - name = getName(ctx) - - typedefType = ctx.accept(object : WebIDLBaseVisitor() { - private var foundType: Type = AnyType(false) - - override fun defaultResult(): Type = foundType - - override fun visitType(ctx: WebIDLParser.TypeContext): Type { - foundType = TypeVisitor(namespace).visit(ctx) - return defaultResult() - } - }) - - return defaultResult() - } - - override fun visitEnum_(ctx: Enum_Context): Definition { - enumEntryExpected = true - kind = DefinitionKind.ENUM - name = getName(ctx) - - super.visitEnum_(ctx) - - enumEntryExpected = false - return defaultResult() - } - - override fun visitTerminal(node: TerminalNode): Definition { - if (enumEntryExpected && node.symbol.type == WebIDLParser.STRING_WEBIDL) { - enumEntries += node.symbol.text.removeSurrounding("\"", "\"") - } - return super.visitTerminal(node) - } - - override fun visitDictionary(ctx: DictionaryContext): Definition { - kind = DefinitionKind.DICTIONARY - name = getName(ctx) - - return visitChildren(ctx) - } - - override fun visitDictionaryMember(ctx: DictionaryMemberContext): Definition { - val name = ctx.children - .filterIdentifiers() - .firstOrNull { it.text != "" } - ?.text - - val type = TypeVisitor(namespace).visit(ctx.children.first { it is TypeContext }) - var required = false - val defaultValue = object : WebIDLBaseVisitor() { - private var value: String? = null - - override fun defaultResult() = value - - override fun visitDefaultValue(ctx2: DefaultValueContext): String? { - value = ctx2.text - return value - } - - override fun visitRequired(ctx: RequiredContext?): String? { - if (ctx?.children?.any { it is TerminalNode && it.text == "required" } ?: false) { - required = true - } - return super.visitRequired(ctx) - } - }.visit(ctx) - - attributes.add(Attribute(name ?: "", type, false, defaultValue, false, static, required)) - - return defaultResult() - } - - override fun visitImplementsStatement(ctx: ImplementsStatementContext): Definition { - val identifiers = ctx.children.filterIdentifiers().map { it.text } - - if (identifiers.size == 2) { - kind = DefinitionKind.EXTENSION_INTERFACE - name = identifiers[0] - implements = identifiers[1] - visitChildren(ctx) - } - - return defaultResult() - } - - override fun visitOperation(ctx: OperationContext): Definition { - visitOperationImpl(ctx) - return defaultResult() - } - - private fun visitOperationImpl(ctx: ParserRuleContext) { - operations.add(OperationVisitor(memberAttributes.toList(), static, namespace).visit(ctx)) - memberAttributes.clear() - } - - override fun visitInheritance(ctx: WebIDLParser.InheritanceContext): Definition { - if (ctx.children != null) { - inherited.addAll(ctx.children.filterIdentifiers().map { it.text.trim() }.filter { it != "" }) - } - return defaultResult() - } - - override fun visitReadOnly(ctx: WebIDLParser.ReadOnlyContext): Definition { - return visitReadOnlyImpl(ctx) - } - - override fun visitReadonlyMemberRest(ctx: ReadonlyMemberRestContext): Definition? { - return visitReadOnlyImpl(ctx) - } - - private fun visitReadOnlyImpl(ctx: ParserRuleContext): Definition { - readOnly = true - visitChildren(ctx) - readOnly = false - - return defaultResult() - } - - override fun visitStaticMember(ctx: WebIDLParser.StaticMemberContext): Definition { - static = true - visitChildren(ctx) - static = false - - return defaultResult() - } - - override fun visitStaticMemberRest(ctx: WebIDLParser.StaticMemberRestContext): Definition { - if (ctx.children?.any { it is OperationRestContext } ?: false) { - visitOperationImpl(ctx) - } else { - visitChildren(ctx) - } - - return defaultResult() - } - - override fun visitAttributeRest(ctx: WebIDLParser.AttributeRestContext): Definition { - with(AttributeVisitor(readOnly, static, namespace)) { - visit(ctx) - this@DefinitionVisitor.attributes.add(visitChildren(ctx)) - } - - return defaultResult() - } - - override fun visitConst_(ctx: WebIDLParser.Const_Context): Definition { - constants.add(ConstantVisitor().visit(ctx)) - memberAttributes.clear() - - return defaultResult() - } - - override fun visitExtendedAttribute(ctx: ExtendedAttributeContext): Definition { - memberAttributes.add(ExtendedAttributeParser(namespace).visit(ctx)) - return defaultResult() - } - -} - -class ModuleVisitor(val declarations: MutableList, var namespace: String = "") : WebIDLBaseVisitor() { - val extendedAttributes = ArrayList() - - override fun visitDefinition(ctx: WebIDLParser.DefinitionContext) { - val declaration = DefinitionVisitor(extendedAttributes.toList(), namespace, declarations).visitChildren(ctx) - extendedAttributes.clear() - declarations.add(declaration) - } - - override fun visitExtendedAttribute(ctx: ExtendedAttributeContext?) { - val att = with(ExtendedAttributeParser(namespace)) { - visit(ctx) - } - - extendedAttributes.add(att) - } - - override fun visitNamespaceRest(ctx: NamespaceRestContext) { - this.namespace = ctx.text - } -} - -private fun List?.filterIdentifiers(): List = this?.filter { it is TerminalNode && it.symbol.type == WebIDLLexer.IDENTIFIER_WEBIDL } ?: emptyList() -private fun getName(ctx: ParserRuleContext) = ctx.children.filterIdentifiers().first().text -private fun getNameOrNull(ctx: ParserRuleContext) = ctx.children.filterIdentifiers().firstOrNull()?.text - -fun parseIDL(reader: CharStream): Repository { - val ll = WebIDLLexer(reader) - val pp = WebIDLParser(CommonTokenStream(ll)) - - val idl = pp.webIDL() - val declarations = ArrayList() - ModuleVisitor(declarations).visit(idl) - - return Repository( - declarations.filterIsInstance().filter { it.name.isEmpty().not() }.groupBy { it.name }.mapValues { it.value.reduce(::merge) }, - declarations.filterIsInstance().groupBy { it.name }.mapValues { it.value.first() }, - declarations.filterIsInstance().groupBy { it.name }.mapValues { it.value.map { it.implements } }, - declarations.filterIsInstance().groupBy { it.name }.mapValues { it.value.reduce { a, _ -> a } } - ) -} - -fun merge(i1: InterfaceDefinition, i2: InterfaceDefinition): InterfaceDefinition { - require(i1.name == i2.name) - - return InterfaceDefinition(i1.name, - namespace = if (i1.partial) i2.namespace else i1.namespace, - 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, - partial = i1.partial && i2.partial, - callback = i1.callback && i2.callback - ) -} - -infix fun List.merge(other: List) = (this + other).distinct() diff --git a/libraries/tools/idl2k/src/main/kotlin/main.kt b/libraries/tools/idl2k/src/main/kotlin/main.kt deleted file mode 100644 index 64c5648e397..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/main.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.jetbrains.idl2k - -import org.jetbrains.idl2k.util.readCopyrightNoticeFromProfile -import java.io.* - -fun main(args: Array) { - val webIdl = BuildWebIdl( - mdnCacheFile = File("target/mdn-cache.txt"), - srcDir = File("../../stdlib/js/idl")) - - println("Generating...") - - val copyrightNotice = readCopyrightNoticeFromProfile(File("../../../.idea/copyright/apache.xml")) - webIdl.jsGenerator(File("../../stdlib/js/src/org.w3c"), copyrightNotice) -} diff --git a/libraries/tools/idl2k/src/main/kotlin/mdn.kt b/libraries/tools/idl2k/src/main/kotlin/mdn.kt deleted file mode 100644 index 59ca51d19ae..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/mdn.kt +++ /dev/null @@ -1,38 +0,0 @@ -package org.jetbrains.idl2k - -import java.io.* - -class MDNDocumentationCache(val existing: Set, val nonExisting: Set) { - - fun checkInCache(url: String): Boolean? = when (url) { - in existing -> true - in nonExisting -> false - else -> null - } - - companion object { - val Empty = MDNDocumentationCache(emptySet(), emptySet()) - - fun read(file: File): MDNDocumentationCache { - val existing = HashSet() - val nonExisting = HashSet() - - file.forEachLine { line -> - val parts = line.split("|") - if (parts.size == 2) { - val url = parts[0] - if (parts[1] == "Y") existing.add(url) - else if (parts[1] == "N") nonExisting.add(url) - } - } - - return MDNDocumentationCache(existing, nonExisting) - } - - fun writeTo(c: MDNDocumentationCache, file: File) { - file.bufferedWriter().use { - (c.existing + c.nonExisting).sorted().joinTo(it, separator = "\n") { "$it|${if (it in c.existing) "Y" else "N"}" } - } - } - } -} \ No newline at end of file diff --git a/libraries/tools/idl2k/src/main/kotlin/model.kt b/libraries/tools/idl2k/src/main/kotlin/model.kt deleted file mode 100644 index a51f75d4a0a..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/model.kt +++ /dev/null @@ -1,104 +0,0 @@ -/* - * 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 NamedValue(val name: String, val value: V) - -data class Repository( - val interfaces: Map, - val typeDefs: Map, - val externals: Map>, - val enums: Map -) - -enum class AttributeKind { - VAL, VAR, ARGUMENT -} -data class GenerateAttribute(val name: String, val type: Type, val initializer: String?, val getterSetterNoImpl: Boolean, val kind: AttributeKind, val override: Boolean, var vararg: Boolean, val static: Boolean, val required: Boolean) - -val GenerateAttribute.getterNoImpl: Boolean - get() = getterSetterNoImpl -val GenerateAttribute.setterNoImpl: Boolean - get() = getterSetterNoImpl && kind == AttributeKind.VAR -val GenerateAttribute.isVal: Boolean - get() = kind == AttributeKind.VAL -val GenerateAttribute.isVar: Boolean - get() = kind == AttributeKind.VAR - -val Type.typeSignature: String - get() = when { - this is FunctionType -> "Function$arity" - else -> this.toString() - } - -val GenerateAttribute.signature: String - get() = "$name:${type.typeSignature}" - -fun GenerateAttribute.dynamicIfUnknownType(allTypes : Set, standardTypes : Set = standardTypes()) = copy(type = type.dynamicIfUnknownType(allTypes, standardTypes)) -fun List.dynamicIfUnknownType(allTypes : Set, standardTypes : Set = standardTypes()) = map { it.dynamicIfUnknownType(allTypes, standardTypes) } - -enum class NativeGetterOrSetter { - NONE, - GETTER, - SETTER -} - -enum class GenerateDefinitionKind { - INTERFACE, - CLASS, - ABSTRACT_CLASS -} - -data class GenerateFunction( - val name: String, - val returnType: Type, - val arguments: List, - val nativeGetterOrSetter: NativeGetterOrSetter, - val static: Boolean, - val override: Boolean -) - -data class ConstructorWithSuperTypeCall(val constructor: GenerateFunction, val constructorAttribute: ExtendedAttribute) - -data class GenerateClass( - val name: String, - val namespace: String, - val kind: GenerateDefinitionKind, - val superTypes: List, - val memberAttributes: MutableList, - val memberFunctions: MutableList, - val constants: List, - val primaryConstructor: ConstructorWithSuperTypeCall?, - val secondaryConstructors: List, - val generateBuilderFunction: Boolean -) - -val GenerateFunction.signature: String - get() = arguments.map { it.type.typeSignature }.joinToString(", ", "$name(", ")") - -fun GenerateFunction.dynamicIfUnknownType(allTypes : Set) = standardTypes().let { standardTypes -> - copy(returnType = returnType.dynamicIfUnknownType(allTypes, standardTypes), arguments = arguments.map { it.dynamicIfUnknownType(allTypes, standardTypes) }) -} - -fun InterfaceDefinition.findExtendedAttributes(name: String) = extendedAttributes.filter { it.name == name } -fun InterfaceDefinition.findConstructors() = extendedAttributes.filter { it.call == "Constructor" } - -data class GenerateUnionTypes( - val typeNamesToUnionsMap: Map>, - val anonymousUnionsMap: Map, - val typedefsMarkersMap: Map -) diff --git a/libraries/tools/idl2k/src/main/kotlin/render.kt b/libraries/tools/idl2k/src/main/kotlin/render.kt deleted file mode 100644 index 791c1f8c4f5..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/render.kt +++ /dev/null @@ -1,428 +0,0 @@ -/* - * Copyright 2010-2016 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.jetbrains.idl2k.util.mapEnumConstant -import java.math.BigInteger - -private fun O.indent(commented: Boolean = false, level: Int) { - if (commented) { - append("//") - } - for (i in 1..level) { - append(" ") - } -} - -private fun Appendable.renderAttributeDeclaration(arg: GenerateAttribute, modality: MemberModality, omitDefaults: Boolean = false) { - if (arg.vararg) { - append("vararg ") - } - else { - when (modality) { - MemberModality.OVERRIDE -> append("override ") - MemberModality.ABSTRACT -> append("abstract ") - MemberModality.OPEN -> append("open ") - MemberModality.FINAL -> {} - } - } - - append(when(arg.kind) { - AttributeKind.VAL -> "val " - AttributeKind.VAR -> "var " - AttributeKind.ARGUMENT -> "" - }) - append(arg.name.replaceKeywords()) - append(": ") - append(arg.type.render()) - if (arg.initializer != null) { - if (omitDefaults) { - append(" /*") - } - - append(" = ") - append(arg.initializer.specifyInitializerConstant(arg.type)) - - if (omitDefaults) { - append(" */") - } - } -} - -private fun Appendable.renderAttributeDeclarationAsProperty(arg: GenerateAttribute, modality: MemberModality, commented: Boolean, level: Int, omitDefaults: Boolean = false) { - indent(commented, level) - - if (arg.name in keywords) { - append("@JsName(\"${arg.name}\") ") - } - - renderAttributeDeclaration(arg, modality, omitDefaults) - - appendln() - if (arg.getterNoImpl) { - indent(commented, level + 1) - appendln("get() = definedExternally") - } - if (arg.setterNoImpl) { - indent(commented, level + 1) - appendln("set(value) = definedExternally") - } -} - -private val keywords = setOf("interface", "is", "as") - -private fun String.parse() = if (this.startsWith("0x")) BigInteger(this.substring(2), 16) else BigInteger(this) -private fun String.specifyInitializerConstant(type: Type) = when { - this == "undefined" && type.nullable -> "undefined" - this == "definedExternally" || type is SimpleType && type.type == "Int" && parse() > BigInteger.valueOf(Int.MAX_VALUE.toLong()) -> "definedExternally" - type is SimpleType && type.type == "Double" && this.matches("[0-9]+".toRegex()) -> "${this}.0" - type is SimpleType && type.type == "Float" -> "${this}f" - else -> this -} -private fun String.replaceKeywords() = if (this in keywords) this + "_" else this - -private fun Appendable.renderArgumentsDeclaration(args: List, omitDefaults: Boolean = false) = - args.joinTo(this, ", ", "(", ")") { - StringBuilder().apply { renderAttributeDeclaration(it, if (it.override) MemberModality.OVERRIDE else MemberModality.FINAL, omitDefaults) } - } - -private fun Appendable.renderFunctionDeclaration(owner: String, f: GenerateFunction, override: Boolean, commented: Boolean, level: Int = 1) { - indent(commented, level) - - if (f.nativeGetterOrSetter != NativeGetterOrSetter.NONE) { - append("@kotlin.internal.InlineOnly ") - } - if (override) { - append("override ") - } - if (f.nativeGetterOrSetter != NativeGetterOrSetter.NONE) { - append("inline operator ") - } - - if (f.name in keywords) { - append("@JsName(\"${f.name}\") ") - } - append("fun ") - if (f.nativeGetterOrSetter != NativeGetterOrSetter.NONE) { - append("$owner.") - } - append(f.name.replaceKeywords()) - renderArgumentsDeclaration(f.arguments, override) - append(": ${f.returnType.render()}") - - when (f.nativeGetterOrSetter) { - NativeGetterOrSetter.GETTER -> { - append(" = asDynamic()[${f.arguments[0].name}]") - } - NativeGetterOrSetter.SETTER -> { - append(" { asDynamic()[${f.arguments[0].name}] = ${f.arguments[1].name}; }") - } - NativeGetterOrSetter.NONE -> {} - } - - appendln() -} - -private fun List.hasNoVars() = none { it.isVar } - -private fun GenerateAttribute.isCommented(parent: String) = "$parent.$name" in commentOutDeclarations || "$parent.$name: ${type.render()}" in commentOutDeclarations -private fun GenerateFunction.isCommented(parent: String) = - "$parent.$name" in commentOutDeclarations || "$parent.$name(${arguments.size})" in commentOutDeclarations -private fun GenerateAttribute.isRequiredFunctionArgument(owner: String, functionName: String) = "$owner.$functionName.$name" in requiredArguments -private fun GenerateFunction.fixRequiredArguments(parent: String) = copy(arguments = arguments.map { arg -> arg.copy(initializer = if (arg.isRequiredFunctionArgument(parent, name)) null else arg.initializer) }) - -fun Appendable.render(allTypes: Map, enums: List, typeNamesToUnions: Map>, iface: GenerateClass, markerAnnotation: Boolean = false, mdnCache: MDNDocumentationCache? = null) { - - val url = "https://developer.mozilla.org/en/docs/Web/API/${iface.name}" - if (mdnCache?.checkInCache(url) == true) { - appendln("/**") - appendln(" * Exposes the JavaScript [${iface.name}]($url) to Kotlin") - appendln(" */") - } - - val allTypesAndEnums = allTypes.keys + enums.map { it.name } - - append("public external ") - if (markerAnnotation) { - append("@marker ") - } - when (iface.kind) { - GenerateDefinitionKind.CLASS -> append("open class ") - GenerateDefinitionKind.ABSTRACT_CLASS -> append("abstract class ") - GenerateDefinitionKind.INTERFACE -> append("interface ") - } - - val allSuperTypes = iface.allSuperTypes(allTypes + kotlinBuiltinInterfaces) - val allSuperTypesNames = allSuperTypes.map { it.name }.toSet() - - append(iface.name) - val primary = iface.primaryConstructor - if (primary != null && (primary.constructor.arguments.isNotEmpty() || iface.secondaryConstructors.isNotEmpty())) { - renderArgumentsDeclaration(primary.constructor.fixRequiredArguments(iface.name).arguments.dynamicIfUnknownType(allTypesAndEnums), false) - } - - val superTypesExclude = inheritanceExclude[iface.name] ?: emptySet() - val superTypesWithCalls = - iface.superTypes.filter { it in allSuperTypesNames }.filter { it !in superTypesExclude } + - (typeNamesToUnions[iface.name] ?: emptyList()) + - (iface.superTypes.filter { it.substringBefore("<") in kotlinBuiltinInterfaces }) // TODO in theory we have to parse type but for now it is the only place needs it so let's just cut string - - - if (superTypesWithCalls.isNotEmpty()) { - superTypesWithCalls.joinTo(this, ", ", " : ") - } - - appendln (" {") - - iface.secondaryConstructors.forEach { secondary -> - indent(false, 1) - append("constructor") - renderArgumentsDeclaration(secondary.constructor.fixRequiredArguments(iface.name).arguments.dynamicIfUnknownType(allTypesAndEnums), false) - - appendln() - } - - val superAttributes = allSuperTypes.flatMap { it.memberAttributes }.distinct() - val superAttributesByName = superAttributes.groupBy { it.name } - val superFunctions = allSuperTypes.flatMap { it.memberFunctions }.distinct() - val superSignatures = superAttributes.map { it.signature } merge superFunctions.map { it.signature } - - iface.memberAttributes - .filter { - !it.static - && (it.isVar || (it.isVal && superAttributesByName[it.name]?.hasNoVars() ?: true)) - } - .map { it.dynamicIfUnknownType(allTypesAndEnums) } - .groupBy { it.name } - .mapValues { it.value.filter { "${iface.name}.${it.name}" !in commentOutDeclarations && "${iface.name}.${it.name}: ${it.type.render()}" !in commentOutDeclarations } } - .filterValues { it.isNotEmpty() } - .reduceValues(::merge).values.forEach { attribute -> - val modality = when { - attribute.signature in superSignatures -> MemberModality.OVERRIDE - iface.kind == GenerateDefinitionKind.CLASS && attribute.isVal -> MemberModality.OPEN - iface.kind == GenerateDefinitionKind.ABSTRACT_CLASS -> MemberModality.OPEN - else -> MemberModality.FINAL - } - - val skipAttributeDeclaration = modality == MemberModality.OVERRIDE - && attribute.kindNotChanged(superAttributesByName) - && (iface.kind == GenerateDefinitionKind.INTERFACE || attribute.hasSuperImplementation(allSuperTypes)) - - if (attribute.name in superAttributesByName && attribute.signature !in superSignatures) { - System.err.println("Property ${iface.name}.${attribute.name} has different type in super type(s) so will not be generated: ") - for ((superTypeName, attributes) in allSuperTypes.map { it.name to it.memberAttributes.filter { it.name == attribute.name }.distinct() }) { - for (superAttribute in attributes) { - System.err.println(" $superTypeName.${attribute.name}: ${superAttribute.type.render()}") - } - } - } else if (skipAttributeDeclaration) { - // then don't generate - } else { - renderAttributeDeclarationAsProperty(attribute, - modality = modality, - commented = attribute.isCommented(iface.name), - omitDefaults = iface.kind == GenerateDefinitionKind.INTERFACE, - level = 1 - ) - } - } - val memberFunctions= iface.memberFunctions.filter { - (it !in superFunctions || it.override) && !it.static - }.map { it.dynamicIfUnknownType(allTypesAndEnums) }.groupBy { it.signature }.reduceValues(::betterFunction).values - - fun doRenderFunction(function: GenerateFunction, level: Int = 1) { - renderFunctionDeclaration( - iface.name, function.fixRequiredArguments(iface.name), - function.signature in superSignatures || function.override, - commented = function.isCommented(iface.name), - level = level - ) - } - - memberFunctions.filter { it.nativeGetterOrSetter == NativeGetterOrSetter.NONE }.forEach { doRenderFunction(it) } - - val staticAttributes = iface.memberAttributes.filter { it.static } - val staticFunctions = iface.memberFunctions.filter { it.static } - - if (iface.constants.isNotEmpty() || staticAttributes.isNotEmpty() || staticFunctions.isNotEmpty()) { - appendln() - indent(false, 1) - appendln("companion object {") - iface.constants.forEach { - renderAttributeDeclarationAsProperty(it, MemberModality.FINAL, level = 2, commented = it.isCommented(iface.name)) - } - staticAttributes.forEach { - renderAttributeDeclarationAsProperty(it, MemberModality.FINAL, level = 2, commented = it.isCommented(iface.name)) - } - staticFunctions.forEach { - renderFunctionDeclaration(iface.name, it.fixRequiredArguments(iface.name), override = false, level = 2, commented = it.isCommented(iface.name)) - } - indent(false, 1) - appendln("}") - } - - appendln("}") - memberFunctions.filter { it.nativeGetterOrSetter != NativeGetterOrSetter.NONE }.forEach { doRenderFunction(it, 0) } - appendln() - - if (iface.generateBuilderFunction) { - renderBuilderFunction(iface, allSuperTypes, allTypesAndEnums) - } -} - -private fun GenerateAttribute.kindNotChanged(superAttributesByName: Map>) = superAttributesByName[name].orEmpty().all { it.kind == kind } - -private fun GenerateAttribute.hasSuperImplementation(allSuperTypes: List) = allSuperTypes.any { st -> st.kind != GenerateDefinitionKind.INTERFACE && st.memberAttributes.any { it.signature == signature } } - -private fun GenerateAttribute.hasNoDefaultValue() = - this.initializer == null && (this.type.nullable || this.type == DynamicType) && !this.required - -fun Appendable.renderBuilderFunction(dictionary: GenerateClass, allSuperTypes: List, allTypes: Set) { - val fields = (dictionary.memberAttributes + allSuperTypes.flatMap { it.memberAttributes }) - .distinctBy { it.signature } - .map { it.copy(kind = AttributeKind.ARGUMENT) } - .dynamicIfUnknownType(allTypes) - .map { if (it.hasNoDefaultValue()) it.copy(initializer = "undefined") else it } - - appendln("@kotlin.internal.InlineOnly") - append("public inline fun ${dictionary.name}") - renderArgumentsDeclaration(fields) - appendln(": ${dictionary.name} {") - - indent(level = 1) - appendln("val o = js(\"({})\")") - appendln() - - for (field in fields) { - indent(level = 1) - - val escapedFieldName = field.name.replaceKeywords() - val nullGuardedAssignment = field.hasNoDefaultValue() - - if (nullGuardedAssignment) { - appendln("if ($escapedFieldName !== undefined) {") - indent(level = 2) - } - - appendln("o[\"${field.name}\"] = $escapedFieldName") - - if (nullGuardedAssignment) { - indent(level = 1) - appendln("}") - } - } - - appendln() - - indent(level = 1) - appendln("return o") - - appendln("}") - appendln() -} - -fun betterFunction(f1: GenerateFunction, f2: GenerateFunction): GenerateFunction = - f1.copy( - arguments = f1.arguments - .zip(f2.arguments) - .map { it.first.copy(type = it.map { it.type }.betterType(), name = it.map { it.name }.betterName()) }, - nativeGetterOrSetter = listOf(f1.nativeGetterOrSetter, f2.nativeGetterOrSetter) - .firstOrNull { it != NativeGetterOrSetter.NONE } ?: NativeGetterOrSetter.NONE - ) - -private fun Pair.map(block: (F) -> T) = block(first) to block(second) -private fun Pair.betterType() = if (first is DynamicType || first is AnyType) first else second -private fun Pair.betterName() = if (((0..9).map(Int::toString) + listOf("arg")).none { first.toLowerCase().contains(it) }) first else second - -private fun merge(a: AttributeKind, b: AttributeKind): AttributeKind { - if (a == b) { - return a - } - - if (a == AttributeKind.VAR || b == AttributeKind.VAR) { - return AttributeKind.VAR - } - - return a -} - -private fun merge(a: GenerateAttribute, b: GenerateAttribute): GenerateAttribute { - require(a.name == b.name) - - val type = when { - a.type.dropNullable() == b.type.dropNullable() -> a.type.withNullability(a.type.nullable || b.type.nullable) - else -> DynamicType - } - - return GenerateAttribute( - a.name, - type, - a.initializer ?: b.initializer, - a.getterSetterNoImpl || b.getterSetterNoImpl, - merge(a.kind, b.kind), - a.override, - a.vararg, - a.static, - a.required || b.required - ) -} - -fun List>.toMultiMap(): Map> = groupBy { it.first }.mapValues { it.value.map { it.second } } - -fun Appendable.render(enumDefinition: EnumDefinition) { - appendln("/* please, don't implement this interface! */") - appendln("public external interface ${enumDefinition.name} {") - indent(level = 1) - appendln("companion object") - appendln("}") - - for (entry in enumDefinition.entries) { - val entryName = mapEnumConstant(entry) - appendln("public inline val ${enumDefinition.name}.Companion.$entryName: ${enumDefinition.name} " + - "get() = \"$entry\".asDynamic().unsafeCast<${enumDefinition.name}>()") - } - - appendln() -} - -fun Appendable.render(namespace: String, ifaces: List, unions: GenerateUnionTypes, enums: List, mdnCache: MDNDocumentationCache) { - val declaredTypes = ifaces.associateBy { it.name } - - val allTypes = declaredTypes + unions.anonymousUnionsMap + unions.typedefsMarkersMap - - declaredTypes.values.filter { it.namespace == namespace }.forEach { - render(allTypes, enums, unions.typeNamesToUnionsMap, it, mdnCache = mdnCache) - } - - unions.anonymousUnionsMap.values.filter { it.namespace == "" || it.namespace == namespace }.forEach { - render(allTypes, enums, emptyMap(), it, markerAnnotation = true) - } - - unions.typedefsMarkersMap.values.filter { it.namespace == "" || it.namespace == namespace }.forEach { - render(allTypes, enums, emptyMap(), it, markerAnnotation = true) - } - - enums.filter { it.namespace == namespace } - .forEach { render(it) } -} - -enum class MemberModality { - OPEN, - ABSTRACT, - OVERRIDE, - FINAL -} diff --git a/libraries/tools/idl2k/src/main/kotlin/typeMappings.kt b/libraries/tools/idl2k/src/main/kotlin/typeMappings.kt deleted file mode 100644 index 7bebab90827..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/typeMappings.kt +++ /dev/null @@ -1,150 +0,0 @@ -/* - * 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 SimpleType("Int", false), - "unsignedlonglong" to SimpleType("Int", false), - "longlong" to SimpleType("Int", false), - "unsignedshort" to SimpleType("Short", false), - "unsignedbyte" to SimpleType("Byte", false), - "octet" to SimpleType("Byte", false), - "void" to UnitType, - "boolean" to SimpleType("Boolean", false), - "byte" to SimpleType("Byte", false), - "short" to SimpleType("Short", false), - "long" to SimpleType("Int", false), - "float" to SimpleType("Float", false), - "double" to SimpleType("Double", false), - "any" to AnyType(true), - "DOMTimeStamp" to SimpleType("Number", false), - "object" to DynamicType, // TODO map to Any? - "WindowProxy" to SimpleType("Window", false), - "USVString" to SimpleType("String", false), - "DOMString" to SimpleType("String", false), - "ByteString" to SimpleType("String", false), - "DOMError" to DynamicType, - "Elements" to DynamicType, - "Date" to SimpleType("Date", false), - "" to DynamicType -) - - -fun GenerateClass.allSuperTypes(all: Map) = LinkedHashSet().let { result -> allSuperTypesImpl(listOf(this), all, result); result.toList() } - -tailrec fun allSuperTypesImpl(roots: List, all: Map, result: MutableSet) { - if (roots.isNotEmpty()) { - allSuperTypesImpl(roots.flatMap { it.superTypes }.map { - all[it] ?: all[it.substringBefore("<")] - }.filterNotNull().filter { result.add(it) }, all, result) - } -} - -fun standardTypes() = typeMapper.values.map { it.dropNullable() }.toSet() -fun Type.dynamicIfUnknownType(allTypes: Set, standardTypes: Set = standardTypes()): Type = when { - this is DynamicType || this is UnitType -> this - - this is SimpleType && this.type in allTypes -> this - this.dropNullable() in standardTypes -> this - this is ArrayType -> copy(memberType = this.memberType.dynamicIfUnknownType(allTypes, standardTypes)) - this is UnionType -> if (this.name !in allTypes) DynamicType else this - this is FunctionType -> copy( - returnType = returnType.dynamicIfUnknownType(allTypes, standardTypes), - parameterTypes = parameterTypes.map { - it.copy( - type = it.type.dynamicIfUnknownType( - allTypes, - standardTypes - ) - ) - }) - this is PromiseType -> - copy(valueType = valueType.dynamicIfUnknownType(allTypes, standardTypes)) - - else -> DynamicType -} - -private fun Type.dynamicIfAnyType(): Type = if (this is AnyType && this.nullable) DynamicType else this - -internal fun mapType(repository: Repository, type: Type): Type = when (type) { - is SimpleType -> { - val typeName = type.type - when { - typeName in typeMapper -> typeMapper[typeName]!!.withNullability(type.nullable) - typeName in repository.interfaces -> type - typeName in repository.typeDefs -> mapTypedef(repository, type) - - else -> type - } - } - is PromiseType -> type.copy(valueType = mapType(repository, type.valueType)) - is ArrayType -> type.copy(memberType = mapType(repository, type.memberType)) - is UnionType -> UnionType( - type.namespace, - type.memberTypes.map { mt -> mapType(repository, mt) }, - type.nullable - ).toSingleTypeIfPossible() - is FunctionType -> type.copy( - // TODO: Remove takeWhile { !vararg } when we have varargs supported. See KT-3115 - returnType = mapType(repository, type.returnType).dynamicIfAnyType(), - parameterTypes = type.parameterTypes.takeWhile { !it.vararg }.map { it.copy(type = mapType(repository, it.type)) } - ) - - is AnyType, - is UnitType, - is DynamicType -> type -} - -private fun mapTypedef(repository: Repository, type: SimpleType): Type { - val typedef = repository.typeDefs[type.type]!! - - return when { - typedef.types is UnionType && typedef.types.memberTypes.size == 1 -> mapType( - repository, - typedef.types.memberTypes.single().withNullability(type.nullable) - ) - typedef.types is UnionType -> SimpleType(typedef.name, type.nullable) - else -> mapType(repository, typedef.types.withNullability(type.nullable)) - } -} - -private fun GenerateFunction?.allTypes() = - if (this != null) sequenceOf(returnType) + arguments.asSequence().map { it.type } else emptySequence() - -internal fun collectUnionTypes(allTypes: Map) = - allTypes.values.asSequence() - .flatMap { - it.secondaryConstructors.asSequence().flatMap { it.constructor.allTypes() } + - sequenceOf(it.primaryConstructor).filterNotNull().flatMap { it.constructor.allTypes() } + - it.memberAttributes.asSequence().map { it.type } + - it.memberFunctions.asSequence().flatMap { it.allTypes() } - } - .filterIsInstance() - .map { it.dropNullable() } - .filter { it.memberTypes.all { unionMember -> unionMember is SimpleType && unionMember.type in allTypes } } - .distinct() - .map { it.copy(namespace = guessPackage(it.memberTypes.filterIsInstance().map { it.type }, allTypes), types = it.memberTypes) } - -private fun guessPackage(types : List, allTypes: Map) = - types.map { allTypes[it] } - .map { it?.namespace } - .filterNotNull() - .filter { it.isNotEmpty() } - .distinct() - .minBy { it.split('.').size } ?: "" diff --git a/libraries/tools/idl2k/src/main/kotlin/types.kt b/libraries/tools/idl2k/src/main/kotlin/types.kt deleted file mode 100644 index ee7163a79b7..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/types.kt +++ /dev/null @@ -1,92 +0,0 @@ -package org.jetbrains.idl2k - -import java.util.* - -sealed class Type { - abstract val nullable: Boolean - abstract fun render(): String -} - -private fun String.appendNullabilitySuffix(type: Type) = if (type.nullable) "$this?" else this - -object UnitType : Type() { - override val nullable: Boolean - get() = false - - override fun render() = "Unit" -} -object DynamicType : Type() { - override val nullable: Boolean - get() = false - - override fun render() = "dynamic" -} -data class AnyType(override val nullable: Boolean = true) : Type() { - override fun render() = "Any".appendNullabilitySuffix(this) -} -data class SimpleType(val type: String, override val nullable: Boolean) : Type() { - override fun render() = type.appendNullabilitySuffix(this) -} -data class FunctionType(val parameterTypes : List, val returnType : Type, override val nullable: Boolean) : Type() { - override fun render() = if (nullable) "(${renderImpl()})?" else renderImpl() - private fun renderImpl() = "(${parameterTypes.joinToString(", ") { it.type.render() }}) -> ${returnType.render()}" -} -data class PromiseType(val valueType: Type, override val nullable: Boolean) : Type() { - override fun render() = "Promise<${valueType.render()}>".appendNullabilitySuffix(this) -} - -val FunctionType.arity : Int - get() = parameterTypes.size - -class UnionType(val namespace: String, types: Collection, override val nullable: Boolean) : Type() { - val memberTypes: Set = LinkedHashSet(types.sortedBy { it.toString() }) - val name = "Union${this.memberTypes.map { it.render() }.joinToString("Or")}" - - operator fun contains(type: Type) = type in memberTypes - override fun equals(other: Any?): Boolean = other is UnionType && memberTypes == other.memberTypes - override fun hashCode(): Int = memberTypes.hashCode() - override fun toString(): String = memberTypes.joinToString(", ", "Union<", ">") - - override fun render(): String = name.appendNullabilitySuffix(this) - - fun copy(namespace: String = this.namespace, types: Collection = this.memberTypes, nullable: Boolean = this.nullable) = - UnionType(namespace, types, nullable) -} - -fun UnionType.toSingleTypeIfPossible() = if (this.memberTypes.size == 1) this.memberTypes.single().withNullability(nullable) else this - -data class ArrayType(val memberType: Type, val mutable: Boolean, override val nullable: Boolean) : Type() { - override fun render(): String = "Array<${if (mutable) "" else "out "}${memberType.render()}>".appendNullabilitySuffix(this) -} - -@Suppress("UNCHECKED_CAST") -private fun T.copyWithNullability(nullable: Boolean): T = when (this) { - is UnitType -> UnitType - is DynamicType -> this - - is AnyType -> this.copy(nullable = nullable) - is SimpleType -> this.copy(nullable = nullable) - is FunctionType -> this.copy(nullable = nullable) - is UnionType -> this.copy(types = this.memberTypes, nullable = nullable) - is ArrayType -> this.copy(nullable = nullable) - is PromiseType -> this.copy(nullable = nullable) - else -> throw UnsupportedOperationException() -} as T - - -private fun T.withNullabilityImpl(nullable: Boolean): T = if (this.nullable == nullable) this else copyWithNullability(nullable) -fun T.withNullability(nullable: Boolean): T = withNullabilityImpl(this.nullable or nullable) -fun T.toNullable(): T = withNullabilityImpl(true) -fun T.dropNullable(): T = withNullabilityImpl(false) - -@Suppress("UNCHECKED_CAST") -fun T.toNullableIfNonPrimitive(): T = when (this) { - is UnitType -> UnitType - is DynamicType -> DynamicType - - is SimpleType -> when (this.type) { - "Int", "Short", "Byte", "Float", "Double", "Boolean", "Long" -> this - else -> this.toNullable() - } - else -> this.toNullable() -} as T \ No newline at end of file diff --git a/libraries/tools/idl2k/src/main/kotlin/util/copyright.kt b/libraries/tools/idl2k/src/main/kotlin/util/copyright.kt deleted file mode 100644 index 43276db2070..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/util/copyright.kt +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.idl2k.util - -import org.xml.sax.InputSource -import java.io.File -import javax.xml.xpath.XPathFactory - -fun readCopyrightNoticeFromProfile(copyrightProfile: File): String { - val template = copyrightProfile.reader().use { reader -> - XPathFactory.newInstance().newXPath().evaluate("/component/copyright/option[@name='notice']/@value", InputSource(reader)) - } - val yearTemplate = "$today.year" - val year = java.time.LocalDate.now().year.toString() - assert(yearTemplate in template) - - return template.replace(yearTemplate, year).lines().joinToString("", prefix = "/*\n", postfix = " */\n") { " * $it\n" } -} \ No newline at end of file diff --git a/libraries/tools/idl2k/src/main/kotlin/util/utils.kt b/libraries/tools/idl2k/src/main/kotlin/util/utils.kt deleted file mode 100644 index 04d83378342..00000000000 --- a/libraries/tools/idl2k/src/main/kotlin/util/utils.kt +++ /dev/null @@ -1,45 +0,0 @@ -package org.jetbrains.idl2k.util - -import java.util.* - -fun List>.mutationsCount() = if (isEmpty()) 0 else fold(1) { acc, e -> acc * e.size } - -fun List>.mutations() : List> { - val indices = IntArray(size) - val sizes = map { it.size } - - fun next() : Boolean { - var carry = 1 - - for (pos in size - 1 downTo 0) { - var index = indices[pos] - val size = sizes[pos] - - index += carry - carry = (index - size + 1).coerceAtLeast(0) - - if (index >= size) { - indices[pos] = index - size - } else { - indices[pos] = index - return true - } - } - - return carry == 0 - } - - val count = mutationsCount() - if (count == 0) { - return emptyList() - } - - val result = ArrayList>(count) - do { - result.add(indices.mapIndexed { pos, index -> this[pos][index] }) - } while (next()) - - return result -} - -fun mapEnumConstant(entry: String) = if (entry.isEmpty()) "EMPTY" else entry.toUpperCase().replace("-", "_") \ 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 deleted file mode 100755 index 5060c56d104..00000000000 --- a/libraries/tools/idl2k/src/main/shell/import-certs.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/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/idl2k/src/test/kotlin/Idl2kTest.kt b/libraries/tools/idl2k/src/test/kotlin/Idl2kTest.kt deleted file mode 100644 index 74de5d30f46..00000000000 --- a/libraries/tools/idl2k/src/test/kotlin/Idl2kTest.kt +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - - -import org.jetbrains.idl2k.BuildWebIdl -import org.jetbrains.idl2k.render -import org.junit.Assert.assertEquals -import org.junit.Test -import java.io.File -import java.io.StringWriter -import java.io.Writer - - -class Idl2kTests { - - - private fun convertIdlToWriter(file: File): Writer { - val nonExistentCache = File.createTempFile("mdnCache", System.nanoTime().toString()) - val buildWebIdl = BuildWebIdl(nonExistentCache, file) - - val stringWriter = StringWriter() - stringWriter.render( - "", - buildWebIdl.definitions, - buildWebIdl.unions, - buildWebIdl.repository.enums.values.toList(), - buildWebIdl.mdnCache - ) - - nonExistentCache.delete() - return stringWriter - } - - private fun assertIdlCompiledTo(fileName: String, expectedOutputName: String) { - val testResourcePrefix = "src/test/resources/" - - assertEquals( - File(testResourcePrefix).resolve(expectedOutputName).readText(), - convertIdlToWriter(File(testResourcePrefix).resolve(fileName)).toString() - ) - } - - @Test - fun basicTest() { - assertIdlCompiledTo( - "SomethingNotInCache.idl", - "SomethingNotInCache.kt" - ) - } -} diff --git a/libraries/tools/idl2k/src/test/resources/SomethingNotInCache.idl b/libraries/tools/idl2k/src/test/resources/SomethingNotInCache.idl deleted file mode 100644 index d1252dd149e..00000000000 --- a/libraries/tools/idl2k/src/test/resources/SomethingNotInCache.idl +++ /dev/null @@ -1,8 +0,0 @@ -[Constructor] -interface SomethingNotInCache { - DOMString someEmptyMethod (); - DOMString someMethod (SomethingUnknown root); - USVString? optionalUsvStringFetcher(USVString name); - readonly attribute WhateverUknownParam someReadOnlyParam; - attribute WhateverUknownParam someWriteableParam; -}; \ No newline at end of file diff --git a/libraries/tools/idl2k/src/test/resources/SomethingNotInCache.kt b/libraries/tools/idl2k/src/test/resources/SomethingNotInCache.kt deleted file mode 100644 index ef71790c824..00000000000 --- a/libraries/tools/idl2k/src/test/resources/SomethingNotInCache.kt +++ /dev/null @@ -1,8 +0,0 @@ -public external open class SomethingNotInCache { - open val someReadOnlyParam: dynamic - var someWriteableParam: dynamic - fun someEmptyMethod(): String - fun someMethod(root: dynamic): String - fun optionalUsvStringFetcher(name: String): String? -} - diff --git a/settings.gradle b/settings.gradle index bfd5e5188d0..13b80442d2e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -75,6 +75,7 @@ include ":kotlin-build-common", ":compiler:android-tests", ":compiler:tests-common", ":compiler:tests-common-jvm6", + ":dukat", ":js:js.ast", ":js:js.serializer", ":js:js.parser", @@ -268,8 +269,6 @@ if (flags.inJpsBuildIdeaSync) { project(":kotlin-stdlib:jps-build").projectDir = "$rootDir/libraries/stdlib/jps-build" as File } else { // modules that we are currently cannot compile with jps - include ":kotlin-idl2k" - project(':kotlin-idl2k').projectDir = file("$rootDir/libraries/tools/idl2k") include ":core:builtins", ":kotlin-stdlib-common", @@ -414,6 +413,7 @@ project(':kotlin-imports-dumper-compiler-plugin').projectDir = "$rootDir/plugins project(':libraries:kotlin-prepush-hook').projectDir = "$rootDir/libraries/tools/kotlin-prepush-hook" as File project(':plugins:jvm-abi-gen').projectDir = "$rootDir/plugins/jvm-abi-gen" as File project(':plugins:jvm-abi-gen-embeddable').projectDir = "$rootDir/plugins/jvm-abi-gen/embeddable" as File +project(":dukat").projectDir = "$rootDir/libraries/tools/dukat" as File project(':js:js.tests').projectDir = "$rootDir/js/js.tests" as File project(':js:js.engines').projectDir = "$rootDir/js/js.engines" as File