From 58b60afb56e105cc08527a90ed8072ab04d8a248 Mon Sep 17 00:00:00 2001 From: cyz1901 <1093491992@qq.com> Date: Sun, 14 Jan 2024 16:06:59 +0800 Subject: [PATCH 1/5] add upgrade whenDefined to CustomElementRegistry --- api-reports/2_12.txt | 2 ++ api-reports/2_13.txt | 2 ++ .../main/scala/org/scalajs/dom/CustomElementRegistry.scala | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index 8a4251625..152ca94e8 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -1442,6 +1442,8 @@ CryptoKey[JC] val usages: js.Array[KeyUsage] CryptoKeyPair[JT] val privateKey: CryptoKey CryptoKeyPair[JT] val publicKey: CryptoKey CustomElementRegistry[JC] def define(name: String, constructor: js.Dynamic, options: ElementDefinitionOptions?): Unit +CustomElementRegistry[JC] def upgrade(root: Node): Unit +CustomElementRegistry[JC] def whenDefined(name: String): js.Promise[Any] CustomEvent[JC] def bubbles: Boolean CustomEvent[JC] def cancelBubble: Boolean CustomEvent[JC] def cancelable: Boolean diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index 8a4251625..152ca94e8 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -1442,6 +1442,8 @@ CryptoKey[JC] val usages: js.Array[KeyUsage] CryptoKeyPair[JT] val privateKey: CryptoKey CryptoKeyPair[JT] val publicKey: CryptoKey CustomElementRegistry[JC] def define(name: String, constructor: js.Dynamic, options: ElementDefinitionOptions?): Unit +CustomElementRegistry[JC] def upgrade(root: Node): Unit +CustomElementRegistry[JC] def whenDefined(name: String): js.Promise[Any] CustomEvent[JC] def bubbles: Boolean CustomEvent[JC] def cancelBubble: Boolean CustomEvent[JC] def cancelable: Boolean diff --git a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala index 0041492b9..5649d588f 100644 --- a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala +++ b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala @@ -18,4 +18,8 @@ abstract class CustomElementRegistry extends js.Object { /** Defines a new custom element. */ def define(name: String, constructor: js.Dynamic, options: ElementDefinitionOptions = js.native): Unit + + def upgrade(root: Node): Unit + + def whenDefined(name: String): js.Promise[Any] } From f6df22595ee9788d3c564b2f8c86bbbc9917fdc7 Mon Sep 17 00:00:00 2001 From: cyz1901 <1093491992@qq.com> Date: Sun, 14 Jan 2024 20:15:45 +0800 Subject: [PATCH 2/5] add get and getName function --- api-reports/2_12.txt | 2 ++ api-reports/2_13.txt | 2 ++ .../main/scala/org/scalajs/dom/CustomElementRegistry.scala | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index 152ca94e8..11351bb80 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -1442,6 +1442,8 @@ CryptoKey[JC] val usages: js.Array[KeyUsage] CryptoKeyPair[JT] val privateKey: CryptoKey CryptoKeyPair[JT] val publicKey: CryptoKey CustomElementRegistry[JC] def define(name: String, constructor: js.Dynamic, options: ElementDefinitionOptions?): Unit +CustomElementRegistry[JC] def get(name: String): js.Dynamic +CustomElementRegistry[JC] def getName(constructor: js.Dynamic): String CustomElementRegistry[JC] def upgrade(root: Node): Unit CustomElementRegistry[JC] def whenDefined(name: String): js.Promise[Any] CustomEvent[JC] def bubbles: Boolean diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index 152ca94e8..11351bb80 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -1442,6 +1442,8 @@ CryptoKey[JC] val usages: js.Array[KeyUsage] CryptoKeyPair[JT] val privateKey: CryptoKey CryptoKeyPair[JT] val publicKey: CryptoKey CustomElementRegistry[JC] def define(name: String, constructor: js.Dynamic, options: ElementDefinitionOptions?): Unit +CustomElementRegistry[JC] def get(name: String): js.Dynamic +CustomElementRegistry[JC] def getName(constructor: js.Dynamic): String CustomElementRegistry[JC] def upgrade(root: Node): Unit CustomElementRegistry[JC] def whenDefined(name: String): js.Promise[Any] CustomEvent[JC] def bubbles: Boolean diff --git a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala index 5649d588f..7c88f86c2 100644 --- a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala +++ b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala @@ -11,11 +11,16 @@ import scala.scalajs.js.annotation._ /** The CustomElementRegistry interface provides methods for registering custom elements and querying registered * elements. To get an instance of it, use the window.customElements property. + * https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry */ @js.native @JSGlobal abstract class CustomElementRegistry extends js.Object { + def get(name: String): js.Dynamic + + def getName(constructor: js.Dynamic): String + /** Defines a new custom element. */ def define(name: String, constructor: js.Dynamic, options: ElementDefinitionOptions = js.native): Unit From a3382523aef7620261763c70c6024c22f5b8d6fa Mon Sep 17 00:00:00 2001 From: Sea <36350890+cyz1901@users.noreply.github.com> Date: Wed, 6 Mar 2024 23:50:20 +0800 Subject: [PATCH 3/5] Update dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala Co-authored-by: zetashift --- .../main/scala/org/scalajs/dom/CustomElementRegistry.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala index 7c88f86c2..efb4271ae 100644 --- a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala +++ b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala @@ -19,7 +19,11 @@ abstract class CustomElementRegistry extends js.Object { def get(name: String): js.Dynamic - def getName(constructor: js.Dynamic): String + /** Returns the name for a previously-defined custom element. + * @param constructor + * Constructor for the custom element. + */ + def getName(constructor: js.Dynamic): String /** Defines a new custom element. */ def define(name: String, constructor: js.Dynamic, options: ElementDefinitionOptions = js.native): Unit From 2b1da952c8466a0fa2b3d05fd4be78cdf9730650 Mon Sep 17 00:00:00 2001 From: Sea <36350890+cyz1901@users.noreply.github.com> Date: Wed, 6 Mar 2024 23:50:28 +0800 Subject: [PATCH 4/5] Update dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala Co-authored-by: zetashift --- dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala index efb4271ae..b8994dca9 100644 --- a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala +++ b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala @@ -17,6 +17,7 @@ import scala.scalajs.js.annotation._ @JSGlobal abstract class CustomElementRegistry extends js.Object { + /** Returns the constructor for a previously-defined custom element. */ def get(name: String): js.Dynamic /** Returns the name for a previously-defined custom element. From b333d618c820a73656a3bd9c81e9e358ffebefe8 Mon Sep 17 00:00:00 2001 From: cyz1901 <1093491992@qq.com> Date: Thu, 7 Mar 2024 00:32:22 +0800 Subject: [PATCH 5/5] format --- .../org/scalajs/dom/CustomElementRegistry.scala | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala index b8994dca9..681fa997c 100644 --- a/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala +++ b/dom/src/main/scala/org/scalajs/dom/CustomElementRegistry.scala @@ -17,19 +17,23 @@ import scala.scalajs.js.annotation._ @JSGlobal abstract class CustomElementRegistry extends js.Object { - /** Returns the constructor for a previously-defined custom element. */ + /** Returns the constructor for a previously-defined custom element. */ def get(name: String): js.Dynamic - /** Returns the name for a previously-defined custom element. - * @param constructor - * Constructor for the custom element. - */ - def getName(constructor: js.Dynamic): String + /** Returns the name for a previously-defined custom element. + * @param constructor + * Constructor for the custom element. + */ + def getName(constructor: js.Dynamic): String /** Defines a new custom element. */ def define(name: String, constructor: js.Dynamic, options: ElementDefinitionOptions = js.native): Unit + /** Upgrades a custom element directly, even before it is connected to its shadow root. */ def upgrade(root: Node): Unit + /** Returns an empty Promise that resolves when a custom element becomes defined with the given name. If such a custom + * element is already defined, the returned promise is immediately fulfilled. + */ def whenDefined(name: String): js.Promise[Any] }