From c1afb38064f377b9b844ba8706e81ee9b7fa7c6b Mon Sep 17 00:00:00 2001 From: Arman Bilge Date: Mon, 6 Sep 2021 04:26:39 +0000 Subject: [PATCH] Migrate DOMParser to dom --- api-reports/2_12.txt | 18 ++++---- api-reports/2_13.txt | 18 ++++---- .../scala/org/scalajs/dom/DOMParser.scala | 41 +++++++++++++++++++ .../experimental/domparser/DOMParser.scala | 31 -------------- .../dom/experimental/domparser/package.scala | 14 +++++++ src/main/scala/org/scalajs/dom/lib.scala | 11 ----- 6 files changed, 75 insertions(+), 58 deletions(-) create mode 100644 src/main/scala/org/scalajs/dom/DOMParser.scala delete mode 100644 src/main/scala/org/scalajs/dom/experimental/domparser/DOMParser.scala create mode 100644 src/main/scala/org/scalajs/dom/experimental/domparser/package.scala diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index 860690d3e..fc5851b30 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -1132,7 +1132,7 @@ DOMList[SO] def hasNext: Boolean DOMList[SO] def iterator: Iterator[T] DOMList[SO] def length: Int DOMList[SO] def next(): T -DOMParser[JC] def parseFromString(source: String, mimeType: String): Document +DOMParser[JC] def parseFromString(string: String, mimeType: MIMEType): Document DOMRect[JC] var bottom: Double DOMRect[JC] var height: Double DOMRect[JC] var left: Double @@ -14165,6 +14165,12 @@ Location[JT] var protocol: String Location[JT] def reload(flag: Boolean?): Unit Location[JT] def replace(url: String): Unit Location[JT] var search: String +MIMEType[JT] +MIMEType[SO] val `application/xhtml+xml` = "application/xhtml+xml".asInstanceOf[MIMEType] +MIMEType[SO] val `application/xml` = "application/xml".asInstanceOf[MIMEType] +MIMEType[SO] val `image/svg+xml` = "image/svg+xml".asInstanceOf[MIMEType] +MIMEType[SO] val `text/html` = "text/html".asInstanceOf[MIMEType] +MIMEType[SO] val `text/xml` = "text/xml".asInstanceOf[MIMEType] MediaElementAudioSourceNode[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit MediaElementAudioSourceNode[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit MediaElementAudioSourceNode[JT] var channelCount: Int @@ -24389,13 +24395,9 @@ experimental/deviceorientation/DeviceOrientationEventInit[JT] var scoped: js.Und experimental/deviceorientation/DeviceRotationRate[JT] val alpha: Double experimental/deviceorientation/DeviceRotationRate[JT] val beta: Double experimental/deviceorientation/DeviceRotationRate[JT] val gamma: Double -experimental/domparser/DOMParser[JC] def parseFromString(string: String, supportedType: SupportedType): Document -experimental/domparser/SupportedType[JT] -experimental/domparser/SupportedType[SO] val `application/xhtml+xml` = "application/xhtml+xml".asInstanceOf[SupportedType] -experimental/domparser/SupportedType[SO] val `application/xml` = "application/xml".asInstanceOf[SupportedType] -experimental/domparser/SupportedType[SO] val `image/svg+xml` = "image/svg+xml".asInstanceOf[SupportedType] -experimental/domparser/SupportedType[SO] val `text/html` = "text/html".asInstanceOf[SupportedType] -experimental/domparser/SupportedType[SO] val `text/xml` = "text/xml".asInstanceOf[SupportedType] +experimental/domparser/package[SO] type DOMParser = dom.DOMParser (@deprecated in 2.0.0) +experimental/domparser/package[SO] type SupportedType = dom.MIMEType (@deprecated in 2.0.0) +experimental/domparser/package[SO] @deprecated("use dom.MIMEType instead", "2.0.0") val SupportedType = dom.MIMEType experimental/gamepad/Gamepad[JT] val axes: js.Array[Double] experimental/gamepad/Gamepad[JT] val buttons: js.Array[GamepadButton] experimental/gamepad/Gamepad[JT] val connected: Boolean diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index 860690d3e..fc5851b30 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -1132,7 +1132,7 @@ DOMList[SO] def hasNext: Boolean DOMList[SO] def iterator: Iterator[T] DOMList[SO] def length: Int DOMList[SO] def next(): T -DOMParser[JC] def parseFromString(source: String, mimeType: String): Document +DOMParser[JC] def parseFromString(string: String, mimeType: MIMEType): Document DOMRect[JC] var bottom: Double DOMRect[JC] var height: Double DOMRect[JC] var left: Double @@ -14165,6 +14165,12 @@ Location[JT] var protocol: String Location[JT] def reload(flag: Boolean?): Unit Location[JT] def replace(url: String): Unit Location[JT] var search: String +MIMEType[JT] +MIMEType[SO] val `application/xhtml+xml` = "application/xhtml+xml".asInstanceOf[MIMEType] +MIMEType[SO] val `application/xml` = "application/xml".asInstanceOf[MIMEType] +MIMEType[SO] val `image/svg+xml` = "image/svg+xml".asInstanceOf[MIMEType] +MIMEType[SO] val `text/html` = "text/html".asInstanceOf[MIMEType] +MIMEType[SO] val `text/xml` = "text/xml".asInstanceOf[MIMEType] MediaElementAudioSourceNode[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit MediaElementAudioSourceNode[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit MediaElementAudioSourceNode[JT] var channelCount: Int @@ -24389,13 +24395,9 @@ experimental/deviceorientation/DeviceOrientationEventInit[JT] var scoped: js.Und experimental/deviceorientation/DeviceRotationRate[JT] val alpha: Double experimental/deviceorientation/DeviceRotationRate[JT] val beta: Double experimental/deviceorientation/DeviceRotationRate[JT] val gamma: Double -experimental/domparser/DOMParser[JC] def parseFromString(string: String, supportedType: SupportedType): Document -experimental/domparser/SupportedType[JT] -experimental/domparser/SupportedType[SO] val `application/xhtml+xml` = "application/xhtml+xml".asInstanceOf[SupportedType] -experimental/domparser/SupportedType[SO] val `application/xml` = "application/xml".asInstanceOf[SupportedType] -experimental/domparser/SupportedType[SO] val `image/svg+xml` = "image/svg+xml".asInstanceOf[SupportedType] -experimental/domparser/SupportedType[SO] val `text/html` = "text/html".asInstanceOf[SupportedType] -experimental/domparser/SupportedType[SO] val `text/xml` = "text/xml".asInstanceOf[SupportedType] +experimental/domparser/package[SO] type DOMParser = dom.DOMParser (@deprecated in 2.0.0) +experimental/domparser/package[SO] type SupportedType = dom.MIMEType (@deprecated in 2.0.0) +experimental/domparser/package[SO] @deprecated("use dom.MIMEType instead", "2.0.0") val SupportedType = dom.MIMEType experimental/gamepad/Gamepad[JT] val axes: js.Array[Double] experimental/gamepad/Gamepad[JT] val buttons: js.Array[GamepadButton] experimental/gamepad/Gamepad[JT] val connected: Boolean diff --git a/src/main/scala/org/scalajs/dom/DOMParser.scala b/src/main/scala/org/scalajs/dom/DOMParser.scala new file mode 100644 index 000000000..6265f015b --- /dev/null +++ b/src/main/scala/org/scalajs/dom/DOMParser.scala @@ -0,0 +1,41 @@ +package org.scalajs.dom + +import scala.scalajs.js +import scala.scalajs.js.annotation._ + +/** The [[DOMParser]] interface provides the ability to parse XML or HTML source code from a string into a DOM Document. + * + * You can perform the opposite operation—converting a DOM tree into XML or HTML source—using the `XMLSerializer` + * interface. + * + * In the case of an HTML document, you can also replace portions of the DOM with new DOM trees built from HTML by + * setting the value of the `Element.innerHTML` and `outerHTML` properties. These properties can also be read to fetch + * HTML fragments corresponding to the corresponding DOM subtree. + * + * Note that `XMLHttpRequest` can parse XML and HTML directly from a URL-addressable resource, returning a Document in + * its response property. + */ +@js.native +@JSGlobal +class DOMParser extends js.Object { + + /** The DOMParser can also be used to parse a SVG document or a HTML document. There are three different results + * possible, selected by the MIME type given. If the MIME type is text/xml, the resulting object will be an + * XMLDocument, if the MIME type is image/svg+xml, it will be an SVGDocument and if the MIME type is text/html, it + * will be an HTMLDocument. + */ + def parseFromString(string: String, mimeType: MIMEType): Document = js.native +} + +@js.native +sealed trait MIMEType extends js.Any + +object MIMEType { + val `text/html` = "text/html".asInstanceOf[MIMEType] + val `text/xml` = "text/xml".asInstanceOf[MIMEType] + val `application/xml` = "application/xml".asInstanceOf[MIMEType] + + val `application/xhtml+xml` = + "application/xhtml+xml".asInstanceOf[MIMEType] + val `image/svg+xml` = "image/svg+xml".asInstanceOf[MIMEType] +} diff --git a/src/main/scala/org/scalajs/dom/experimental/domparser/DOMParser.scala b/src/main/scala/org/scalajs/dom/experimental/domparser/DOMParser.scala deleted file mode 100644 index eb411cf3c..000000000 --- a/src/main/scala/org/scalajs/dom/experimental/domparser/DOMParser.scala +++ /dev/null @@ -1,31 +0,0 @@ -package org.scalajs.dom.experimental.domparser - -import org.scalajs.dom.Document -import scala.scalajs.js -import scala.scalajs.js.annotation._ - -/** DOMParser can parse XML or HTML source stored in a string into a DOM Document. */ -@js.native -@JSGlobal -class DOMParser extends js.Object { - - /** The DOMParser can also be used to parse a SVG document or a HTML document. There are three different results - * possible, selected by the MIME type given. If the MIME type is text/xml, the resulting object will be an - * XMLDocument, if the MIME type is image/svg+xml, it will be an SVGDocument and if the MIME type is text/html, it - * will be an HTMLDocument. - */ - def parseFromString(string: String, supportedType: SupportedType): Document = js.native -} - -@js.native -sealed trait SupportedType extends js.Any - -object SupportedType { - val `text/html` = "text/html".asInstanceOf[SupportedType] - val `text/xml` = "text/xml".asInstanceOf[SupportedType] - val `application/xml` = "application/xml".asInstanceOf[SupportedType] - - val `application/xhtml+xml` = - "application/xhtml+xml".asInstanceOf[SupportedType] - val `image/svg+xml` = "image/svg+xml".asInstanceOf[SupportedType] -} diff --git a/src/main/scala/org/scalajs/dom/experimental/domparser/package.scala b/src/main/scala/org/scalajs/dom/experimental/domparser/package.scala new file mode 100644 index 000000000..03dbfebe2 --- /dev/null +++ b/src/main/scala/org/scalajs/dom/experimental/domparser/package.scala @@ -0,0 +1,14 @@ +package org.scalajs +package dom.experimental + +package object domparser { + + @deprecated("use dom.DOMParser instead", "2.0.0") + type DOMParser = dom.DOMParser + + @deprecated("use dom.MIMEType instead", "2.0.0") + type SupportedType = dom.MIMEType + + @deprecated("use dom.MIMEType instead", "2.0.0") + val SupportedType = dom.MIMEType +} diff --git a/src/main/scala/org/scalajs/dom/lib.scala b/src/main/scala/org/scalajs/dom/lib.scala index cf806d9a8..53eac00bd 100644 --- a/src/main/scala/org/scalajs/dom/lib.scala +++ b/src/main/scala/org/scalajs/dom/lib.scala @@ -3844,17 +3844,6 @@ trait Position extends js.Object { @JSGlobal class PerformanceMark extends PerformanceEntry -/** DOMParser can parse XML or HTML source stored in a string into a DOM Document. DOMParser is specified in DOM Parsing - * and Serialization. - * - * Note that XMLHttpRequest supports parsing XML and HTML from URL-addressable resources. - */ -@js.native -@JSGlobal -class DOMParser extends js.Object { - def parseFromString(source: String, mimeType: String): Document = js.native -} - /** An object implementing the StyleSheet interface represents a single style sheet. CSS style sheets will further * implement the more specialized CSSStyleSheet interface. */