From d86c14243e32e8de2db8a0a9f82aa4d0fd9ed29c Mon Sep 17 00:00:00 2001 From: Alexey Trilis Date: Mon, 10 Aug 2020 18:07:58 +0300 Subject: [PATCH] Add @SinceKotlin to kotlinx.browser and kotlinx.dom packages Add @DeprecatedSinceKotlin to kotlin.browser and kotlin.dom packages --- libraries/stdlib/api/js-v1/kotlin.browser.kt | 4 ++++ libraries/stdlib/api/js-v1/kotlin.dom.kt | 9 +++++++++ libraries/stdlib/api/js-v1/kotlinx.browser.kt | 4 ++++ libraries/stdlib/api/js-v1/kotlinx.dom.kt | 9 +++++++++ libraries/stdlib/api/js/kotlin.browser.kt | 4 ++++ libraries/stdlib/api/js/kotlin.dom.kt | 9 +++++++++ libraries/stdlib/api/js/kotlinx.browser.kt | 4 ++++ libraries/stdlib/api/js/kotlinx.dom.kt | 9 +++++++++ libraries/stdlib/js/src/kotlin/browser/declarations.kt | 4 ++++ libraries/stdlib/js/src/kotlin/dom/Builders.kt | 2 ++ libraries/stdlib/js/src/kotlin/dom/Classes.kt | 3 +++ libraries/stdlib/js/src/kotlin/dom/Dom.kt | 2 ++ libraries/stdlib/js/src/kotlin/dom/Mutations.kt | 2 ++ libraries/stdlib/js/src/kotlinx/browser/declarations.kt | 4 ++++ libraries/stdlib/js/src/kotlinx/dom/Builders.kt | 2 ++ libraries/stdlib/js/src/kotlinx/dom/Classes.kt | 3 +++ libraries/stdlib/js/src/kotlinx/dom/Dom.kt | 2 ++ libraries/stdlib/js/src/kotlinx/dom/Mutations.kt | 2 ++ 18 files changed, 78 insertions(+) diff --git a/libraries/stdlib/api/js-v1/kotlin.browser.kt b/libraries/stdlib/api/js-v1/kotlin.browser.kt index 4f78560b631..e14e1e0d1d3 100644 --- a/libraries/stdlib/api/js-v1/kotlin.browser.kt +++ b/libraries/stdlib/api/js-v1/kotlin.browser.kt @@ -1,15 +1,19 @@ @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.browser.document' instead.", replaceWith = kotlin.ReplaceWith(expression = "document", imports = {"kotlinx.browser.document"})) @kotlin.internal.LowPriorityInOverloadResolution +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public external val document: org.w3c.dom.Document { get; } @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.browser.localStorage' instead.", replaceWith = kotlin.ReplaceWith(expression = "localStorage", imports = {"kotlinx.browser.localStorage"})) @kotlin.internal.LowPriorityInOverloadResolution +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public external val localStorage: org.w3c.dom.Storage { get; } @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.browser.sessionStorage' instead.", replaceWith = kotlin.ReplaceWith(expression = "sessionStorage", imports = {"kotlinx.browser.sessionStorage"})) @kotlin.internal.LowPriorityInOverloadResolution +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public external val sessionStorage: org.w3c.dom.Storage { get; } @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.browser.window' instead.", replaceWith = kotlin.ReplaceWith(expression = "window", imports = {"kotlinx.browser.window"})) @kotlin.internal.LowPriorityInOverloadResolution +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public external val window: org.w3c.dom.Window { get; } \ No newline at end of file diff --git a/libraries/stdlib/api/js-v1/kotlin.dom.kt b/libraries/stdlib/api/js-v1/kotlin.dom.kt index c4f95957c8a..677f40c4636 100644 --- a/libraries/stdlib/api/js-v1/kotlin.dom.kt +++ b/libraries/stdlib/api/js-v1/kotlin.dom.kt @@ -1,35 +1,44 @@ @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.isElement' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.isElement", imports = {"kotlinx.dom.isElement"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public val org.w3c.dom.Node.isElement: kotlin.Boolean { get; } @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.isText' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.isText", imports = {"kotlinx.dom.isText"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public val org.w3c.dom.Node.isText: kotlin.Boolean { get; } @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.addClass' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.addClass(cssClasses)", imports = {"kotlinx.dom.addClass"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.addClass(vararg cssClasses: kotlin.String): kotlin.Boolean @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.appendElement' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.appendElement(name, init)", imports = {"kotlinx.dom.appendElement"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.appendElement(name: kotlin.String, noinline init: org.w3c.dom.Element.() -> kotlin.Unit): org.w3c.dom.Element @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.appendText' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.appendText(text)", imports = {"kotlinx.dom.appendText"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.appendText(text: kotlin.String): org.w3c.dom.Element @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.clear' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.clear()", imports = {"kotlinx.dom.clear"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Node.clear(): kotlin.Unit @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.createElement' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.createElement(name, init)", imports = {"kotlinx.dom.createElement"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Document.createElement(name: kotlin.String, noinline init: org.w3c.dom.Element.() -> kotlin.Unit): org.w3c.dom.Element @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.hasClass' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.hasClass(cssClass)", imports = {"kotlinx.dom.hasClass"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.hasClass(cssClass: kotlin.String): kotlin.Boolean @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.removeClass' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.removeClass(cssClasses)", imports = {"kotlinx.dom.removeClass"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.removeClass(vararg cssClasses: kotlin.String): kotlin.Boolean \ No newline at end of file diff --git a/libraries/stdlib/api/js-v1/kotlinx.browser.kt b/libraries/stdlib/api/js-v1/kotlinx.browser.kt index 169a56b1f33..80f673df1f6 100644 --- a/libraries/stdlib/api/js-v1/kotlinx.browser.kt +++ b/libraries/stdlib/api/js-v1/kotlinx.browser.kt @@ -1,7 +1,11 @@ +@kotlin.SinceKotlin(version = "1.4") public external val document: org.w3c.dom.Document { get; } +@kotlin.SinceKotlin(version = "1.4") public external val localStorage: org.w3c.dom.Storage { get; } +@kotlin.SinceKotlin(version = "1.4") public external val sessionStorage: org.w3c.dom.Storage { get; } +@kotlin.SinceKotlin(version = "1.4") public external val window: org.w3c.dom.Window { get; } \ No newline at end of file diff --git a/libraries/stdlib/api/js-v1/kotlinx.dom.kt b/libraries/stdlib/api/js-v1/kotlinx.dom.kt index cf7c97737fc..ebf8a588b64 100644 --- a/libraries/stdlib/api/js-v1/kotlinx.dom.kt +++ b/libraries/stdlib/api/js-v1/kotlinx.dom.kt @@ -1,17 +1,26 @@ +@kotlin.SinceKotlin(version = "1.4") public val org.w3c.dom.Node.isElement: kotlin.Boolean { get; } +@kotlin.SinceKotlin(version = "1.4") public val org.w3c.dom.Node.isText: kotlin.Boolean { get; } +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.addClass(vararg cssClasses: kotlin.String): kotlin.Boolean +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.appendElement(name: kotlin.String, init: org.w3c.dom.Element.() -> kotlin.Unit): org.w3c.dom.Element +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.appendText(text: kotlin.String): org.w3c.dom.Element +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Node.clear(): kotlin.Unit +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Document.createElement(name: kotlin.String, init: org.w3c.dom.Element.() -> kotlin.Unit): org.w3c.dom.Element +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.hasClass(cssClass: kotlin.String): kotlin.Boolean +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.removeClass(vararg cssClasses: kotlin.String): kotlin.Boolean \ No newline at end of file diff --git a/libraries/stdlib/api/js/kotlin.browser.kt b/libraries/stdlib/api/js/kotlin.browser.kt index 4f78560b631..e14e1e0d1d3 100644 --- a/libraries/stdlib/api/js/kotlin.browser.kt +++ b/libraries/stdlib/api/js/kotlin.browser.kt @@ -1,15 +1,19 @@ @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.browser.document' instead.", replaceWith = kotlin.ReplaceWith(expression = "document", imports = {"kotlinx.browser.document"})) @kotlin.internal.LowPriorityInOverloadResolution +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public external val document: org.w3c.dom.Document { get; } @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.browser.localStorage' instead.", replaceWith = kotlin.ReplaceWith(expression = "localStorage", imports = {"kotlinx.browser.localStorage"})) @kotlin.internal.LowPriorityInOverloadResolution +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public external val localStorage: org.w3c.dom.Storage { get; } @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.browser.sessionStorage' instead.", replaceWith = kotlin.ReplaceWith(expression = "sessionStorage", imports = {"kotlinx.browser.sessionStorage"})) @kotlin.internal.LowPriorityInOverloadResolution +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public external val sessionStorage: org.w3c.dom.Storage { get; } @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.browser.window' instead.", replaceWith = kotlin.ReplaceWith(expression = "window", imports = {"kotlinx.browser.window"})) @kotlin.internal.LowPriorityInOverloadResolution +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public external val window: org.w3c.dom.Window { get; } \ No newline at end of file diff --git a/libraries/stdlib/api/js/kotlin.dom.kt b/libraries/stdlib/api/js/kotlin.dom.kt index c4f95957c8a..677f40c4636 100644 --- a/libraries/stdlib/api/js/kotlin.dom.kt +++ b/libraries/stdlib/api/js/kotlin.dom.kt @@ -1,35 +1,44 @@ @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.isElement' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.isElement", imports = {"kotlinx.dom.isElement"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public val org.w3c.dom.Node.isElement: kotlin.Boolean { get; } @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.isText' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.isText", imports = {"kotlinx.dom.isText"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public val org.w3c.dom.Node.isText: kotlin.Boolean { get; } @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.addClass' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.addClass(cssClasses)", imports = {"kotlinx.dom.addClass"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.addClass(vararg cssClasses: kotlin.String): kotlin.Boolean @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.appendElement' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.appendElement(name, init)", imports = {"kotlinx.dom.appendElement"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.appendElement(name: kotlin.String, noinline init: org.w3c.dom.Element.() -> kotlin.Unit): org.w3c.dom.Element @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.appendText' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.appendText(text)", imports = {"kotlinx.dom.appendText"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.appendText(text: kotlin.String): org.w3c.dom.Element @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.clear' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.clear()", imports = {"kotlinx.dom.clear"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Node.clear(): kotlin.Unit @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.createElement' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.createElement(name, init)", imports = {"kotlinx.dom.createElement"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Document.createElement(name: kotlin.String, noinline init: org.w3c.dom.Element.() -> kotlin.Unit): org.w3c.dom.Element @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.hasClass' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.hasClass(cssClass)", imports = {"kotlinx.dom.hasClass"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.hasClass(cssClass: kotlin.String): kotlin.Boolean @kotlin.internal.LowPriorityInOverloadResolution @kotlin.Deprecated(message = "This API is moved to another package, use 'kotlinx.dom.removeClass' instead.", replaceWith = kotlin.ReplaceWith(expression = "this.removeClass(cssClasses)", imports = {"kotlinx.dom.removeClass"})) +@kotlin.DeprecatedSinceKotlin(warningSince = "1.4") public inline fun org.w3c.dom.Element.removeClass(vararg cssClasses: kotlin.String): kotlin.Boolean \ No newline at end of file diff --git a/libraries/stdlib/api/js/kotlinx.browser.kt b/libraries/stdlib/api/js/kotlinx.browser.kt index 169a56b1f33..80f673df1f6 100644 --- a/libraries/stdlib/api/js/kotlinx.browser.kt +++ b/libraries/stdlib/api/js/kotlinx.browser.kt @@ -1,7 +1,11 @@ +@kotlin.SinceKotlin(version = "1.4") public external val document: org.w3c.dom.Document { get; } +@kotlin.SinceKotlin(version = "1.4") public external val localStorage: org.w3c.dom.Storage { get; } +@kotlin.SinceKotlin(version = "1.4") public external val sessionStorage: org.w3c.dom.Storage { get; } +@kotlin.SinceKotlin(version = "1.4") public external val window: org.w3c.dom.Window { get; } \ No newline at end of file diff --git a/libraries/stdlib/api/js/kotlinx.dom.kt b/libraries/stdlib/api/js/kotlinx.dom.kt index cf7c97737fc..ebf8a588b64 100644 --- a/libraries/stdlib/api/js/kotlinx.dom.kt +++ b/libraries/stdlib/api/js/kotlinx.dom.kt @@ -1,17 +1,26 @@ +@kotlin.SinceKotlin(version = "1.4") public val org.w3c.dom.Node.isElement: kotlin.Boolean { get; } +@kotlin.SinceKotlin(version = "1.4") public val org.w3c.dom.Node.isText: kotlin.Boolean { get; } +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.addClass(vararg cssClasses: kotlin.String): kotlin.Boolean +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.appendElement(name: kotlin.String, init: org.w3c.dom.Element.() -> kotlin.Unit): org.w3c.dom.Element +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.appendText(text: kotlin.String): org.w3c.dom.Element +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Node.clear(): kotlin.Unit +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Document.createElement(name: kotlin.String, init: org.w3c.dom.Element.() -> kotlin.Unit): org.w3c.dom.Element +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.hasClass(cssClass: kotlin.String): kotlin.Boolean +@kotlin.SinceKotlin(version = "1.4") public fun org.w3c.dom.Element.removeClass(vararg cssClasses: kotlin.String): kotlin.Boolean \ No newline at end of file diff --git a/libraries/stdlib/js/src/kotlin/browser/declarations.kt b/libraries/stdlib/js/src/kotlin/browser/declarations.kt index b590a266191..fbbdde6cd9b 100644 --- a/libraries/stdlib/js/src/kotlin/browser/declarations.kt +++ b/libraries/stdlib/js/src/kotlin/browser/declarations.kt @@ -13,6 +13,7 @@ import kotlin.internal.LowPriorityInOverloadResolution replaceWith = ReplaceWith("window", "kotlinx.browser.window") ) @LowPriorityInOverloadResolution +@DeprecatedSinceKotlin(warningSince = "1.4") public external val window: Window @Deprecated( @@ -20,6 +21,7 @@ public external val window: Window replaceWith = ReplaceWith("document", "kotlinx.browser.document") ) @LowPriorityInOverloadResolution +@DeprecatedSinceKotlin(warningSince = "1.4") public external val document: Document @Deprecated( @@ -27,6 +29,7 @@ public external val document: Document replaceWith = ReplaceWith("localStorage", "kotlinx.browser.localStorage") ) @LowPriorityInOverloadResolution +@DeprecatedSinceKotlin(warningSince = "1.4") public external val localStorage: Storage @Deprecated( @@ -34,5 +37,6 @@ public external val localStorage: Storage replaceWith = ReplaceWith("sessionStorage", "kotlinx.browser.sessionStorage") ) @LowPriorityInOverloadResolution +@DeprecatedSinceKotlin(warningSince = "1.4") public external val sessionStorage: Storage diff --git a/libraries/stdlib/js/src/kotlin/dom/Builders.kt b/libraries/stdlib/js/src/kotlin/dom/Builders.kt index 04487f47928..41032875610 100644 --- a/libraries/stdlib/js/src/kotlin/dom/Builders.kt +++ b/libraries/stdlib/js/src/kotlin/dom/Builders.kt @@ -21,6 +21,7 @@ import kotlinx.dom.createElement as newCreateElement message = "This API is moved to another package, use 'kotlinx.dom.createElement' instead.", replaceWith = ReplaceWith("this.createElement(name, init)", "kotlinx.dom.createElement") ) +@DeprecatedSinceKotlin(warningSince = "1.4") public inline fun Document.createElement(name: String, noinline init: Element.() -> Unit): Element = this.newCreateElement(name, init) /** @@ -33,5 +34,6 @@ public inline fun Document.createElement(name: String, noinline init: Element.() message = "This API is moved to another package, use 'kotlinx.dom.appendElement' instead.", replaceWith = ReplaceWith("this.appendElement(name, init)", "kotlinx.dom.appendElement") ) +@DeprecatedSinceKotlin(warningSince = "1.4") public inline fun Element.appendElement(name: String, noinline init: Element.() -> Unit): Element = this.newAppendElement(name, init) diff --git a/libraries/stdlib/js/src/kotlin/dom/Classes.kt b/libraries/stdlib/js/src/kotlin/dom/Classes.kt index b326a21392e..a93d283ea25 100644 --- a/libraries/stdlib/js/src/kotlin/dom/Classes.kt +++ b/libraries/stdlib/js/src/kotlin/dom/Classes.kt @@ -17,6 +17,7 @@ import kotlinx.dom.removeClass as newRemoveClass message = "This API is moved to another package, use 'kotlinx.dom.hasClass' instead.", replaceWith = ReplaceWith("this.hasClass(cssClass)", "kotlinx.dom.hasClass") ) +@DeprecatedSinceKotlin(warningSince = "1.4") inline fun Element.hasClass(cssClass: String): Boolean = this.newHasClass(cssClass) /** @@ -29,6 +30,7 @@ inline fun Element.hasClass(cssClass: String): Boolean = this.newHasClass(cssCla message = "This API is moved to another package, use 'kotlinx.dom.addClass' instead.", replaceWith = ReplaceWith("this.addClass(cssClasses)", "kotlinx.dom.addClass") ) +@DeprecatedSinceKotlin(warningSince = "1.4") inline fun Element.addClass(vararg cssClasses: String): Boolean = this.newAddClass(*cssClasses) /** @@ -41,4 +43,5 @@ inline fun Element.addClass(vararg cssClasses: String): Boolean = this.newAddCla message = "This API is moved to another package, use 'kotlinx.dom.removeClass' instead.", replaceWith = ReplaceWith("this.removeClass(cssClasses)", "kotlinx.dom.removeClass") ) +@DeprecatedSinceKotlin(warningSince = "1.4") inline fun Element.removeClass(vararg cssClasses: String): Boolean = this.newRemoveClass(*cssClasses) \ No newline at end of file diff --git a/libraries/stdlib/js/src/kotlin/dom/Dom.kt b/libraries/stdlib/js/src/kotlin/dom/Dom.kt index bcfb0ae761f..f48d69c345e 100644 --- a/libraries/stdlib/js/src/kotlin/dom/Dom.kt +++ b/libraries/stdlib/js/src/kotlin/dom/Dom.kt @@ -19,6 +19,7 @@ import kotlinx.dom.isText as newIsText message = "This API is moved to another package, use 'kotlinx.dom.isText' instead.", replaceWith = ReplaceWith("this.isText", "kotlinx.dom.isText") ) +@DeprecatedSinceKotlin(warningSince = "1.4") public val Node.isText: Boolean inline get() = this.newIsText @@ -30,5 +31,6 @@ public val Node.isText: Boolean message = "This API is moved to another package, use 'kotlinx.dom.isElement' instead.", replaceWith = ReplaceWith("this.isElement", "kotlinx.dom.isElement") ) +@DeprecatedSinceKotlin(warningSince = "1.4") public val Node.isElement: Boolean inline get() = this.newIsElement diff --git a/libraries/stdlib/js/src/kotlin/dom/Mutations.kt b/libraries/stdlib/js/src/kotlin/dom/Mutations.kt index 6dd22a3d382..c73391e4bc0 100644 --- a/libraries/stdlib/js/src/kotlin/dom/Mutations.kt +++ b/libraries/stdlib/js/src/kotlin/dom/Mutations.kt @@ -17,6 +17,7 @@ import kotlinx.dom.clear as newClear message = "This API is moved to another package, use 'kotlinx.dom.clear' instead.", replaceWith = ReplaceWith("this.clear()", "kotlinx.dom.clear") ) +@DeprecatedSinceKotlin(warningSince = "1.4") public inline fun Node.clear() = this.newClear() /** @@ -29,4 +30,5 @@ public inline fun Node.clear() = this.newClear() message = "This API is moved to another package, use 'kotlinx.dom.appendText' instead.", replaceWith = ReplaceWith("this.appendText(text)", "kotlinx.dom.appendText") ) +@DeprecatedSinceKotlin(warningSince = "1.4") inline fun Element.appendText(text: String): Element = this.newAppendText(text) diff --git a/libraries/stdlib/js/src/kotlinx/browser/declarations.kt b/libraries/stdlib/js/src/kotlinx/browser/declarations.kt index a33bada9067..702b834c6d7 100644 --- a/libraries/stdlib/js/src/kotlinx/browser/declarations.kt +++ b/libraries/stdlib/js/src/kotlinx/browser/declarations.kt @@ -7,11 +7,15 @@ package kotlinx.browser import org.w3c.dom.* +@SinceKotlin("1.4") public external val window: Window +@SinceKotlin("1.4") public external val document: Document +@SinceKotlin("1.4") public external val localStorage: Storage +@SinceKotlin("1.4") public external val sessionStorage: Storage diff --git a/libraries/stdlib/js/src/kotlinx/dom/Builders.kt b/libraries/stdlib/js/src/kotlinx/dom/Builders.kt index 95ac70a1604..6cbf2bc6c8f 100644 --- a/libraries/stdlib/js/src/kotlinx/dom/Builders.kt +++ b/libraries/stdlib/js/src/kotlinx/dom/Builders.kt @@ -13,6 +13,7 @@ import kotlin.contracts.* * * The element is initialized with the specified [init] function. */ +@SinceKotlin("1.4") public fun Document.createElement(name: String, init: Element.() -> Unit): Element { contract { callsInPlace(init, InvocationKind.EXACTLY_ONCE) } return createElement(name).apply(init) @@ -23,6 +24,7 @@ public fun Document.createElement(name: String, init: Element.() -> Unit): Eleme * * The element is initialized with the specified [init] function. */ +@SinceKotlin("1.4") public fun Element.appendElement(name: String, init: Element.() -> Unit): Element { contract { callsInPlace(init, InvocationKind.EXACTLY_ONCE) } return ownerDocument!!.createElement(name, init).also { appendChild(it) } diff --git a/libraries/stdlib/js/src/kotlinx/dom/Classes.kt b/libraries/stdlib/js/src/kotlinx/dom/Classes.kt index ef65cc1a5c3..13eb8e90133 100644 --- a/libraries/stdlib/js/src/kotlinx/dom/Classes.kt +++ b/libraries/stdlib/js/src/kotlinx/dom/Classes.kt @@ -8,6 +8,7 @@ package kotlinx.dom import org.w3c.dom.* /** Returns true if the element has the given CSS class style in its 'class' attribute */ +@SinceKotlin("1.4") fun Element.hasClass(cssClass: String): Boolean = className.matches("""(^|.*\s+)$cssClass($|\s+.*)""".toRegex()) /** @@ -15,6 +16,7 @@ fun Element.hasClass(cssClass: String): Boolean = className.matches("""(^|.*\s+) * * @return true if at least one class has been added */ +@SinceKotlin("1.4") fun Element.addClass(vararg cssClasses: String): Boolean { val missingClasses = cssClasses.filterNot { hasClass(it) } if (missingClasses.isNotEmpty()) { @@ -37,6 +39,7 @@ fun Element.addClass(vararg cssClasses: String): Boolean { * * @return true if at least one class has been removed */ +@SinceKotlin("1.4") fun Element.removeClass(vararg cssClasses: String): Boolean { if (cssClasses.any { hasClass(it) }) { val toBeRemoved = cssClasses.toSet() diff --git a/libraries/stdlib/js/src/kotlinx/dom/Dom.kt b/libraries/stdlib/js/src/kotlinx/dom/Dom.kt index 66154e9fd7c..7cd902e8ae5 100644 --- a/libraries/stdlib/js/src/kotlinx/dom/Dom.kt +++ b/libraries/stdlib/js/src/kotlinx/dom/Dom.kt @@ -10,11 +10,13 @@ import org.w3c.dom.* /** * Gets a value indicating whether this node is a TEXT_NODE or a CDATA_SECTION_NODE. */ +@SinceKotlin("1.4") public val Node.isText: Boolean get() = nodeType == Node.TEXT_NODE || nodeType == Node.CDATA_SECTION_NODE /** * Gets a value indicating whether this node is an [Element]. */ +@SinceKotlin("1.4") public val Node.isElement: Boolean get() = nodeType == Node.ELEMENT_NODE diff --git a/libraries/stdlib/js/src/kotlinx/dom/Mutations.kt b/libraries/stdlib/js/src/kotlinx/dom/Mutations.kt index 52e98fedd7f..1f942cf7399 100644 --- a/libraries/stdlib/js/src/kotlinx/dom/Mutations.kt +++ b/libraries/stdlib/js/src/kotlinx/dom/Mutations.kt @@ -8,6 +8,7 @@ package kotlinx.dom import org.w3c.dom.* /** Removes all the children from this node. */ +@SinceKotlin("1.4") public fun Node.clear() { while (hasChildNodes()) { removeChild(firstChild!!) @@ -19,6 +20,7 @@ public fun Node.clear() { * * @return this element */ +@SinceKotlin("1.4") fun Element.appendText(text: String): Element { appendChild(ownerDocument!!.createTextNode(text)) return this