From 5f5b585c7328328494f13802a4600ed9d5f7c54a Mon Sep 17 00:00:00 2001 From: nojaf <florian.verdonck@outlook.com> Date: Mon, 18 Nov 2024 10:39:23 +0100 Subject: [PATCH 1/3] Proof of concept querySelector helpers --- README.md | 2 +- docs/content/docs/index.mdx | 4 +- src/DOMAPI/Document.js | 12 +++++- src/DOMAPI/Document.res | 9 ++-- src/DOMAPI/FillStyle.js | 8 ++-- src/DOMAPI/HTMLCanvasElement.js | 11 ++++- src/DOMAPI/HTMLCanvasElement.res | 1 + src/DOMAPI/QuerySelector.js | 22 ++++++++++ src/DOMAPI/QuerySelector.res | 36 ++++++++++++++++ tests/DOMAPI/HTMLCanvasElement__tes.js | 55 +++++++++++-------------- tests/DOMAPI/HTMLCanvasElement__tes.res | 31 +++++++------- 11 files changed, 132 insertions(+), 59 deletions(-) create mode 100644 src/DOMAPI/QuerySelector.js create mode 100644 src/DOMAPI/QuerySelector.res diff --git a/README.md b/README.md index 667fcf7..54c0e16 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Experimental successor to [rescript-webapi](https://github.com/TheSpyder/rescrip Install the package using your favorite package manager: ```shell -npm i -D @rescript/webapi@experimental +npm i @rescript/webapi@experimental ``` and add `@rescript/webapi` to your `rescript.json`: diff --git a/docs/content/docs/index.mdx b/docs/content/docs/index.mdx index 87c4d2c..15d4e4a 100644 --- a/docs/content/docs/index.mdx +++ b/docs/content/docs/index.mdx @@ -30,14 +30,14 @@ Install the package using your favorite package manager: <Code lang="shell" frame="none" - code="npm i -D @rescript/webapi@experimental" + code="npm i @rescript/webapi@experimental" /> </TabItem> <TabItem label="bun"> <Code lang="shell" frame="none" - code="bun i -D @rescript/webapi@experimental" + code="bun i @rescript/webapi@experimental" /> </TabItem> </Tabs> diff --git a/src/DOMAPI/Document.js b/src/DOMAPI/Document.js index d856702..c6e4ad6 100644 --- a/src/DOMAPI/Document.js +++ b/src/DOMAPI/Document.js @@ -1,2 +1,12 @@ // Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ + +import * as QuerySelector$WebAPI from "./QuerySelector.js"; + +let include = QuerySelector$WebAPI.Impl({}); + +let querySelector_htmlCanvasElement = include.querySelector_htmlCanvasElement; + +export { + querySelector_htmlCanvasElement, +} +/* include Not a pure module */ diff --git a/src/DOMAPI/Document.res b/src/DOMAPI/Document.res index 8501ac2..c54b183 100644 --- a/src/DOMAPI/Document.res +++ b/src/DOMAPI/Document.res @@ -77,12 +77,9 @@ Throws a "HierarchyRequestError" DOMException if the constraints of the node tre @send external replaceChildren2: (document, string) => unit = "replaceChildren" -/** -Returns the first element that is a descendant of node that matches selectors. -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector) -*/ -@send -external querySelector: (document, string) => element = "querySelector" +include QuerySelector.Impl({ + type t = document +}) /** Returns all element descendants of node that match selectors. diff --git a/src/DOMAPI/FillStyle.js b/src/DOMAPI/FillStyle.js index 1e79cc4..d12dfc1 100644 --- a/src/DOMAPI/FillStyle.js +++ b/src/DOMAPI/FillStyle.js @@ -1,15 +1,15 @@ // Generated by ReScript, PLEASE EDIT WITH CARE -import * as CanvasPattern$WebApi from "../CanvasAPI/CanvasPattern.js"; -import * as CanvasGradient$WebApi from "../CanvasAPI/CanvasGradient.js"; +import * as CanvasPattern$WebAPI from "../CanvasAPI/CanvasPattern.js"; +import * as CanvasGradient$WebAPI from "../CanvasAPI/CanvasGradient.js"; function decode(t) { - if (CanvasGradient$WebApi.isInstanceOf(t)) { + if (CanvasGradient$WebAPI.isInstanceOf(t)) { return { TAG: "CanvasGradient", _0: t }; - } else if (CanvasPattern$WebApi.isInstanceOf(t)) { + } else if (CanvasPattern$WebAPI.isInstanceOf(t)) { return { TAG: "CanvasPattern", _0: t diff --git a/src/DOMAPI/HTMLCanvasElement.js b/src/DOMAPI/HTMLCanvasElement.js index d856702..25f61a2 100644 --- a/src/DOMAPI/HTMLCanvasElement.js +++ b/src/DOMAPI/HTMLCanvasElement.js @@ -1,2 +1,11 @@ // Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ + + +function isInstanceOf(param) { + return (param instanceof HTMLCanvasElement); +} + +export { + isInstanceOf, +} +/* No side effect */ diff --git a/src/DOMAPI/HTMLCanvasElement.res b/src/DOMAPI/HTMLCanvasElement.res index 6fcc4da..4ef7d6d 100644 --- a/src/DOMAPI/HTMLCanvasElement.res +++ b/src/DOMAPI/HTMLCanvasElement.res @@ -8,6 +8,7 @@ external asHTMLElement: htmlCanvasElement => htmlElement = "%identity" external asElement: htmlCanvasElement => element = "%identity" external asNode: htmlCanvasElement => node = "%identity" external asEventTarget: htmlCanvasElement => eventTarget = "%identity" +let isInstanceOf = (_: 't): bool => %raw(`param instanceof HTMLCanvasElement`) /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/QuerySelector.js b/src/DOMAPI/QuerySelector.js new file mode 100644 index 0000000..70b1bd8 --- /dev/null +++ b/src/DOMAPI/QuerySelector.js @@ -0,0 +1,22 @@ +// Generated by ReScript, PLEASE EDIT WITH CARE + +import * as HTMLCanvasElement$WebAPI from "./HTMLCanvasElement.js"; + +function Impl(T) { + let querySelector_htmlCanvasElement = (t, selector) => { + let e = t.querySelector(selector); + if (e === null || !HTMLCanvasElement$WebAPI.isInstanceOf(e)) { + return; + } else { + return e; + } + }; + return { + querySelector_htmlCanvasElement: querySelector_htmlCanvasElement + }; +} + +export { + Impl, +} +/* No side effect */ diff --git a/src/DOMAPI/QuerySelector.res b/src/DOMAPI/QuerySelector.res new file mode 100644 index 0000000..096ff96 --- /dev/null +++ b/src/DOMAPI/QuerySelector.res @@ -0,0 +1,36 @@ +open Prelude +open DOMAPI + +module Impl = ( + T: { + type t + }, +) => { + /** +`querySelector(T.t, string)` + +Returns the first element that is a descendant of node that matches selectors. +If nothing matches, the result is `null`. Use `querySelector_` helpers to get a typed result. + +```res +t->querySelector("#myCanvas") +``` + +[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector) + */ + @send + external querySelector: (T.t, string) => null<element> = "querySelector" + + let querySelector_htmlCanvasElement = (t: T.t, selector: string): option<htmlCanvasElement> => { + let e = querySelector(t, selector) + switch e { + | Null.Null => None + | Null.Value(e) => + if HTMLCanvasElement.isInstanceOf(e) { + Some(unsafeConversation(e)) + } else { + None + } + } + } +} diff --git a/tests/DOMAPI/HTMLCanvasElement__tes.js b/tests/DOMAPI/HTMLCanvasElement__tes.js index c135597..29e9f6a 100644 --- a/tests/DOMAPI/HTMLCanvasElement__tes.js +++ b/tests/DOMAPI/HTMLCanvasElement__tes.js @@ -1,39 +1,34 @@ // Generated by ReScript, PLEASE EDIT WITH CARE +import * as Option from "rescript/lib/es6/Option.js"; +import * as Document$WebAPI from "../../src/DOMAPI/Document.js"; import * as FillStyle$WebAPI from "../../src/DOMAPI/FillStyle.js"; -let myCanvas = document.getElementById("myCanvas"); - -let ctx = myCanvas.getContext("2d"); - -ctx.fillStyle = "red"; - -ctx.fillRect(50, 50, 200, 200); - -ctx.fillStyle = "black"; - -ctx.font = "2px Tahoma"; - -ctx.textBaseline = "top"; - -ctx.fillText("MY TEXT", 60, 60); - -let color = FillStyle$WebAPI.decode(ctx.fillStyle); - -switch (color.TAG) { - case "String" : - console.log("Color: " + color._0); - break; - case "CanvasGradient" : - console.log("CanvasGradient"); - break; - case "CanvasPattern" : - console.log("CanvasPattern"); - break; -} +let myCanvas = Document$WebAPI.querySelector_htmlCanvasElement(document, "#myCanvas"); + +Option.forEach(myCanvas, myCanvas => { + let ctx = myCanvas.getContext("2d"); + ctx.fillStyle = "red"; + ctx.fillRect(50, 50, 200, 200); + ctx.fillStyle = "black"; + ctx.font = "2px Tahoma"; + ctx.textBaseline = "top"; + ctx.fillText("MY TEXT", 60, 60); + let color = FillStyle$WebAPI.decode(ctx.fillStyle); + switch (color.TAG) { + case "String" : + console.log("Color: " + color._0); + return; + case "CanvasGradient" : + console.log("CanvasGradient"); + return; + case "CanvasPattern" : + console.log("CanvasPattern"); + return; + } +}); export { myCanvas, - ctx, } /* myCanvas Not a pure module */ diff --git a/tests/DOMAPI/HTMLCanvasElement__tes.res b/tests/DOMAPI/HTMLCanvasElement__tes.res index 920340b..a99fa9c 100644 --- a/tests/DOMAPI/HTMLCanvasElement__tes.res +++ b/tests/DOMAPI/HTMLCanvasElement__tes.res @@ -1,19 +1,22 @@ open WebAPI.Global -let myCanvas: DOMAPI.htmlCanvasElement = - document->Document.getElementById("myCanvas")->Prelude.unsafeConversation -let ctx = myCanvas->HTMLCanvasElement.getContext_2D +let myCanvas: option<DOMAPI.htmlCanvasElement> = + document->Document.querySelector_htmlCanvasElement("#myCanvas") -ctx.fillStyle = FillStyle.fromString("red") -ctx->CanvasRenderingContext2D.fillRect(~x=50., ~y=50., ~w=200., ~h=200.) +myCanvas->Option.forEach(myCanvas => { + let ctx = myCanvas->HTMLCanvasElement.getContext_2D -ctx.fillStyle = FillStyle.fromString("black") -ctx.font = "2px Tahoma" -ctx.textBaseline = CanvasAPI.Top -ctx->CanvasRenderingContext2D.fillText(~text="MY TEXT", ~x=60., ~y=60.) + ctx.fillStyle = FillStyle.fromString("red") + ctx->CanvasRenderingContext2D.fillRect(~x=50., ~y=50., ~w=200., ~h=200.) -switch ctx.fillStyle->FillStyle.decode { -| FillStyle.String(color) => Console.log(`Color: ${color}`) -| FillStyle.CanvasGradient(_) => Console.log("CanvasGradient") -| FillStyle.CanvasPattern(_) => Console.log("CanvasPattern") -} + ctx.fillStyle = FillStyle.fromString("black") + ctx.font = "2px Tahoma" + ctx.textBaseline = CanvasAPI.Top + ctx->CanvasRenderingContext2D.fillText(~text="MY TEXT", ~x=60., ~y=60.) + + switch ctx.fillStyle->FillStyle.decode { + | FillStyle.String(color) => Console.log(`Color: ${color}`) + | FillStyle.CanvasGradient(_) => Console.log("CanvasGradient") + | FillStyle.CanvasPattern(_) => Console.log("CanvasPattern") + } +}) From 374f47c5407fb7ec5c4d1860151f1d0a90c717bd Mon Sep 17 00:00:00 2001 From: nojaf <florian.verdonck@outlook.com> Date: Mon, 18 Nov 2024 11:56:17 +0100 Subject: [PATCH 2/3] Add example about querySelector usage in inherited interfaces. --- src/DOMAPI/Document.js | 6 ++++++ src/DOMAPI/HTMLCanvasElement.js | 11 +---------- src/DOMAPI/HTMLCanvasElement.res | 2 +- src/DOMAPI/HTMLDivElement.js | 18 +++++++++++++++++- src/DOMAPI/HTMLDivElement.res | 9 +++------ src/DOMAPI/QuerySelector.js | 24 +++++++++++++++++++----- src/DOMAPI/QuerySelector.res | 20 +++++++++++++------- tests/DOMAPI/HTMLCanvasElement__tes.js | 8 ++++++-- tests/DOMAPI/HTMLCanvasElement__tes.res | 4 +++- 9 files changed, 69 insertions(+), 33 deletions(-) diff --git a/src/DOMAPI/Document.js b/src/DOMAPI/Document.js index c6e4ad6..e8c547a 100644 --- a/src/DOMAPI/Document.js +++ b/src/DOMAPI/Document.js @@ -4,9 +4,15 @@ import * as QuerySelector$WebAPI from "./QuerySelector.js"; let include = QuerySelector$WebAPI.Impl({}); +let safeQuerySelector = include.safeQuerySelector; + let querySelector_htmlCanvasElement = include.querySelector_htmlCanvasElement; +let querySelector_htmlDivElement = include.querySelector_htmlDivElement; + export { + safeQuerySelector, querySelector_htmlCanvasElement, + querySelector_htmlDivElement, } /* include Not a pure module */ diff --git a/src/DOMAPI/HTMLCanvasElement.js b/src/DOMAPI/HTMLCanvasElement.js index 25f61a2..d856702 100644 --- a/src/DOMAPI/HTMLCanvasElement.js +++ b/src/DOMAPI/HTMLCanvasElement.js @@ -1,11 +1,2 @@ // Generated by ReScript, PLEASE EDIT WITH CARE - - -function isInstanceOf(param) { - return (param instanceof HTMLCanvasElement); -} - -export { - isInstanceOf, -} -/* No side effect */ +/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/src/DOMAPI/HTMLCanvasElement.res b/src/DOMAPI/HTMLCanvasElement.res index 4ef7d6d..4d089cc 100644 --- a/src/DOMAPI/HTMLCanvasElement.res +++ b/src/DOMAPI/HTMLCanvasElement.res @@ -8,7 +8,7 @@ external asHTMLElement: htmlCanvasElement => htmlElement = "%identity" external asElement: htmlCanvasElement => element = "%identity" external asNode: htmlCanvasElement => node = "%identity" external asEventTarget: htmlCanvasElement => eventTarget = "%identity" -let isInstanceOf = (_: 't): bool => %raw(`param instanceof HTMLCanvasElement`) + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLDivElement.js b/src/DOMAPI/HTMLDivElement.js index d856702..e8c547a 100644 --- a/src/DOMAPI/HTMLDivElement.js +++ b/src/DOMAPI/HTMLDivElement.js @@ -1,2 +1,18 @@ // Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ + +import * as QuerySelector$WebAPI from "./QuerySelector.js"; + +let include = QuerySelector$WebAPI.Impl({}); + +let safeQuerySelector = include.safeQuerySelector; + +let querySelector_htmlCanvasElement = include.querySelector_htmlCanvasElement; + +let querySelector_htmlDivElement = include.querySelector_htmlDivElement; + +export { + safeQuerySelector, + querySelector_htmlCanvasElement, + querySelector_htmlDivElement, +} +/* include Not a pure module */ diff --git a/src/DOMAPI/HTMLDivElement.res b/src/DOMAPI/HTMLDivElement.res index cfc7b51..a4732a0 100644 --- a/src/DOMAPI/HTMLDivElement.res +++ b/src/DOMAPI/HTMLDivElement.res @@ -72,12 +72,9 @@ Throws a "HierarchyRequestError" DOMException if the constraints of the node tre @send external replaceChildren2: (htmlDivElement, string) => unit = "replaceChildren" -/** -Returns the first element that is a descendant of node that matches selectors. -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/querySelector) -*/ -@send -external querySelector: (htmlDivElement, string) => element = "querySelector" +include QuerySelector.Impl({ + type t = htmlDivElement +}) /** Returns all element descendants of node that match selectors. diff --git a/src/DOMAPI/QuerySelector.js b/src/DOMAPI/QuerySelector.js index 70b1bd8..7e84cac 100644 --- a/src/DOMAPI/QuerySelector.js +++ b/src/DOMAPI/QuerySelector.js @@ -1,22 +1,36 @@ // Generated by ReScript, PLEASE EDIT WITH CARE -import * as HTMLCanvasElement$WebAPI from "./HTMLCanvasElement.js"; +import * as Primitive_option from "rescript/lib/es6/Primitive_option.js"; + +function isInstanceOfHTMLCanvasElement(param) { + return (param instanceof HTMLCanvasElement); +} + +function isInstanceOfHTMLDivElement(param) { + return (param instanceof HTMLDivElement); +} function Impl(T) { - let querySelector_htmlCanvasElement = (t, selector) => { + let safeQuerySelector = (predicate, t, selector) => { let e = t.querySelector(selector); - if (e === null || !HTMLCanvasElement$WebAPI.isInstanceOf(e)) { + if (e === null || !predicate(t)) { return; } else { - return e; + return Primitive_option.some(e); } }; + let querySelector_htmlCanvasElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLCanvasElement, t, selector); + let querySelector_htmlDivElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLDivElement, t, selector); return { - querySelector_htmlCanvasElement: querySelector_htmlCanvasElement + safeQuerySelector: safeQuerySelector, + querySelector_htmlCanvasElement: querySelector_htmlCanvasElement, + querySelector_htmlDivElement: querySelector_htmlDivElement }; } export { + isInstanceOfHTMLCanvasElement, + isInstanceOfHTMLDivElement, Impl, } /* No side effect */ diff --git a/src/DOMAPI/QuerySelector.res b/src/DOMAPI/QuerySelector.res index 096ff96..32b29da 100644 --- a/src/DOMAPI/QuerySelector.res +++ b/src/DOMAPI/QuerySelector.res @@ -1,6 +1,9 @@ open Prelude open DOMAPI +let isInstanceOfHTMLCanvasElement = (_: 't): bool => %raw(`param instanceof HTMLCanvasElement`) +let isInstanceOfHTMLDivElement = (_: 't): bool => %raw(`param instanceof HTMLDivElement`) + module Impl = ( T: { type t @@ -21,16 +24,19 @@ t->querySelector("#myCanvas") @send external querySelector: (T.t, string) => null<element> = "querySelector" - let querySelector_htmlCanvasElement = (t: T.t, selector: string): option<htmlCanvasElement> => { + let safeQuerySelector = (predicate: T.t => bool, t: T.t, selector: string): option<'return> => { let e = querySelector(t, selector) switch e { | Null.Null => None - | Null.Value(e) => - if HTMLCanvasElement.isInstanceOf(e) { - Some(unsafeConversation(e)) - } else { - None - } + | Null.Value(e) => predicate(t) ? Some(unsafeConversation(e)) : None } } + + let querySelector_htmlCanvasElement = (t: T.t, selector: string): option<htmlCanvasElement> => { + safeQuerySelector(isInstanceOfHTMLCanvasElement, t, selector) + } + + let querySelector_htmlDivElement = (t: T.t, selector: string): option<htmlDivElement> => { + safeQuerySelector(isInstanceOfHTMLDivElement, t, selector) + } } diff --git a/tests/DOMAPI/HTMLCanvasElement__tes.js b/tests/DOMAPI/HTMLCanvasElement__tes.js index 29e9f6a..f1e62e4 100644 --- a/tests/DOMAPI/HTMLCanvasElement__tes.js +++ b/tests/DOMAPI/HTMLCanvasElement__tes.js @@ -3,8 +3,11 @@ import * as Option from "rescript/lib/es6/Option.js"; import * as Document$WebAPI from "../../src/DOMAPI/Document.js"; import * as FillStyle$WebAPI from "../../src/DOMAPI/FillStyle.js"; +import * as HTMLDivElement$WebAPI from "../../src/DOMAPI/HTMLDivElement.js"; -let myCanvas = Document$WebAPI.querySelector_htmlCanvasElement(document, "#myCanvas"); +let myDiv = Document$WebAPI.querySelector_htmlDivElement(document, "#myDiv"); + +let myCanvas = Option.flatMap(myDiv, div => HTMLDivElement$WebAPI.querySelector_htmlCanvasElement(div, "#myCanvas")); Option.forEach(myCanvas, myCanvas => { let ctx = myCanvas.getContext("2d"); @@ -29,6 +32,7 @@ Option.forEach(myCanvas, myCanvas => { }); export { + myDiv, myCanvas, } -/* myCanvas Not a pure module */ +/* myDiv Not a pure module */ diff --git a/tests/DOMAPI/HTMLCanvasElement__tes.res b/tests/DOMAPI/HTMLCanvasElement__tes.res index a99fa9c..d427b3a 100644 --- a/tests/DOMAPI/HTMLCanvasElement__tes.res +++ b/tests/DOMAPI/HTMLCanvasElement__tes.res @@ -1,7 +1,9 @@ open WebAPI.Global +let myDiv = document->Document.querySelector_htmlDivElement("#myDiv") + let myCanvas: option<DOMAPI.htmlCanvasElement> = - document->Document.querySelector_htmlCanvasElement("#myCanvas") + myDiv->Option.flatMap(div => div->HTMLDivElement.querySelector_htmlCanvasElement("#myCanvas")) myCanvas->Option.forEach(myCanvas => { let ctx = myCanvas->HTMLCanvasElement.getContext_2D From 54c0cc8ddfa25e5f9fd9fce7a805f1814776a854 Mon Sep 17 00:00:00 2001 From: nojaf <florian.verdonck@outlook.com> Date: Mon, 18 Nov 2024 16:07:36 +0100 Subject: [PATCH 3/3] Add all querySelector helpers --- src/DOMAPI.res | 29 +++ src/DOMAPI/Document.js | 186 +++++++++++++++ src/DOMAPI/HTMLDivElement.js | 186 +++++++++++++++ src/DOMAPI/QuerySelector.js | 436 ++++++++++++++++++++++++++++++++++- src/DOMAPI/QuerySelector.res | 277 +++++++++++++++++++++- 5 files changed, 1112 insertions(+), 2 deletions(-) diff --git a/src/DOMAPI.res b/src/DOMAPI.res index df04130..3261920 100644 --- a/src/DOMAPI.res +++ b/src/DOMAPI.res @@ -7442,6 +7442,19 @@ and htmlTableRowElement = { cells: htmlCollectionOf<htmlTableCellElement>, } +/** +Provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements. +[See HTMLTableColElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement) +*/ +type htmlTableColElement = { + ...htmlElement, + /** + Sets or retrieves the number of columns in the group. + [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/span) + */ + mutable span: int, +} + /** Provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <button> elements. [See HTMLButtonElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement) @@ -8307,6 +8320,22 @@ type htmlDataElement = { mutable value: string, } +/** +[See HTMLDetailsElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement) +*/ +type htmlDetailsElement = { + ...htmlElement, + /** + [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/open) + */ + mutable name: string, + /** + [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/open) + */ + @as("open") + mutable open_: bool, +} + /** [See HTMLDialogElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement) */ diff --git a/src/DOMAPI/Document.js b/src/DOMAPI/Document.js index e8c547a..54c6311 100644 --- a/src/DOMAPI/Document.js +++ b/src/DOMAPI/Document.js @@ -6,13 +6,199 @@ let include = QuerySelector$WebAPI.Impl({}); let safeQuerySelector = include.safeQuerySelector; +let querySelector_htmlAnchorElement = include.querySelector_htmlAnchorElement; + +let querySelector_htmlAreaElement = include.querySelector_htmlAreaElement; + +let querySelector_htmlAudioElement = include.querySelector_htmlAudioElement; + +let querySelector_htmlBaseElement = include.querySelector_htmlBaseElement; + +let querySelector_htmlBodyElement = include.querySelector_htmlBodyElement; + +let querySelector_htmlBRElement = include.querySelector_htmlBRElement; + +let querySelector_htmlButtonElement = include.querySelector_htmlButtonElement; + let querySelector_htmlCanvasElement = include.querySelector_htmlCanvasElement; +let querySelector_htmlDataElement = include.querySelector_htmlDataElement; + +let querySelector_htmlDataListElement = include.querySelector_htmlDataListElement; + +let querySelector_htmlDetailsElement = include.querySelector_htmlDetailsElement; + +let querySelector_htmlDialogElement = include.querySelector_htmlDialogElement; + let querySelector_htmlDivElement = include.querySelector_htmlDivElement; +let querySelector_htmlDListElement = include.querySelector_htmlDListElement; + +let querySelector_htmlEmbedElement = include.querySelector_htmlEmbedElement; + +let querySelector_htmlFieldSetElement = include.querySelector_htmlFieldSetElement; + +let querySelector_htmlFormElement = include.querySelector_htmlFormElement; + +let querySelector_htmlHRElement = include.querySelector_htmlHRElement; + +let querySelector_htmlHeadElement = include.querySelector_htmlHeadElement; + +let querySelector_htmlHeadingElement = include.querySelector_htmlHeadingElement; + +let querySelector_htmlHtmlElement = include.querySelector_htmlHtmlElement; + +let querySelector_htmlIFrameElement = include.querySelector_htmlIFrameElement; + +let querySelector_htmlImageElement = include.querySelector_htmlImageElement; + +let querySelector_htmlInputElement = include.querySelector_htmlInputElement; + +let querySelector_htmlLabelElement = include.querySelector_htmlLabelElement; + +let querySelector_htmlLegendElement = include.querySelector_htmlLegendElement; + +let querySelector_htmlLIElement = include.querySelector_htmlLIElement; + +let querySelector_htmlLinkElement = include.querySelector_htmlLinkElement; + +let querySelector_htmlMapElement = include.querySelector_htmlMapElement; + +let querySelector_htmlMediaElement = include.querySelector_htmlMediaElement; + +let querySelector_htmlMenuElement = include.querySelector_htmlMenuElement; + +let querySelector_htmlMetaElement = include.querySelector_htmlMetaElement; + +let querySelector_htmlMeterElement = include.querySelector_htmlMeterElement; + +let querySelector_htmlModElement = include.querySelector_htmlModElement; + +let querySelector_htmlObjectElement = include.querySelector_htmlObjectElement; + +let querySelector_htmlOListElement = include.querySelector_htmlOListElement; + +let querySelector_htmlOptGroupElement = include.querySelector_htmlOptGroupElement; + +let querySelector_htmlOptionElement = include.querySelector_htmlOptionElement; + +let querySelector_htmlOutputElement = include.querySelector_htmlOutputElement; + +let querySelector_htmlParagraphElement = include.querySelector_htmlParagraphElement; + +let querySelector_htmlPictureElement = include.querySelector_htmlPictureElement; + +let querySelector_htmlPreElement = include.querySelector_htmlPreElement; + +let querySelector_htmlProgressElement = include.querySelector_htmlProgressElement; + +let querySelector_htmlQuoteElement = include.querySelector_htmlQuoteElement; + +let querySelector_htmlScriptElement = include.querySelector_htmlScriptElement; + +let querySelector_htmlSelectElement = include.querySelector_htmlSelectElement; + +let querySelector_htmlSlotElement = include.querySelector_htmlSlotElement; + +let querySelector_htmlSourceElement = include.querySelector_htmlSourceElement; + +let querySelector_htmlSpanElement = include.querySelector_htmlSpanElement; + +let querySelector_htmlStyleElement = include.querySelector_htmlStyleElement; + +let querySelector_htmlTableCaptionElement = include.querySelector_htmlTableCaptionElement; + +let querySelector_htmlTableCellElement = include.querySelector_htmlTableCellElement; + +let querySelector_htmlTableColElement = include.querySelector_htmlTableColElement; + +let querySelector_htmlTableElement = include.querySelector_htmlTableElement; + +let querySelector_htmlTableRowElement = include.querySelector_htmlTableRowElement; + +let querySelector_htmlTableSectionElement = include.querySelector_htmlTableSectionElement; + +let querySelector_htmlTemplateElement = include.querySelector_htmlTemplateElement; + +let querySelector_htmlTextAreaElement = include.querySelector_htmlTextAreaElement; + +let querySelector_htmlTimeElement = include.querySelector_htmlTimeElement; + +let querySelector_htmlTitleElement = include.querySelector_htmlTitleElement; + +let querySelector_htmlTrackElement = include.querySelector_htmlTrackElement; + +let querySelector_htmlUListElement = include.querySelector_htmlUListElement; + +let querySelector_htmlUnknownElement = include.querySelector_htmlUnknownElement; + +let querySelector_htmlVideoElement = include.querySelector_htmlVideoElement; + export { safeQuerySelector, + querySelector_htmlAnchorElement, + querySelector_htmlAreaElement, + querySelector_htmlAudioElement, + querySelector_htmlBaseElement, + querySelector_htmlBodyElement, + querySelector_htmlBRElement, + querySelector_htmlButtonElement, querySelector_htmlCanvasElement, + querySelector_htmlDataElement, + querySelector_htmlDataListElement, + querySelector_htmlDetailsElement, + querySelector_htmlDialogElement, querySelector_htmlDivElement, + querySelector_htmlDListElement, + querySelector_htmlEmbedElement, + querySelector_htmlFieldSetElement, + querySelector_htmlFormElement, + querySelector_htmlHRElement, + querySelector_htmlHeadElement, + querySelector_htmlHeadingElement, + querySelector_htmlHtmlElement, + querySelector_htmlIFrameElement, + querySelector_htmlImageElement, + querySelector_htmlInputElement, + querySelector_htmlLabelElement, + querySelector_htmlLegendElement, + querySelector_htmlLIElement, + querySelector_htmlLinkElement, + querySelector_htmlMapElement, + querySelector_htmlMediaElement, + querySelector_htmlMenuElement, + querySelector_htmlMetaElement, + querySelector_htmlMeterElement, + querySelector_htmlModElement, + querySelector_htmlObjectElement, + querySelector_htmlOListElement, + querySelector_htmlOptGroupElement, + querySelector_htmlOptionElement, + querySelector_htmlOutputElement, + querySelector_htmlParagraphElement, + querySelector_htmlPictureElement, + querySelector_htmlPreElement, + querySelector_htmlProgressElement, + querySelector_htmlQuoteElement, + querySelector_htmlScriptElement, + querySelector_htmlSelectElement, + querySelector_htmlSlotElement, + querySelector_htmlSourceElement, + querySelector_htmlSpanElement, + querySelector_htmlStyleElement, + querySelector_htmlTableCaptionElement, + querySelector_htmlTableCellElement, + querySelector_htmlTableColElement, + querySelector_htmlTableElement, + querySelector_htmlTableRowElement, + querySelector_htmlTableSectionElement, + querySelector_htmlTemplateElement, + querySelector_htmlTextAreaElement, + querySelector_htmlTimeElement, + querySelector_htmlTitleElement, + querySelector_htmlTrackElement, + querySelector_htmlUListElement, + querySelector_htmlUnknownElement, + querySelector_htmlVideoElement, } /* include Not a pure module */ diff --git a/src/DOMAPI/HTMLDivElement.js b/src/DOMAPI/HTMLDivElement.js index e8c547a..54c6311 100644 --- a/src/DOMAPI/HTMLDivElement.js +++ b/src/DOMAPI/HTMLDivElement.js @@ -6,13 +6,199 @@ let include = QuerySelector$WebAPI.Impl({}); let safeQuerySelector = include.safeQuerySelector; +let querySelector_htmlAnchorElement = include.querySelector_htmlAnchorElement; + +let querySelector_htmlAreaElement = include.querySelector_htmlAreaElement; + +let querySelector_htmlAudioElement = include.querySelector_htmlAudioElement; + +let querySelector_htmlBaseElement = include.querySelector_htmlBaseElement; + +let querySelector_htmlBodyElement = include.querySelector_htmlBodyElement; + +let querySelector_htmlBRElement = include.querySelector_htmlBRElement; + +let querySelector_htmlButtonElement = include.querySelector_htmlButtonElement; + let querySelector_htmlCanvasElement = include.querySelector_htmlCanvasElement; +let querySelector_htmlDataElement = include.querySelector_htmlDataElement; + +let querySelector_htmlDataListElement = include.querySelector_htmlDataListElement; + +let querySelector_htmlDetailsElement = include.querySelector_htmlDetailsElement; + +let querySelector_htmlDialogElement = include.querySelector_htmlDialogElement; + let querySelector_htmlDivElement = include.querySelector_htmlDivElement; +let querySelector_htmlDListElement = include.querySelector_htmlDListElement; + +let querySelector_htmlEmbedElement = include.querySelector_htmlEmbedElement; + +let querySelector_htmlFieldSetElement = include.querySelector_htmlFieldSetElement; + +let querySelector_htmlFormElement = include.querySelector_htmlFormElement; + +let querySelector_htmlHRElement = include.querySelector_htmlHRElement; + +let querySelector_htmlHeadElement = include.querySelector_htmlHeadElement; + +let querySelector_htmlHeadingElement = include.querySelector_htmlHeadingElement; + +let querySelector_htmlHtmlElement = include.querySelector_htmlHtmlElement; + +let querySelector_htmlIFrameElement = include.querySelector_htmlIFrameElement; + +let querySelector_htmlImageElement = include.querySelector_htmlImageElement; + +let querySelector_htmlInputElement = include.querySelector_htmlInputElement; + +let querySelector_htmlLabelElement = include.querySelector_htmlLabelElement; + +let querySelector_htmlLegendElement = include.querySelector_htmlLegendElement; + +let querySelector_htmlLIElement = include.querySelector_htmlLIElement; + +let querySelector_htmlLinkElement = include.querySelector_htmlLinkElement; + +let querySelector_htmlMapElement = include.querySelector_htmlMapElement; + +let querySelector_htmlMediaElement = include.querySelector_htmlMediaElement; + +let querySelector_htmlMenuElement = include.querySelector_htmlMenuElement; + +let querySelector_htmlMetaElement = include.querySelector_htmlMetaElement; + +let querySelector_htmlMeterElement = include.querySelector_htmlMeterElement; + +let querySelector_htmlModElement = include.querySelector_htmlModElement; + +let querySelector_htmlObjectElement = include.querySelector_htmlObjectElement; + +let querySelector_htmlOListElement = include.querySelector_htmlOListElement; + +let querySelector_htmlOptGroupElement = include.querySelector_htmlOptGroupElement; + +let querySelector_htmlOptionElement = include.querySelector_htmlOptionElement; + +let querySelector_htmlOutputElement = include.querySelector_htmlOutputElement; + +let querySelector_htmlParagraphElement = include.querySelector_htmlParagraphElement; + +let querySelector_htmlPictureElement = include.querySelector_htmlPictureElement; + +let querySelector_htmlPreElement = include.querySelector_htmlPreElement; + +let querySelector_htmlProgressElement = include.querySelector_htmlProgressElement; + +let querySelector_htmlQuoteElement = include.querySelector_htmlQuoteElement; + +let querySelector_htmlScriptElement = include.querySelector_htmlScriptElement; + +let querySelector_htmlSelectElement = include.querySelector_htmlSelectElement; + +let querySelector_htmlSlotElement = include.querySelector_htmlSlotElement; + +let querySelector_htmlSourceElement = include.querySelector_htmlSourceElement; + +let querySelector_htmlSpanElement = include.querySelector_htmlSpanElement; + +let querySelector_htmlStyleElement = include.querySelector_htmlStyleElement; + +let querySelector_htmlTableCaptionElement = include.querySelector_htmlTableCaptionElement; + +let querySelector_htmlTableCellElement = include.querySelector_htmlTableCellElement; + +let querySelector_htmlTableColElement = include.querySelector_htmlTableColElement; + +let querySelector_htmlTableElement = include.querySelector_htmlTableElement; + +let querySelector_htmlTableRowElement = include.querySelector_htmlTableRowElement; + +let querySelector_htmlTableSectionElement = include.querySelector_htmlTableSectionElement; + +let querySelector_htmlTemplateElement = include.querySelector_htmlTemplateElement; + +let querySelector_htmlTextAreaElement = include.querySelector_htmlTextAreaElement; + +let querySelector_htmlTimeElement = include.querySelector_htmlTimeElement; + +let querySelector_htmlTitleElement = include.querySelector_htmlTitleElement; + +let querySelector_htmlTrackElement = include.querySelector_htmlTrackElement; + +let querySelector_htmlUListElement = include.querySelector_htmlUListElement; + +let querySelector_htmlUnknownElement = include.querySelector_htmlUnknownElement; + +let querySelector_htmlVideoElement = include.querySelector_htmlVideoElement; + export { safeQuerySelector, + querySelector_htmlAnchorElement, + querySelector_htmlAreaElement, + querySelector_htmlAudioElement, + querySelector_htmlBaseElement, + querySelector_htmlBodyElement, + querySelector_htmlBRElement, + querySelector_htmlButtonElement, querySelector_htmlCanvasElement, + querySelector_htmlDataElement, + querySelector_htmlDataListElement, + querySelector_htmlDetailsElement, + querySelector_htmlDialogElement, querySelector_htmlDivElement, + querySelector_htmlDListElement, + querySelector_htmlEmbedElement, + querySelector_htmlFieldSetElement, + querySelector_htmlFormElement, + querySelector_htmlHRElement, + querySelector_htmlHeadElement, + querySelector_htmlHeadingElement, + querySelector_htmlHtmlElement, + querySelector_htmlIFrameElement, + querySelector_htmlImageElement, + querySelector_htmlInputElement, + querySelector_htmlLabelElement, + querySelector_htmlLegendElement, + querySelector_htmlLIElement, + querySelector_htmlLinkElement, + querySelector_htmlMapElement, + querySelector_htmlMediaElement, + querySelector_htmlMenuElement, + querySelector_htmlMetaElement, + querySelector_htmlMeterElement, + querySelector_htmlModElement, + querySelector_htmlObjectElement, + querySelector_htmlOListElement, + querySelector_htmlOptGroupElement, + querySelector_htmlOptionElement, + querySelector_htmlOutputElement, + querySelector_htmlParagraphElement, + querySelector_htmlPictureElement, + querySelector_htmlPreElement, + querySelector_htmlProgressElement, + querySelector_htmlQuoteElement, + querySelector_htmlScriptElement, + querySelector_htmlSelectElement, + querySelector_htmlSlotElement, + querySelector_htmlSourceElement, + querySelector_htmlSpanElement, + querySelector_htmlStyleElement, + querySelector_htmlTableCaptionElement, + querySelector_htmlTableCellElement, + querySelector_htmlTableColElement, + querySelector_htmlTableElement, + querySelector_htmlTableRowElement, + querySelector_htmlTableSectionElement, + querySelector_htmlTemplateElement, + querySelector_htmlTextAreaElement, + querySelector_htmlTimeElement, + querySelector_htmlTitleElement, + querySelector_htmlTrackElement, + querySelector_htmlUListElement, + querySelector_htmlUnknownElement, + querySelector_htmlVideoElement, } /* include Not a pure module */ diff --git a/src/DOMAPI/QuerySelector.js b/src/DOMAPI/QuerySelector.js index 7e84cac..8fd8a2e 100644 --- a/src/DOMAPI/QuerySelector.js +++ b/src/DOMAPI/QuerySelector.js @@ -2,14 +2,262 @@ import * as Primitive_option from "rescript/lib/es6/Primitive_option.js"; +function isInstanceOfHTMLAnchorElement(param) { + return (param instanceof HTMLAnchorElement); +} + +function isInstanceOfHTMLAreaElement(param) { + return (param instanceof HTMLAreaElement); +} + +function isInstanceOfHTMLAudioElement(param) { + return (param instanceof HTMLAudioElement); +} + +function isInstanceOfHTMLBaseElement(param) { + return (param instanceof HTMLBaseElement); +} + +function isInstanceOfHTMLBodyElement(param) { + return (param instanceof HTMLBodyElement); +} + +function isInstanceOfHTMLBRElement(param) { + return (param instanceof HTMLBRElement); +} + +function isInstanceOfHTMLButtonElement(param) { + return (param instanceof HTMLButtonElement); +} + function isInstanceOfHTMLCanvasElement(param) { return (param instanceof HTMLCanvasElement); } +function isInstanceOfHTMLDataElement(param) { + return (param instanceof HTMLDataElement); +} + +function isInstanceOfHTMLDataListElement(param) { + return (param instanceof HTMLDataListElement); +} + +function isInstanceOfHTMLDetailsElement(param) { + return (param instanceof HTMLDetailsElement); +} + +function isInstanceOfHTMLDialogElement(param) { + return (param instanceof HTMLDialogElement); +} + function isInstanceOfHTMLDivElement(param) { return (param instanceof HTMLDivElement); } +function isInstanceOfHTMLDListElement(param) { + return (param instanceof HTMLDListElement); +} + +function isInstanceOfHTMLEmbedElement(param) { + return (param instanceof HTMLEmbedElement); +} + +function isInstanceOfHTMLFieldSetElement(param) { + return (param instanceof HTMLFieldSetElement); +} + +function isInstanceOfHTMLFormElement(param) { + return (param instanceof HTMLFormElement); +} + +function isInstanceOfHTMLHRElement(param) { + return (param instanceof HTMLHRElement); +} + +function isInstanceOfHTMLHeadElement(param) { + return (param instanceof HTMLHeadElement); +} + +function isInstanceOfHTMLHeadingElement(param) { + return (param instanceof HTMLHeadingElement); +} + +function isInstanceOfHTMLHtmlElement(param) { + return (param instanceof HTMLHtmlElement); +} + +function isInstanceOfHTMLIFrameElement(param) { + return (param instanceof HTMLIFrameElement); +} + +function isInstanceOfHTMLImageElement(param) { + return (param instanceof HTMLImageElement); +} + +function isInstanceOfHTMLInputElement(param) { + return (param instanceof HTMLInputElement); +} + +function isInstanceOfHTMLLabelElement(param) { + return (param instanceof HTMLLabelElement); +} + +function isInstanceOfHTMLLegendElement(param) { + return (param instanceof HTMLLegendElement); +} + +function isInstanceOfHTMLLIElement(param) { + return (param instanceof HTMLLIElement); +} + +function isInstanceOfHTMLLinkElement(param) { + return (param instanceof HTMLLinkElement); +} + +function isInstanceOfHTMLMapElement(param) { + return (param instanceof HTMLMapElement); +} + +function isInstanceOfHTMLMediaElement(param) { + return (param instanceof HTMLMediaElement); +} + +function isInstanceOfHTMLMenuElement(param) { + return (param instanceof HTMLMenuElement); +} + +function isInstanceOfHTMLMetaElement(param) { + return (param instanceof HTMLMetaElement); +} + +function isInstanceOfHTMLMeterElement(param) { + return (param instanceof HTMLMeterElement); +} + +function isInstanceOfHTMLModElement(param) { + return (param instanceof HTMLModElement); +} + +function isInstanceOfHTMLObjectElement(param) { + return (param instanceof HTMLObjectElement); +} + +function isInstanceOfHTMLOListElement(param) { + return (param instanceof HTMLOListElement); +} + +function isInstanceOfHTMLOptGroupElement(param) { + return (param instanceof HTMLOptGroupElement); +} + +function isInstanceOfHTMLOptionElement(param) { + return (param instanceof HTMLOptionElement); +} + +function isInstanceOfHTMLOutputElement(param) { + return (param instanceof HTMLOutputElement); +} + +function isInstanceOfHTMLParagraphElement(param) { + return (param instanceof HTMLParagraphElement); +} + +function isInstanceOfHTMLPictureElement(param) { + return (param instanceof HTMLPictureElement); +} + +function isInstanceOfHTMLPreElement(param) { + return (param instanceof HTMLPreElement); +} + +function isInstanceOfHTMLProgressElement(param) { + return (param instanceof HTMLProgressElement); +} + +function isInstanceOfHTMLQuoteElement(param) { + return (param instanceof HTMLQuoteElement); +} + +function isInstanceOfHTMLScriptElement(param) { + return (param instanceof HTMLScriptElement); +} + +function isInstanceOfHTMLSelectElement(param) { + return (param instanceof HTMLSelectElement); +} + +function isInstanceOfHTMLSlotElement(param) { + return (param instanceof HTMLSlotElement); +} + +function isInstanceOfHTMLSourceElement(param) { + return (param instanceof HTMLSourceElement); +} + +function isInstanceOfHTMLSpanElement(param) { + return (param instanceof HTMLSpanElement); +} + +function isInstanceOfHTMLStyleElement(param) { + return (param instanceof HTMLStyleElement); +} + +function isInstanceOfHTMLTableCaptionElement(param) { + return (param instanceof HTMLTableCaptionElement); +} + +function isInstanceOfHTMLTableCellElement(param) { + return (param instanceof HTMLTableCellElement); +} + +function isInstanceOfHTMLTableColElement(param) { + return (param instanceof HTMLTableColElement); +} + +function isInstanceOfHTMLTableElement(param) { + return (param instanceof HTMLTableElement); +} + +function isInstanceOfHTMLTableRowElement(param) { + return (param instanceof HTMLTableRowElement); +} + +function isInstanceOfHTMLTableSectionElement(param) { + return (param instanceof HTMLTableSectionElement); +} + +function isInstanceOfHTMLTemplateElement(param) { + return (param instanceof HTMLTemplateElement); +} + +function isInstanceOfHTMLTextAreaElement(param) { + return (param instanceof HTMLTextAreaElement); +} + +function isInstanceOfHTMLTimeElement(param) { + return (param instanceof HTMLTimeElement); +} + +function isInstanceOfHTMLTitleElement(param) { + return (param instanceof HTMLTitleElement); +} + +function isInstanceOfHTMLTrackElement(param) { + return (param instanceof HTMLTrackElement); +} + +function isInstanceOfHTMLUListElement(param) { + return (param instanceof HTMLUListElement); +} + +function isInstanceOfHTMLUnknownElement(param) { + return (param instanceof HTMLUnknownElement); +} + +function isInstanceOfHTMLVideoElement(param) { + return (param instanceof HTMLVideoElement); +} + function Impl(T) { let safeQuerySelector = (predicate, t, selector) => { let e = t.querySelector(selector); @@ -19,18 +267,204 @@ function Impl(T) { return Primitive_option.some(e); } }; + let querySelector_htmlAnchorElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLAnchorElement, t, selector); + let querySelector_htmlAreaElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLAreaElement, t, selector); + let querySelector_htmlAudioElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLAudioElement, t, selector); + let querySelector_htmlBaseElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLBaseElement, t, selector); + let querySelector_htmlBodyElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLBodyElement, t, selector); + let querySelector_htmlBRElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLBRElement, t, selector); + let querySelector_htmlButtonElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLButtonElement, t, selector); let querySelector_htmlCanvasElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLCanvasElement, t, selector); + let querySelector_htmlDataElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLDataElement, t, selector); + let querySelector_htmlDataListElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLDataListElement, t, selector); + let querySelector_htmlDetailsElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLDetailsElement, t, selector); + let querySelector_htmlDialogElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLDialogElement, t, selector); let querySelector_htmlDivElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLDivElement, t, selector); + let querySelector_htmlDListElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLDListElement, t, selector); + let querySelector_htmlEmbedElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLEmbedElement, t, selector); + let querySelector_htmlFieldSetElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLFieldSetElement, t, selector); + let querySelector_htmlFormElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLFormElement, t, selector); + let querySelector_htmlHRElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLHRElement, t, selector); + let querySelector_htmlHeadElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLHeadElement, t, selector); + let querySelector_htmlHeadingElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLHeadingElement, t, selector); + let querySelector_htmlHtmlElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLHtmlElement, t, selector); + let querySelector_htmlIFrameElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLIFrameElement, t, selector); + let querySelector_htmlImageElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLImageElement, t, selector); + let querySelector_htmlInputElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLInputElement, t, selector); + let querySelector_htmlLabelElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLLabelElement, t, selector); + let querySelector_htmlLegendElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLLegendElement, t, selector); + let querySelector_htmlLIElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLLIElement, t, selector); + let querySelector_htmlLinkElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLLinkElement, t, selector); + let querySelector_htmlMapElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLMapElement, t, selector); + let querySelector_htmlMediaElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLMediaElement, t, selector); + let querySelector_htmlMenuElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLMenuElement, t, selector); + let querySelector_htmlMetaElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLMetaElement, t, selector); + let querySelector_htmlMeterElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLMeterElement, t, selector); + let querySelector_htmlModElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLModElement, t, selector); + let querySelector_htmlObjectElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLObjectElement, t, selector); + let querySelector_htmlOListElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLOListElement, t, selector); + let querySelector_htmlOptGroupElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLOptGroupElement, t, selector); + let querySelector_htmlOptionElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLOptionElement, t, selector); + let querySelector_htmlOutputElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLOutputElement, t, selector); + let querySelector_htmlParagraphElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLParagraphElement, t, selector); + let querySelector_htmlPictureElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLPictureElement, t, selector); + let querySelector_htmlPreElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLPreElement, t, selector); + let querySelector_htmlProgressElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLProgressElement, t, selector); + let querySelector_htmlQuoteElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLQuoteElement, t, selector); + let querySelector_htmlScriptElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLScriptElement, t, selector); + let querySelector_htmlSelectElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLSelectElement, t, selector); + let querySelector_htmlSlotElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLSlotElement, t, selector); + let querySelector_htmlSourceElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLSourceElement, t, selector); + let querySelector_htmlSpanElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLSpanElement, t, selector); + let querySelector_htmlStyleElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLStyleElement, t, selector); + let querySelector_htmlTableCaptionElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTableCaptionElement, t, selector); + let querySelector_htmlTableCellElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTableCellElement, t, selector); + let querySelector_htmlTableColElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTableColElement, t, selector); + let querySelector_htmlTableElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTableElement, t, selector); + let querySelector_htmlTableRowElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTableRowElement, t, selector); + let querySelector_htmlTableSectionElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTableSectionElement, t, selector); + let querySelector_htmlTemplateElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTemplateElement, t, selector); + let querySelector_htmlTextAreaElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTextAreaElement, t, selector); + let querySelector_htmlTimeElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTimeElement, t, selector); + let querySelector_htmlTitleElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTitleElement, t, selector); + let querySelector_htmlTrackElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLTrackElement, t, selector); + let querySelector_htmlUListElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLUListElement, t, selector); + let querySelector_htmlUnknownElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLUnknownElement, t, selector); + let querySelector_htmlVideoElement = (t, selector) => safeQuerySelector(isInstanceOfHTMLVideoElement, t, selector); return { safeQuerySelector: safeQuerySelector, + querySelector_htmlAnchorElement: querySelector_htmlAnchorElement, + querySelector_htmlAreaElement: querySelector_htmlAreaElement, + querySelector_htmlAudioElement: querySelector_htmlAudioElement, + querySelector_htmlBaseElement: querySelector_htmlBaseElement, + querySelector_htmlBodyElement: querySelector_htmlBodyElement, + querySelector_htmlBRElement: querySelector_htmlBRElement, + querySelector_htmlButtonElement: querySelector_htmlButtonElement, querySelector_htmlCanvasElement: querySelector_htmlCanvasElement, - querySelector_htmlDivElement: querySelector_htmlDivElement + querySelector_htmlDataElement: querySelector_htmlDataElement, + querySelector_htmlDataListElement: querySelector_htmlDataListElement, + querySelector_htmlDetailsElement: querySelector_htmlDetailsElement, + querySelector_htmlDialogElement: querySelector_htmlDialogElement, + querySelector_htmlDivElement: querySelector_htmlDivElement, + querySelector_htmlDListElement: querySelector_htmlDListElement, + querySelector_htmlEmbedElement: querySelector_htmlEmbedElement, + querySelector_htmlFieldSetElement: querySelector_htmlFieldSetElement, + querySelector_htmlFormElement: querySelector_htmlFormElement, + querySelector_htmlHRElement: querySelector_htmlHRElement, + querySelector_htmlHeadElement: querySelector_htmlHeadElement, + querySelector_htmlHeadingElement: querySelector_htmlHeadingElement, + querySelector_htmlHtmlElement: querySelector_htmlHtmlElement, + querySelector_htmlIFrameElement: querySelector_htmlIFrameElement, + querySelector_htmlImageElement: querySelector_htmlImageElement, + querySelector_htmlInputElement: querySelector_htmlInputElement, + querySelector_htmlLabelElement: querySelector_htmlLabelElement, + querySelector_htmlLegendElement: querySelector_htmlLegendElement, + querySelector_htmlLIElement: querySelector_htmlLIElement, + querySelector_htmlLinkElement: querySelector_htmlLinkElement, + querySelector_htmlMapElement: querySelector_htmlMapElement, + querySelector_htmlMediaElement: querySelector_htmlMediaElement, + querySelector_htmlMenuElement: querySelector_htmlMenuElement, + querySelector_htmlMetaElement: querySelector_htmlMetaElement, + querySelector_htmlMeterElement: querySelector_htmlMeterElement, + querySelector_htmlModElement: querySelector_htmlModElement, + querySelector_htmlObjectElement: querySelector_htmlObjectElement, + querySelector_htmlOListElement: querySelector_htmlOListElement, + querySelector_htmlOptGroupElement: querySelector_htmlOptGroupElement, + querySelector_htmlOptionElement: querySelector_htmlOptionElement, + querySelector_htmlOutputElement: querySelector_htmlOutputElement, + querySelector_htmlParagraphElement: querySelector_htmlParagraphElement, + querySelector_htmlPictureElement: querySelector_htmlPictureElement, + querySelector_htmlPreElement: querySelector_htmlPreElement, + querySelector_htmlProgressElement: querySelector_htmlProgressElement, + querySelector_htmlQuoteElement: querySelector_htmlQuoteElement, + querySelector_htmlScriptElement: querySelector_htmlScriptElement, + querySelector_htmlSelectElement: querySelector_htmlSelectElement, + querySelector_htmlSlotElement: querySelector_htmlSlotElement, + querySelector_htmlSourceElement: querySelector_htmlSourceElement, + querySelector_htmlSpanElement: querySelector_htmlSpanElement, + querySelector_htmlStyleElement: querySelector_htmlStyleElement, + querySelector_htmlTableCaptionElement: querySelector_htmlTableCaptionElement, + querySelector_htmlTableCellElement: querySelector_htmlTableCellElement, + querySelector_htmlTableColElement: querySelector_htmlTableColElement, + querySelector_htmlTableElement: querySelector_htmlTableElement, + querySelector_htmlTableRowElement: querySelector_htmlTableRowElement, + querySelector_htmlTableSectionElement: querySelector_htmlTableSectionElement, + querySelector_htmlTemplateElement: querySelector_htmlTemplateElement, + querySelector_htmlTextAreaElement: querySelector_htmlTextAreaElement, + querySelector_htmlTimeElement: querySelector_htmlTimeElement, + querySelector_htmlTitleElement: querySelector_htmlTitleElement, + querySelector_htmlTrackElement: querySelector_htmlTrackElement, + querySelector_htmlUListElement: querySelector_htmlUListElement, + querySelector_htmlUnknownElement: querySelector_htmlUnknownElement, + querySelector_htmlVideoElement: querySelector_htmlVideoElement }; } export { + isInstanceOfHTMLAnchorElement, + isInstanceOfHTMLAreaElement, + isInstanceOfHTMLAudioElement, + isInstanceOfHTMLBaseElement, + isInstanceOfHTMLBodyElement, + isInstanceOfHTMLBRElement, + isInstanceOfHTMLButtonElement, isInstanceOfHTMLCanvasElement, + isInstanceOfHTMLDataElement, + isInstanceOfHTMLDataListElement, + isInstanceOfHTMLDetailsElement, + isInstanceOfHTMLDialogElement, isInstanceOfHTMLDivElement, + isInstanceOfHTMLDListElement, + isInstanceOfHTMLEmbedElement, + isInstanceOfHTMLFieldSetElement, + isInstanceOfHTMLFormElement, + isInstanceOfHTMLHRElement, + isInstanceOfHTMLHeadElement, + isInstanceOfHTMLHeadingElement, + isInstanceOfHTMLHtmlElement, + isInstanceOfHTMLIFrameElement, + isInstanceOfHTMLImageElement, + isInstanceOfHTMLInputElement, + isInstanceOfHTMLLabelElement, + isInstanceOfHTMLLegendElement, + isInstanceOfHTMLLIElement, + isInstanceOfHTMLLinkElement, + isInstanceOfHTMLMapElement, + isInstanceOfHTMLMediaElement, + isInstanceOfHTMLMenuElement, + isInstanceOfHTMLMetaElement, + isInstanceOfHTMLMeterElement, + isInstanceOfHTMLModElement, + isInstanceOfHTMLObjectElement, + isInstanceOfHTMLOListElement, + isInstanceOfHTMLOptGroupElement, + isInstanceOfHTMLOptionElement, + isInstanceOfHTMLOutputElement, + isInstanceOfHTMLParagraphElement, + isInstanceOfHTMLPictureElement, + isInstanceOfHTMLPreElement, + isInstanceOfHTMLProgressElement, + isInstanceOfHTMLQuoteElement, + isInstanceOfHTMLScriptElement, + isInstanceOfHTMLSelectElement, + isInstanceOfHTMLSlotElement, + isInstanceOfHTMLSourceElement, + isInstanceOfHTMLSpanElement, + isInstanceOfHTMLStyleElement, + isInstanceOfHTMLTableCaptionElement, + isInstanceOfHTMLTableCellElement, + isInstanceOfHTMLTableColElement, + isInstanceOfHTMLTableElement, + isInstanceOfHTMLTableRowElement, + isInstanceOfHTMLTableSectionElement, + isInstanceOfHTMLTemplateElement, + isInstanceOfHTMLTextAreaElement, + isInstanceOfHTMLTimeElement, + isInstanceOfHTMLTitleElement, + isInstanceOfHTMLTrackElement, + isInstanceOfHTMLUListElement, + isInstanceOfHTMLUnknownElement, + isInstanceOfHTMLVideoElement, Impl, } /* No side effect */ diff --git a/src/DOMAPI/QuerySelector.res b/src/DOMAPI/QuerySelector.res index 32b29da..2cad642 100644 --- a/src/DOMAPI/QuerySelector.res +++ b/src/DOMAPI/QuerySelector.res @@ -1,8 +1,74 @@ open Prelude open DOMAPI +let isInstanceOfHTMLAnchorElement = (_: 't): bool => %raw(`param instanceof HTMLAnchorElement`) +let isInstanceOfHTMLAreaElement = (_: 't): bool => %raw(`param instanceof HTMLAreaElement`) +let isInstanceOfHTMLAudioElement = (_: 't): bool => %raw(`param instanceof HTMLAudioElement`) +let isInstanceOfHTMLBaseElement = (_: 't): bool => %raw(`param instanceof HTMLBaseElement`) +let isInstanceOfHTMLBodyElement = (_: 't): bool => %raw(`param instanceof HTMLBodyElement`) +let isInstanceOfHTMLBRElement = (_: 't): bool => %raw(`param instanceof HTMLBRElement`) +let isInstanceOfHTMLButtonElement = (_: 't): bool => %raw(`param instanceof HTMLButtonElement`) let isInstanceOfHTMLCanvasElement = (_: 't): bool => %raw(`param instanceof HTMLCanvasElement`) +let isInstanceOfHTMLDataElement = (_: 't): bool => %raw(`param instanceof HTMLDataElement`) +let isInstanceOfHTMLDataListElement = (_: 't): bool => %raw(`param instanceof HTMLDataListElement`) +let isInstanceOfHTMLDetailsElement = (_: 't): bool => %raw(`param instanceof HTMLDetailsElement`) +let isInstanceOfHTMLDialogElement = (_: 't): bool => %raw(`param instanceof HTMLDialogElement`) let isInstanceOfHTMLDivElement = (_: 't): bool => %raw(`param instanceof HTMLDivElement`) +let isInstanceOfHTMLDListElement = (_: 't): bool => %raw(`param instanceof HTMLDListElement`) +let isInstanceOfHTMLEmbedElement = (_: 't): bool => %raw(`param instanceof HTMLEmbedElement`) +let isInstanceOfHTMLFieldSetElement = (_: 't): bool => %raw(`param instanceof HTMLFieldSetElement`) +let isInstanceOfHTMLFormElement = (_: 't): bool => %raw(`param instanceof HTMLFormElement`) +let isInstanceOfHTMLHRElement = (_: 't): bool => %raw(`param instanceof HTMLHRElement`) +let isInstanceOfHTMLHeadElement = (_: 't): bool => %raw(`param instanceof HTMLHeadElement`) +let isInstanceOfHTMLHeadingElement = (_: 't): bool => %raw(`param instanceof HTMLHeadingElement`) +let isInstanceOfHTMLHtmlElement = (_: 't): bool => %raw(`param instanceof HTMLHtmlElement`) +let isInstanceOfHTMLIFrameElement = (_: 't): bool => %raw(`param instanceof HTMLIFrameElement`) +let isInstanceOfHTMLImageElement = (_: 't): bool => %raw(`param instanceof HTMLImageElement`) +let isInstanceOfHTMLInputElement = (_: 't): bool => %raw(`param instanceof HTMLInputElement`) +let isInstanceOfHTMLLabelElement = (_: 't): bool => %raw(`param instanceof HTMLLabelElement`) +let isInstanceOfHTMLLegendElement = (_: 't): bool => %raw(`param instanceof HTMLLegendElement`) +let isInstanceOfHTMLLIElement = (_: 't): bool => %raw(`param instanceof HTMLLIElement`) +let isInstanceOfHTMLLinkElement = (_: 't): bool => %raw(`param instanceof HTMLLinkElement`) +let isInstanceOfHTMLMapElement = (_: 't): bool => %raw(`param instanceof HTMLMapElement`) +let isInstanceOfHTMLMediaElement = (_: 't): bool => %raw(`param instanceof HTMLMediaElement`) +let isInstanceOfHTMLMenuElement = (_: 't): bool => %raw(`param instanceof HTMLMenuElement`) +let isInstanceOfHTMLMetaElement = (_: 't): bool => %raw(`param instanceof HTMLMetaElement`) +let isInstanceOfHTMLMeterElement = (_: 't): bool => %raw(`param instanceof HTMLMeterElement`) +let isInstanceOfHTMLModElement = (_: 't): bool => %raw(`param instanceof HTMLModElement`) +let isInstanceOfHTMLObjectElement = (_: 't): bool => %raw(`param instanceof HTMLObjectElement`) +let isInstanceOfHTMLOListElement = (_: 't): bool => %raw(`param instanceof HTMLOListElement`) +let isInstanceOfHTMLOptGroupElement = (_: 't): bool => %raw(`param instanceof HTMLOptGroupElement`) +let isInstanceOfHTMLOptionElement = (_: 't): bool => %raw(`param instanceof HTMLOptionElement`) +let isInstanceOfHTMLOutputElement = (_: 't): bool => %raw(`param instanceof HTMLOutputElement`) +let isInstanceOfHTMLParagraphElement = (_: 't): bool => + %raw(`param instanceof HTMLParagraphElement`) +let isInstanceOfHTMLPictureElement = (_: 't): bool => %raw(`param instanceof HTMLPictureElement`) +let isInstanceOfHTMLPreElement = (_: 't): bool => %raw(`param instanceof HTMLPreElement`) +let isInstanceOfHTMLProgressElement = (_: 't): bool => %raw(`param instanceof HTMLProgressElement`) +let isInstanceOfHTMLQuoteElement = (_: 't): bool => %raw(`param instanceof HTMLQuoteElement`) +let isInstanceOfHTMLScriptElement = (_: 't): bool => %raw(`param instanceof HTMLScriptElement`) +let isInstanceOfHTMLSelectElement = (_: 't): bool => %raw(`param instanceof HTMLSelectElement`) +let isInstanceOfHTMLSlotElement = (_: 't): bool => %raw(`param instanceof HTMLSlotElement`) +let isInstanceOfHTMLSourceElement = (_: 't): bool => %raw(`param instanceof HTMLSourceElement`) +let isInstanceOfHTMLSpanElement = (_: 't): bool => %raw(`param instanceof HTMLSpanElement`) +let isInstanceOfHTMLStyleElement = (_: 't): bool => %raw(`param instanceof HTMLStyleElement`) +let isInstanceOfHTMLTableCaptionElement = (_: 't): bool => + %raw(`param instanceof HTMLTableCaptionElement`) +let isInstanceOfHTMLTableCellElement = (_: 't): bool => + %raw(`param instanceof HTMLTableCellElement`) +let isInstanceOfHTMLTableColElement = (_: 't): bool => %raw(`param instanceof HTMLTableColElement`) +let isInstanceOfHTMLTableElement = (_: 't): bool => %raw(`param instanceof HTMLTableElement`) +let isInstanceOfHTMLTableRowElement = (_: 't): bool => %raw(`param instanceof HTMLTableRowElement`) +let isInstanceOfHTMLTableSectionElement = (_: 't): bool => + %raw(`param instanceof HTMLTableSectionElement`) +let isInstanceOfHTMLTemplateElement = (_: 't): bool => %raw(`param instanceof HTMLTemplateElement`) +let isInstanceOfHTMLTextAreaElement = (_: 't): bool => %raw(`param instanceof HTMLTextAreaElement`) +let isInstanceOfHTMLTimeElement = (_: 't): bool => %raw(`param instanceof HTMLTimeElement`) +let isInstanceOfHTMLTitleElement = (_: 't): bool => %raw(`param instanceof HTMLTitleElement`) +let isInstanceOfHTMLTrackElement = (_: 't): bool => %raw(`param instanceof HTMLTrackElement`) +let isInstanceOfHTMLUListElement = (_: 't): bool => %raw(`param instanceof HTMLUListElement`) +let isInstanceOfHTMLUnknownElement = (_: 't): bool => %raw(`param instanceof HTMLUnknownElement`) +let isInstanceOfHTMLVideoElement = (_: 't): bool => %raw(`param instanceof HTMLVideoElement`) module Impl = ( T: { @@ -32,11 +98,220 @@ t->querySelector("#myCanvas") } } + let querySelector_htmlAnchorElement = (t: T.t, selector: string): option<htmlAnchorElement> => { + safeQuerySelector(isInstanceOfHTMLAnchorElement, t, selector) + } + let querySelector_htmlAreaElement = (t: T.t, selector: string): option<htmlAreaElement> => { + safeQuerySelector(isInstanceOfHTMLAreaElement, t, selector) + } + let querySelector_htmlAudioElement = (t: T.t, selector: string): option<htmlAudioElement> => { + safeQuerySelector(isInstanceOfHTMLAudioElement, t, selector) + } + let querySelector_htmlBaseElement = (t: T.t, selector: string): option<htmlBaseElement> => { + safeQuerySelector(isInstanceOfHTMLBaseElement, t, selector) + } + let querySelector_htmlBodyElement = (t: T.t, selector: string): option<htmlBodyElement> => { + safeQuerySelector(isInstanceOfHTMLBodyElement, t, selector) + } + let querySelector_htmlBRElement = (t: T.t, selector: string): option<htmlbrElement> => { + safeQuerySelector(isInstanceOfHTMLBRElement, t, selector) + } + let querySelector_htmlButtonElement = (t: T.t, selector: string): option<htmlButtonElement> => { + safeQuerySelector(isInstanceOfHTMLButtonElement, t, selector) + } let querySelector_htmlCanvasElement = (t: T.t, selector: string): option<htmlCanvasElement> => { safeQuerySelector(isInstanceOfHTMLCanvasElement, t, selector) } - + let querySelector_htmlDataElement = (t: T.t, selector: string): option<htmlDataElement> => { + safeQuerySelector(isInstanceOfHTMLDataElement, t, selector) + } + let querySelector_htmlDataListElement = (t: T.t, selector: string): option< + htmlDataListElement, + > => { + safeQuerySelector(isInstanceOfHTMLDataListElement, t, selector) + } + let querySelector_htmlDetailsElement = (t: T.t, selector: string): option<htmlDetailsElement> => { + safeQuerySelector(isInstanceOfHTMLDetailsElement, t, selector) + } + let querySelector_htmlDialogElement = (t: T.t, selector: string): option<htmlDialogElement> => { + safeQuerySelector(isInstanceOfHTMLDialogElement, t, selector) + } let querySelector_htmlDivElement = (t: T.t, selector: string): option<htmlDivElement> => { safeQuerySelector(isInstanceOfHTMLDivElement, t, selector) } + let querySelector_htmlDListElement = (t: T.t, selector: string): option<htmldListElement> => { + safeQuerySelector(isInstanceOfHTMLDListElement, t, selector) + } + let querySelector_htmlEmbedElement = (t: T.t, selector: string): option<htmlEmbedElement> => { + safeQuerySelector(isInstanceOfHTMLEmbedElement, t, selector) + } + let querySelector_htmlFieldSetElement = (t: T.t, selector: string): option< + htmlFieldSetElement, + > => { + safeQuerySelector(isInstanceOfHTMLFieldSetElement, t, selector) + } + let querySelector_htmlFormElement = (t: T.t, selector: string): option<htmlFormElement> => { + safeQuerySelector(isInstanceOfHTMLFormElement, t, selector) + } + let querySelector_htmlHRElement = (t: T.t, selector: string): option<htmlhrElement> => { + safeQuerySelector(isInstanceOfHTMLHRElement, t, selector) + } + let querySelector_htmlHeadElement = (t: T.t, selector: string): option<htmlHeadElement> => { + safeQuerySelector(isInstanceOfHTMLHeadElement, t, selector) + } + let querySelector_htmlHeadingElement = (t: T.t, selector: string): option<htmlHeadingElement> => { + safeQuerySelector(isInstanceOfHTMLHeadingElement, t, selector) + } + let querySelector_htmlHtmlElement = (t: T.t, selector: string): option<htmlHtmlElement> => { + safeQuerySelector(isInstanceOfHTMLHtmlElement, t, selector) + } + let querySelector_htmlIFrameElement = (t: T.t, selector: string): option<htmliFrameElement> => { + safeQuerySelector(isInstanceOfHTMLIFrameElement, t, selector) + } + let querySelector_htmlImageElement = (t: T.t, selector: string): option<htmlImageElement> => { + safeQuerySelector(isInstanceOfHTMLImageElement, t, selector) + } + let querySelector_htmlInputElement = (t: T.t, selector: string): option<htmlInputElement> => { + safeQuerySelector(isInstanceOfHTMLInputElement, t, selector) + } + let querySelector_htmlLabelElement = (t: T.t, selector: string): option<htmlLabelElement> => { + safeQuerySelector(isInstanceOfHTMLLabelElement, t, selector) + } + let querySelector_htmlLegendElement = (t: T.t, selector: string): option<htmlLegendElement> => { + safeQuerySelector(isInstanceOfHTMLLegendElement, t, selector) + } + let querySelector_htmlLIElement = (t: T.t, selector: string): option<htmlliElement> => { + safeQuerySelector(isInstanceOfHTMLLIElement, t, selector) + } + let querySelector_htmlLinkElement = (t: T.t, selector: string): option<htmlLinkElement> => { + safeQuerySelector(isInstanceOfHTMLLinkElement, t, selector) + } + let querySelector_htmlMapElement = (t: T.t, selector: string): option<htmlMapElement> => { + safeQuerySelector(isInstanceOfHTMLMapElement, t, selector) + } + let querySelector_htmlMediaElement = (t: T.t, selector: string): option<htmlMediaElement> => { + safeQuerySelector(isInstanceOfHTMLMediaElement, t, selector) + } + let querySelector_htmlMenuElement = (t: T.t, selector: string): option<htmlMenuElement> => { + safeQuerySelector(isInstanceOfHTMLMenuElement, t, selector) + } + let querySelector_htmlMetaElement = (t: T.t, selector: string): option<htmlMetaElement> => { + safeQuerySelector(isInstanceOfHTMLMetaElement, t, selector) + } + let querySelector_htmlMeterElement = (t: T.t, selector: string): option<htmlMeterElement> => { + safeQuerySelector(isInstanceOfHTMLMeterElement, t, selector) + } + let querySelector_htmlModElement = (t: T.t, selector: string): option<htmlModElement> => { + safeQuerySelector(isInstanceOfHTMLModElement, t, selector) + } + let querySelector_htmlObjectElement = (t: T.t, selector: string): option<htmlObjectElement> => { + safeQuerySelector(isInstanceOfHTMLObjectElement, t, selector) + } + let querySelector_htmlOListElement = (t: T.t, selector: string): option<htmloListElement> => { + safeQuerySelector(isInstanceOfHTMLOListElement, t, selector) + } + let querySelector_htmlOptGroupElement = (t: T.t, selector: string): option< + htmlOptGroupElement, + > => { + safeQuerySelector(isInstanceOfHTMLOptGroupElement, t, selector) + } + let querySelector_htmlOptionElement = (t: T.t, selector: string): option<htmlOptionElement> => { + safeQuerySelector(isInstanceOfHTMLOptionElement, t, selector) + } + let querySelector_htmlOutputElement = (t: T.t, selector: string): option<htmlOutputElement> => { + safeQuerySelector(isInstanceOfHTMLOutputElement, t, selector) + } + let querySelector_htmlParagraphElement = (t: T.t, selector: string): option< + htmlParagraphElement, + > => { + safeQuerySelector(isInstanceOfHTMLParagraphElement, t, selector) + } + let querySelector_htmlPictureElement = (t: T.t, selector: string): option<htmlPictureElement> => { + safeQuerySelector(isInstanceOfHTMLPictureElement, t, selector) + } + let querySelector_htmlPreElement = (t: T.t, selector: string): option<htmlPreElement> => { + safeQuerySelector(isInstanceOfHTMLPreElement, t, selector) + } + let querySelector_htmlProgressElement = (t: T.t, selector: string): option< + htmlProgressElement, + > => { + safeQuerySelector(isInstanceOfHTMLProgressElement, t, selector) + } + let querySelector_htmlQuoteElement = (t: T.t, selector: string): option<htmlQuoteElement> => { + safeQuerySelector(isInstanceOfHTMLQuoteElement, t, selector) + } + let querySelector_htmlScriptElement = (t: T.t, selector: string): option<htmlScriptElement> => { + safeQuerySelector(isInstanceOfHTMLScriptElement, t, selector) + } + let querySelector_htmlSelectElement = (t: T.t, selector: string): option<htmlSelectElement> => { + safeQuerySelector(isInstanceOfHTMLSelectElement, t, selector) + } + let querySelector_htmlSlotElement = (t: T.t, selector: string): option<htmlSlotElement> => { + safeQuerySelector(isInstanceOfHTMLSlotElement, t, selector) + } + let querySelector_htmlSourceElement = (t: T.t, selector: string): option<htmlSourceElement> => { + safeQuerySelector(isInstanceOfHTMLSourceElement, t, selector) + } + let querySelector_htmlSpanElement = (t: T.t, selector: string): option<htmlSpanElement> => { + safeQuerySelector(isInstanceOfHTMLSpanElement, t, selector) + } + let querySelector_htmlStyleElement = (t: T.t, selector: string): option<htmlStyleElement> => { + safeQuerySelector(isInstanceOfHTMLStyleElement, t, selector) + } + let querySelector_htmlTableCaptionElement = (t: T.t, selector: string): option< + htmlTableCaptionElement, + > => { + safeQuerySelector(isInstanceOfHTMLTableCaptionElement, t, selector) + } + let querySelector_htmlTableCellElement = (t: T.t, selector: string): option< + htmlTableCellElement, + > => { + safeQuerySelector(isInstanceOfHTMLTableCellElement, t, selector) + } + let querySelector_htmlTableColElement = (t: T.t, selector: string): option< + htmlTableColElement, + > => { + safeQuerySelector(isInstanceOfHTMLTableColElement, t, selector) + } + let querySelector_htmlTableElement = (t: T.t, selector: string): option<htmlTableElement> => { + safeQuerySelector(isInstanceOfHTMLTableElement, t, selector) + } + let querySelector_htmlTableRowElement = (t: T.t, selector: string): option< + htmlTableRowElement, + > => { + safeQuerySelector(isInstanceOfHTMLTableRowElement, t, selector) + } + let querySelector_htmlTableSectionElement = (t: T.t, selector: string): option< + htmlTableSectionElement, + > => { + safeQuerySelector(isInstanceOfHTMLTableSectionElement, t, selector) + } + let querySelector_htmlTemplateElement = (t: T.t, selector: string): option< + htmlTemplateElement, + > => { + safeQuerySelector(isInstanceOfHTMLTemplateElement, t, selector) + } + let querySelector_htmlTextAreaElement = (t: T.t, selector: string): option< + htmlTextAreaElement, + > => { + safeQuerySelector(isInstanceOfHTMLTextAreaElement, t, selector) + } + let querySelector_htmlTimeElement = (t: T.t, selector: string): option<htmlTimeElement> => { + safeQuerySelector(isInstanceOfHTMLTimeElement, t, selector) + } + let querySelector_htmlTitleElement = (t: T.t, selector: string): option<htmlTitleElement> => { + safeQuerySelector(isInstanceOfHTMLTitleElement, t, selector) + } + let querySelector_htmlTrackElement = (t: T.t, selector: string): option<htmlTrackElement> => { + safeQuerySelector(isInstanceOfHTMLTrackElement, t, selector) + } + let querySelector_htmlUListElement = (t: T.t, selector: string): option<htmluListElement> => { + safeQuerySelector(isInstanceOfHTMLUListElement, t, selector) + } + let querySelector_htmlUnknownElement = (t: T.t, selector: string): option<htmlUnknownElement> => { + safeQuerySelector(isInstanceOfHTMLUnknownElement, t, selector) + } + let querySelector_htmlVideoElement = (t: T.t, selector: string): option<htmlVideoElement> => { + safeQuerySelector(isInstanceOfHTMLVideoElement, t, selector) + } }