From c04988a76fceca7abad8c91edfdfa05aa27e1d75 Mon Sep 17 00:00:00 2001 From: Andrew Herron Date: Mon, 31 May 2021 11:52:59 +1000 Subject: [PATCH 1/7] TINY-7416: Remove @bs prefixed extensions; all APIs are now pipe-first. --- examples/dom_example.re | 122 ++-- src/Webapi.re | 6 +- src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re | 114 ++-- src/Webapi/Canvas/Webapi__Canvas__WebGl.re | 52 +- src/Webapi/Dom/Webapi__Dom__AnimationEvent.re | 10 +- src/Webapi/Dom/Webapi__Dom__Attr.re | 14 +- .../Dom/Webapi__Dom__BeforeUnloadEvent.re | 6 +- src/Webapi/Dom/Webapi__Dom__CharacterData.re | 14 +- src/Webapi/Dom/Webapi__Dom__ChildNode.re | 2 +- src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re | 6 +- src/Webapi/Dom/Webapi__Dom__CloseEvent.re | 10 +- .../Dom/Webapi__Dom__CompositionEvent.re | 6 +- .../Dom/Webapi__Dom__CssStyleDeclaration.re | 264 ++++---- src/Webapi/Dom/Webapi__Dom__CustomEvent.re | 4 +- src/Webapi/Dom/Webapi__Dom__Document.re | 92 +-- src/Webapi/Dom/Webapi__Dom__DocumentType.re | 6 +- .../Dom/Webapi__Dom__DomImplementation.re | 14 +- src/Webapi/Dom/Webapi__Dom__DomRect.re | 18 +- src/Webapi/Dom/Webapi__Dom__DomStringMap.re | 10 +- src/Webapi/Dom/Webapi__Dom__DomTokenList.re | 30 +- src/Webapi/Dom/Webapi__Dom__DragEvent.re | 6 +- src/Webapi/Dom/Webapi__Dom__Element.re | 248 +++++--- src/Webapi/Dom/Webapi__Dom__ErrorEvent.re | 14 +- src/Webapi/Dom/Webapi__Dom__Event.re | 30 +- src/Webapi/Dom/Webapi__Dom__EventTarget.re | 578 +++++++++--------- src/Webapi/Dom/Webapi__Dom__FocusEvent.re | 6 +- .../Dom/Webapi__Dom__GlobalEventHandlers.re | 12 +- src/Webapi/Dom/Webapi__Dom__History.re | 18 +- src/Webapi/Dom/Webapi__Dom__HtmlCollection.re | 8 +- src/Webapi/Dom/Webapi__Dom__HtmlDocument.re | 111 ++-- src/Webapi/Dom/Webapi__Dom__HtmlElement.re | 111 ++-- .../Dom/Webapi__Dom__HtmlFormElement.re | 48 +- .../Dom/Webapi__Dom__HtmlImageElement.re | 58 +- .../Dom/Webapi__Dom__HtmlInputElement.re | 236 +++---- .../Dom/Webapi__Dom__IdbVersionChangeEvent.re | 8 +- src/Webapi/Dom/Webapi__Dom__Image.re | 10 +- src/Webapi/Dom/Webapi__Dom__InputEvent.re | 8 +- src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re | 30 +- src/Webapi/Dom/Webapi__Dom__Location.re | 52 +- src/Webapi/Dom/Webapi__Dom__MouseEvent.re | 62 +- .../Dom/Webapi__Dom__MutationObserver.re | 8 +- src/Webapi/Dom/Webapi__Dom__MutationRecord.re | 18 +- src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re | 18 +- src/Webapi/Dom/Webapi__Dom__Node.re | 78 ++- src/Webapi/Dom/Webapi__Dom__NodeIterator.re | 16 +- src/Webapi/Dom/Webapi__Dom__NodeList.re | 8 +- .../Webapi__Dom__NonDocumentTypeChildNode.re | 4 +- .../Dom/Webapi__Dom__NonElementParentNode.re | 2 +- .../Dom/Webapi__Dom__PageTransitionEvent.re | 6 +- src/Webapi/Dom/Webapi__Dom__ParentNode.re | 12 +- src/Webapi/Dom/Webapi__Dom__PointerEvent.re | 20 +- src/Webapi/Dom/Webapi__Dom__PopStateEvent.re | 6 +- .../Dom/Webapi__Dom__ProcessingInstruction.re | 2 +- src/Webapi/Dom/Webapi__Dom__ProgressEvent.re | 10 +- src/Webapi/Dom/Webapi__Dom__Range.re | 76 +-- src/Webapi/Dom/Webapi__Dom__RelatedEvent.re | 6 +- src/Webapi/Dom/Webapi__Dom__Selection.re | 40 +- src/Webapi/Dom/Webapi__Dom__ShadowRoot.re | 4 +- src/Webapi/Dom/Webapi__Dom__Slotable.re | 2 +- src/Webapi/Dom/Webapi__Dom__StorageEvent.re | 14 +- src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re | 14 +- src/Webapi/Dom/Webapi__Dom__Text.re | 4 +- src/Webapi/Dom/Webapi__Dom__TimeEvent.re | 8 +- src/Webapi/Dom/Webapi__Dom__TouchEvent.re | 18 +- src/Webapi/Dom/Webapi__Dom__TrackEvent.re | 6 +- .../Dom/Webapi__Dom__TransitionEvent.re | 10 +- src/Webapi/Dom/Webapi__Dom__TreeWalker.re | 24 +- src/Webapi/Dom/Webapi__Dom__UiEvent.re | 8 +- src/Webapi/Dom/Webapi__Dom__ValidityState.re | 22 +- .../Dom/Webapi__Dom__WebGlContextEvent.re | 6 +- src/Webapi/Dom/Webapi__Dom__WheelEvent.re | 12 +- src/Webapi/Dom/Webapi__Dom__Window.re | 138 ++--- ...pi__ResizeObserver__ResizeObserverEntry.re | 4 +- src/Webapi/Webapi__Base64.re | 4 +- src/Webapi/Webapi__Blob.re | 27 +- src/Webapi/Webapi__Canvas.re | 12 +- src/Webapi/Webapi__Dom.re | 8 +- src/Webapi/Webapi__File.re | 8 +- src/Webapi/Webapi__Performance.re | 2 +- src/Webapi/Webapi__ReadableStream.re | 25 +- src/Webapi/Webapi__ResizeObserver.re | 10 +- src/Webapi/Webapi__Url.re | 89 ++- .../Canvas/Webapi__Canvas__Canvas2d__test.re | 80 +-- .../Webapi/Dom/Webapi__Dom__Document__test.re | 110 ++-- .../Dom/Webapi__Dom__DomStringMap__test.re | 17 +- .../Dom/Webapi__Dom__DomTokenList__test.re | 34 +- .../Dom/Webapi__Dom__DragEvent__test.re | 74 +-- .../Webapi/Dom/Webapi__Dom__Element__test.re | 134 ++-- .../Dom/Webapi__Dom__EventTarget__test.re | 36 +- .../Webapi__Dom__GlobalEventHandlers__test.re | 90 ++- .../Webapi/Dom/Webapi__Dom__History__test.re | 18 +- .../Dom/Webapi__Dom__HtmlDocument__test.re | 84 ++- .../Dom/Webapi__Dom__HtmlElement__test.re | 106 ++-- .../Dom/Webapi__Dom__KeyboardEvent__test.re | 52 +- .../Webapi/Dom/Webapi__Dom__Location__test.re | 52 +- .../Dom/Webapi__Dom__MouseEvent__test.re | 72 +-- .../Webapi/Dom/Webapi__Dom__NodeList__test.re | 4 +- tests/Webapi/Dom/Webapi__Dom__Node__test.re | 80 +-- .../Dom/Webapi__Dom__PointerEvent__test.re | 88 +-- tests/Webapi/Dom/Webapi__Dom__Range__test.re | 64 +- .../Dom/Webapi__Dom__Selection__test.re | 46 +- tests/Webapi/Dom/Webapi__Dom__Text__test.re | 4 +- tests/Webapi/Dom/Webapi__Dom__Window__test.re | 46 +- tests/Webapi/Webapi__Blob__test.re | 19 +- tests/Webapi/Webapi__ReadableStream__test.re | 4 +- tests/Webapi/Webapi__ResizeObserver__test.re | 17 +- tests/Webapi/Webapi__Url__test.re | 2 +- 107 files changed, 2369 insertions(+), 2227 deletions(-) diff --git a/examples/dom_example.re b/examples/dom_example.re index 6abaf599..6caa9240 100644 --- a/examples/dom_example.re +++ b/examples/dom_example.re @@ -1,16 +1,7 @@ open Webapi.Dom; +open Belt.Option; /* Adapted from https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Examples#Example_7:_Displaying_Event_Object_Properties */ -/* Option.map */ -let map = (f) => - fun - | Some(v) => Some(f(v)) - | None => None; - -let andThen = (f: 'a => option('b)) => - fun - | Some(v) => f(v) - | None => None; let unwrapUnsafely = fun @@ -20,79 +11,76 @@ let unwrapUnsafely = /* * These SHOULD type check */ -document |> Document.createElement("div") - |> Element.className; +document->Document.createElement("div")->Element.className; -document |> Document.createElement("div") - |> Element.nextElementSibling - |> map(Element.innerText); /* innerText is a function that accepts a Node */ +document->Document.createElement("div")->Element.nextElementSibling->map(Element.innerText); /* innerText is a function that accepts a Node */ /* Before subtyping: -document |> Document.createElement("div") - |> Element.asNode - |> Node.parentElement /* inherited from Node, returns DomRe.element */ - |> map(Element.innerText); /* inherited from Node */ -*/ + document -> Document.createElement("div") + -> Element.asNode + -> Node.parentElement /* inherited from Node, returns DomRe.element */ + -> map(Element.innerText); /* inherited from Node */ + */ /* After subtyping: */ -document |> Document.createElement("div") - |> Element.parentElement /* inherited from Node, returns DomRe.element */ - |> map(Element.innerText); /* inherited from Node */ +document +->Document.createElement("div") +->Element.parentElement /* inherited from Node, returns DomRe.element */ +->map(Element.innerText); /* inherited from Node */ -let el = - document |> Document.createElement("div") - |> Element.asHtmlElement - |> unwrapUnsafely; +let el = document->Document.createElement("div")->Element.asHtmlElement->unwrapUnsafely; /* -document |> Document.asHtmlDocument - |> andThen(HtmlDocument.body) - |> map(Element.appendChild(el)); -*/ + document -> Document.asHtmlDocument + -> andThen(HtmlDocument.body) + -> map(Element.appendChild(el)); + */ /* Before subtyping: -document |> Document.asHtmlDocument - |> andThen(HtmlDocument.body) - |> map(Element.appendChild (el |> HtmlElement.asNode)); -*/ + document -> Document.asHtmlDocument + -> andThen(HtmlDocument.body) + -> map(Element.appendChild (el -> HtmlElement.asNode)); + */ /* After subtyping: */ -document |> Document.asHtmlDocument - |> andThen(HtmlDocument.body) - |> map(Element.appendChild(el)); - -/* -/* -* These MAY fail type check -*/ -document |> Document.createElement("div") - |> Element.nextElementSibling - |> map(Node.innerText); +document +->Document.asHtmlDocument +->flatMap(HtmlDocument.body) +->map(body => body->Element.appendChild(el)); /* -* These SHOULD NOT type check -*/ -document |> Document.createElement("div") - |> Element.asNode - |> Element.parentElement; /* inherited from Node, returns DomRe.element */ -*/ + /* + * These MAY fail type check + */ + document -> Document.createElement("div") + -> Element.nextElementSibling + -> map(Node.innerText); + /* + * These SHOULD NOT type check + */ + document -> Document.createElement("div") + -> Element.asNode + -> Element.parentElement; /* inherited from Node, returns DomRe.element */ + */ /* -/* ideal, but requires piped setters */ -switch (document |> body) { -| Some body => - document |> createElement("div") - |> setInnerText("") - |> setClassName("reason_tools_button") - |> setOnClick(swap) - |> (body |> appendChild); -| None => - ... -} -*/ - + /* ideal, but requires piped setters */ + switch (document -> body) { + | Some body => + document -> createElement("div") + -> setInnerText("") + -> setClassName("reason_tools_button") + -> setOnClick(swap) + -> (body -> appendChild); + | None => + ... + } + */ /* non-standard event-specific listener API - log screen coordinates of mouse cursor when moved */ -document |> Document.createElement("div") - |> Element.addMouseMoveEventListener(e => (MouseEvent.screenX(e), MouseEvent.screenY(e)) |> Js.log); \ No newline at end of file +document +->Document.createElement("div") +->Element.addMouseMoveEventListener(e => + (MouseEvent.screenX(e), MouseEvent.screenY(e))->Js.log + ); diff --git a/src/Webapi.re b/src/Webapi.re index 00ccfa56..aab2ab05 100644 --- a/src/Webapi.re +++ b/src/Webapi.re @@ -31,6 +31,6 @@ module Url = Webapi__Url; type rafId; -[@bs.val] external requestAnimationFrame : (float => unit) => unit = ""; -[@bs.val] external requestCancellableAnimationFrame : (float => unit) => rafId = "requestAnimationFrame"; -[@bs.val] external cancelAnimationFrame : rafId => unit = ""; +[@val] external requestAnimationFrame : (float => unit) => unit = ""; +[@val] external requestCancellableAnimationFrame : (float => unit) => rafId = "requestAnimationFrame"; +[@val] external cancelAnimationFrame : rafId => unit = ""; diff --git a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re index b3899962..a1db0ad8 100644 --- a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re +++ b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re @@ -78,29 +78,29 @@ type style(_) = | Pattern: style(pattern); /* 2d Canvas API, following https://simon.html5.org/dump/html5-canvas-cheat-sheet.html */ -[@bs.send.pipe : t] external save : unit = ""; -[@bs.send.pipe : t] external restore : unit = ""; +[@send] external save: t => unit = ""; +[@send] external restore: t => unit = ""; /* Transformation */ -[@bs.send.pipe : t] external scale : (~x: float, ~y: float) => unit = ""; -[@bs.send.pipe : t] external rotate : float => unit = ""; -[@bs.send.pipe : t] external translate : (~x: float, ~y: float) => unit = ""; -[@bs.send.pipe : t] external transform : (~m11: float, ~m12: float, ~m21: float, ~m22: float, ~dx: float, ~dy: float) => unit = ""; -[@bs.send.pipe : t] external setTransform : (~m11: float, ~m12: float, ~m21: float, ~m22: float, ~dx: float, ~dy: float) => unit = ""; +[@send] external scale: (t, ~x: float, ~y: float) => unit = ""; +[@send] external rotate: t => float => unit = ""; +[@send] external translate: (t, ~x: float, ~y: float) => unit = ""; +[@send] external transform: (t, ~m11: float, ~m12: float, ~m21: float, ~m22: float, ~dx: float, ~dy: float) => unit = ""; +[@send] external setTransform: (t, ~m11: float, ~m12: float, ~m21: float, ~m22: float, ~dx: float, ~dy: float) => unit = ""; /* Compositing */ -[@bs.set] external globalAlpha : (t, float) => unit = ""; -[@bs.set] external globalCompositeOperation : (t, Composite.t) => unit = ""; +[@set] external globalAlpha : (t, float) => unit = ""; +[@set] external globalCompositeOperation : (t, Composite.t) => unit = ""; /* Line Styles */ -[@bs.set] external lineWidth : (t, float) => unit = ""; -[@bs.set] external lineCap : (t, LineCap.t) => unit = ""; -[@bs.set] external lineJoin : (t, LineJoin.t) => unit = ""; -[@bs.set] external miterLimit : (t, float) => unit = ""; +[@set] external lineWidth : (t, float) => unit = ""; +[@set] external lineCap : (t, LineCap.t) => unit = ""; +[@set] external lineJoin : (t, LineJoin.t) => unit = ""; +[@set] external miterLimit : (t, float) => unit = ""; /* Colors, Styles, and Shadows */ -[@bs.set] external setFillStyle : (t, 'a) => unit = "fillStyle"; -[@bs.set] external setStrokeStyle : (t, 'a) => unit = "strokeStyle"; +[@set] external setFillStyle : (t, 'a) => unit = "fillStyle"; +[@set] external setStrokeStyle : (t, 'a) => unit = "strokeStyle"; /* in re unused warnings awaiting release of https://github.com/bloomberg/bucklescript/issues/1656 @@ -130,8 +130,8 @@ let reifyStyle = (type a, x: 'a) : (style(a), a) => { ); }; -[@bs.get] external fillStyle : t => 'a = ""; -[@bs.get] external strokeStyle : t => 'a = ""; +[@get] external fillStyle : t => 'a = ""; +[@get] external strokeStyle : t => 'a = ""; let fillStyle = (ctx: t) => ctx |> fillStyle |> reifyStyle; @@ -139,62 +139,62 @@ let fillStyle = (ctx: t) => let strokeStyle = (ctx: t) => ctx |> strokeStyle |> reifyStyle; -[@bs.set] external shadowOffsetX : (t, float) => unit = ""; -[@bs.set] external shadowOffsetY : (t, float) => unit = ""; -[@bs.set] external shadowBlur : (t, float) => unit = ""; -[@bs.set] external shadowColor : (t, string) => unit = ""; +[@set] external shadowOffsetX : (t, float) => unit = ""; +[@set] external shadowOffsetY : (t, float) => unit = ""; +[@set] external shadowBlur : (t, float) => unit = ""; +[@set] external shadowColor : (t, string) => unit = ""; /* Gradients */ -[@bs.send.pipe : t] external createLinearGradient : (~x0: float, ~y0: float, ~x1: float, ~y1: float) => gradient = ""; -[@bs.send.pipe : t] external createRadialGradient : (~x0: float, ~y0: float, ~x1: float, ~y1: float, ~r0: float, ~r1: float) => gradient = ""; -[@bs.send.pipe : gradient] external addColorStop : (float, string) => unit = ""; -[@bs.val] external createPattern : ( +[@send] external createLinearGradient: (t, ~x0: float, ~y0: float, ~x1: float, ~y1: float) => gradient = ""; +[@send] external createRadialGradient: (t, ~x0: float, ~y0: float, ~x1: float, ~y1: float, ~r0: float, ~r1: float) => gradient = ""; +[@send] external addColorStop: (gradient, float, string) => unit = ""; +[@val] external createPattern : ( t, Dom.element, - [@bs.string] [ + [@string] [ | `repeat - [@bs.as "repeat-x"] | `repeatX - [@bs.as "repeat-y"] | `repeatY - [@bs.as "no-repeat"] | `noRepeat + [@as "repeat-x"] | `repeatX + [@as "repeat-y"] | `repeatY + [@as "no-repeat"] | `noRepeat ] ) => pattern = ""; /* Paths */ -[@bs.send.pipe : t] external beginPath : unit = ""; -[@bs.send.pipe : t] external closePath : unit = ""; -[@bs.send.pipe : t] external fill : unit = ""; -[@bs.send.pipe : t] external stroke : unit = ""; -[@bs.send.pipe : t] external clip : unit = ""; -[@bs.send.pipe : t] external moveTo : (~x: float, ~y: float) => unit = ""; -[@bs.send.pipe : t] external lineTo : (~x: float, ~y: float) => unit = ""; -[@bs.send.pipe : t] external quadraticCurveTo : (~cp1x: float, ~cp1y: float, ~x: float, ~y: float) => unit = ""; -[@bs.send.pipe : t] external bezierCurveTo : (~cp1x: float, ~cp1y: float, ~cp2x: float, ~cp2y: float, ~x: float, ~y: float) => unit = ""; -[@bs.send.pipe : t] external arcTo : (~x1: float, ~y1: float, ~x2: float, ~y2: float, ~r: float) => unit = ""; -[@bs.send.pipe : t] external arc : (~x: float, ~y: float, ~r: float, ~startAngle: float, ~endAngle: float, ~anticw: bool) => unit = ""; -[@bs.send.pipe : t] external rect : (~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; -[@bs.send.pipe : t] external isPointInPath : (~x: float, ~y: float) => bool = ""; +[@send] external beginPath: t => unit = ""; +[@send] external closePath: t => unit = ""; +[@send] external fill: t => unit = ""; +[@send] external stroke: t => unit = ""; +[@send] external clip: t => unit = ""; +[@send] external moveTo: (t, ~x: float, ~y: float) => unit = ""; +[@send] external lineTo: (t, ~x: float, ~y: float) => unit = ""; +[@send] external quadraticCurveTo: (t, ~cp1x: float, ~cp1y: float, ~x: float, ~y: float) => unit = ""; +[@send] external bezierCurveTo: (t, ~cp1x: float, ~cp1y: float, ~cp2x: float, ~cp2y: float, ~x: float, ~y: float) => unit = ""; +[@send] external arcTo: (t, ~x1: float, ~y1: float, ~x2: float, ~y2: float, ~r: float) => unit = ""; +[@send] external arc: (t, ~x: float, ~y: float, ~r: float, ~startAngle: float, ~endAngle: float, ~anticw: bool) => unit = ""; +[@send] external rect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; +[@send] external isPointInPath: (t, ~x: float, ~y: float) => bool = ""; /* Text */ -[@bs.set] external font : (t, string) => unit = ""; -[@bs.set] external textAlign : (t, string) => unit = ""; -[@bs.set] external textBaseline : (t, string) => unit = ""; -[@bs.send.pipe : t] external fillText : (string, ~x: float, ~y: float, ~maxWidth: float=?) => unit = ""; -[@bs.send.pipe : t] external strokeText : (string, ~x: float, ~y: float, ~maxWidth: float=?) => unit = ""; -[@bs.send.pipe : t] external measureText : string => measureText = ""; -[@bs.get] external width : measureText => float = ""; +[@set] external font : (t, string) => unit = ""; +[@set] external textAlign : (t, string) => unit = ""; +[@set] external textBaseline : (t, string) => unit = ""; +[@send] external fillText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?) => unit = ""; +[@send] external strokeText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?) => unit = ""; +[@send] external measureText: t => string => measureText = ""; +[@get] external width : measureText => float = ""; /* Rectangles */ -[@bs.send.pipe : t] external fillRect : (~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; -[@bs.send.pipe : t] external strokeRect : (~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; -[@bs.send.pipe : t] external clearRect : (~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; +[@send] external fillRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; +[@send] external strokeRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; +[@send] external clearRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; -[@bs.send] external createImageDataCoords : (t, ~width: float, ~height: float) => Webapi__Dom__Image.t = "createImageData"; -[@bs.send] external createImageDataFromImage : (t, Webapi__Dom__Image.t) => Webapi__Dom__Image.t = "createImageData"; +[@send] external createImageDataCoords : (t, ~width: float, ~height: float) => Webapi__Dom__Image.t = "createImageData"; +[@send] external createImageDataFromImage : (t, Webapi__Dom__Image.t) => Webapi__Dom__Image.t = "createImageData"; -[@bs.send] external getImageData : (t, ~sx: float, ~sy: float, ~sw: float, ~sh: float) => Webapi__Dom__Image.t = ""; +[@send] external getImageData : (t, ~sx: float, ~sy: float, ~sw: float, ~sh: float) => Webapi__Dom__Image.t = ""; -[@bs.send] external putImageData : ( +[@send] external putImageData : ( t, ~imageData: Webapi__Dom__Image.t, ~dx: float, @@ -202,7 +202,7 @@ let strokeStyle = (ctx: t) => ) => unit = ""; -[@bs.send] external putImageDataWithDirtyRect : ( +[@send] external putImageDataWithDirtyRect : ( t, ~imageData: Webapi__Dom__Image.t, ~dx: float, diff --git a/src/Webapi/Canvas/Webapi__Canvas__WebGl.re b/src/Webapi/Canvas/Webapi__Canvas__WebGl.re index 601406a2..bb85861e 100644 --- a/src/Webapi/Canvas/Webapi__Canvas__WebGl.re +++ b/src/Webapi/Canvas/Webapi__Canvas__WebGl.re @@ -66,40 +66,40 @@ let _STATIC_DRAW: int = 35044; let _DYNAMIC_DRAW: int = 35048; /* void clear(GLbitfield mask); */ -[@bs.send] external clear : (glT, int) => unit = "clear"; +[@send] external clear : (glT, int) => unit = "clear"; /* void clearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); */ -[@bs.send] external clearColor : (glT, float, float, float, float) => unit = "clearColor"; +[@send] external clearColor : (glT, float, float, float, float) => unit = "clearColor"; /* void enable(GLenum cap); */ -[@bs.send] external enable : (glT, int) => unit = "enable"; +[@send] external enable : (glT, int) => unit = "enable"; /* void disable(GLenum cap); */ -[@bs.send] external disable : (glT, int) => unit = "disable"; +[@send] external disable : (glT, int) => unit = "disable"; /* void blendFunc(GLenum sfactor, GLenum dfactor); */ -[@bs.send] external blendFunc : (glT, int, int) => unit = "blendFunc"; +[@send] external blendFunc : (glT, int, int) => unit = "blendFunc"; /* void cullFace(GLenum mode); */ -[@bs.send] external cullFace : (glT, int) => unit = "cullFace"; -[@bs.send] external createBuffer : glT => bufferT = "createBuffer"; -[@bs.send] external deleteBuffer : (glT, bufferT) => unit = "deleteBuffer"; -[@bs.send] external bindBuffer : (glT, int, bufferT) => unit = "bindBuffer"; -[@bs.send] external bufferData : (glT, int, Js.Typed_array.Uint16Array.t, int) => unit = "bufferData"; -[@bs.send] external bufferFloatData : (glT, int, Js.Typed_array.Float32Array.t, int) => unit = "bufferData"; -[@bs.send] external createProgram : glT => programT = "createProgram"; -[@bs.send] external linkProgram : (glT, programT) => unit = "linkProgram"; -[@bs.send] external useProgram : (glT, programT) => unit = "useProgram"; -[@bs.send] external getProgramInfoLog : (glT, programT) => string = "getProgramInfoLog"; -[@bs.send] external bindAttribLocation : (glT, programT, int, string) => unit = "bindAttribLocation"; -[@bs.send] external createShader : (glT, int) => shaderT = "createShader"; -[@bs.send] external shaderSource : (glT, shaderT, string) => unit = "shaderSource"; -[@bs.send] external compileShader : (glT, shaderT) => unit = "compileShader"; -[@bs.send] external attachShader : (glT, programT, shaderT) => unit = "attachShader"; -[@bs.send] external getShaderInfoLog : (glT, shaderT) => string = "getShaderInfoLog"; +[@send] external cullFace : (glT, int) => unit = "cullFace"; +[@send] external createBuffer : glT => bufferT = "createBuffer"; +[@send] external deleteBuffer : (glT, bufferT) => unit = "deleteBuffer"; +[@send] external bindBuffer : (glT, int, bufferT) => unit = "bindBuffer"; +[@send] external bufferData : (glT, int, Js.Typed_array.Uint16Array.t, int) => unit = "bufferData"; +[@send] external bufferFloatData : (glT, int, Js.Typed_array.Float32Array.t, int) => unit = "bufferData"; +[@send] external createProgram : glT => programT = "createProgram"; +[@send] external linkProgram : (glT, programT) => unit = "linkProgram"; +[@send] external useProgram : (glT, programT) => unit = "useProgram"; +[@send] external getProgramInfoLog : (glT, programT) => string = "getProgramInfoLog"; +[@send] external bindAttribLocation : (glT, programT, int, string) => unit = "bindAttribLocation"; +[@send] external createShader : (glT, int) => shaderT = "createShader"; +[@send] external shaderSource : (glT, shaderT, string) => unit = "shaderSource"; +[@send] external compileShader : (glT, shaderT) => unit = "compileShader"; +[@send] external attachShader : (glT, programT, shaderT) => unit = "attachShader"; +[@send] external getShaderInfoLog : (glT, shaderT) => string = "getShaderInfoLog"; /* void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset); */ -[@bs.send] external drawElements : (glT, int, int, int, int) => unit = "drawElements"; +[@send] external drawElements : (glT, int, int, int, int) => unit = "drawElements"; /* void enableVertexAttribArray(GLuint index); */ -[@bs.send] external enableVertexAttribArray : (glT, int) => unit = "enableVertexAttribArray"; +[@send] external enableVertexAttribArray : (glT, int) => unit = "enableVertexAttribArray"; /* void vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); */ -[@bs.send] external vertexAttribPointer : (glT, int, int, int, bool, int, int) => unit = "vertexAttribPointer"; +[@send] external vertexAttribPointer : (glT, int, int, int, bool, int, int) => unit = "vertexAttribPointer"; /* GLint gl.getAttribLocation(program, name); */ -[@bs.send] external getAttribLocation : (glT, programT, string) => int = "getAttribLocation"; +[@send] external getAttribLocation : (glT, programT, string) => int = "getAttribLocation"; /* void gl.drawArrays(mode, first, count); */ -[@bs.send] external drawArrays : (glT, int, int, int) => unit = "drawArrays"; +[@send] external drawArrays : (glT, int, int, int) => unit = "drawArrays"; diff --git a/src/Webapi/Dom/Webapi__Dom__AnimationEvent.re b/src/Webapi/Dom/Webapi__Dom__AnimationEvent.re index 201fb0e0..18b6e425 100644 --- a/src/Webapi/Dom/Webapi__Dom__AnimationEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__AnimationEvent.re @@ -2,9 +2,9 @@ type t = Dom.animationEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "AnimationEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "AnimationEvent"; +[@new] external make : string => t = "AnimationEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "AnimationEvent"; -[@bs.get] external animationName : t => string = ""; -[@bs.get] external elapsedTime : t => float = ""; -[@bs.get] external pseudoElement : t => string /* enum-ish */ = ""; +[@get] external animationName : t => string = ""; +[@get] external elapsedTime : t => float = ""; +[@get] external pseudoElement : t => string /* enum-ish */ = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__Attr.re b/src/Webapi/Dom/Webapi__Dom__Attr.re index 7b9846b5..85cb3e05 100644 --- a/src/Webapi/Dom/Webapi__Dom__Attr.re +++ b/src/Webapi/Dom/Webapi__Dom__Attr.re @@ -3,10 +3,10 @@ type t = Dom.attr; include Webapi__Dom__Node.Impl({ type nonrec t = t; }); include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -[@bs.get] external namespaceURI : t => string = ""; -[@bs.get] external prefix : t => string = ""; -[@bs.get] external localName : t => string = ""; -[@bs.get] external name : t => string = ""; -[@bs.get] external value : t => string = ""; -[@bs.get] [@bs.return nullable] external ownerElement : t => option(Dom.element) = ""; -[@bs.get] external specified : t => bool = ""; /* useless; always returns true (exact wording from spec) */ +[@get] external namespaceURI : t => string = ""; +[@get] external prefix : t => string = ""; +[@get] external localName : t => string = ""; +[@get] external name : t => string = ""; +[@get] external value : t => string = ""; +[@get] [@return nullable] external ownerElement : t => option(Dom.element) = ""; +[@get] external specified : t => bool = ""; /* useless; always returns true (exact wording from spec) */ diff --git a/src/Webapi/Dom/Webapi__Dom__BeforeUnloadEvent.re b/src/Webapi/Dom/Webapi__Dom__BeforeUnloadEvent.re index 180c80a8..fa96d62c 100644 --- a/src/Webapi/Dom/Webapi__Dom__BeforeUnloadEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__BeforeUnloadEvent.re @@ -2,7 +2,7 @@ type t = Dom.beforeUnloadEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "BeforeUnloadEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "BeforeUnloadEvent"; +[@new] external make : string => t = "BeforeUnloadEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "BeforeUnloadEvent"; -[@bs.get] external returnValue : t => string = ""; +[@get] external returnValue : t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__CharacterData.re b/src/Webapi/Dom/Webapi__Dom__CharacterData.re index d0f2f018..3058abe1 100644 --- a/src/Webapi/Dom/Webapi__Dom__CharacterData.re +++ b/src/Webapi/Dom/Webapi__Dom__CharacterData.re @@ -1,12 +1,12 @@ module Impl = (T: {type t;}) => { - [@bs.get] external data : T.t => string = ""; - [@bs.get] external length : T.t => int = ""; + [@get] external data : T.t => string = ""; + [@get] external length : T.t => int = ""; - [@bs.send.pipe : T.t] external substringData : (~offset: int, ~count: int) => string = ""; - [@bs.send.pipe : T.t] external appendData : string => unit = ""; - [@bs.send.pipe : T.t] external insertData : (~offset: int, string) => unit = ""; - [@bs.send.pipe : T.t] external deleteData : (~offset: int, ~count: int) => unit = ""; - [@bs.send.pipe : T.t] external replaceData : (~offset: int, ~count: int, string) => unit = ""; + [@send] external substringData: (T.t, ~offset: int, ~count: int) => string = ""; + [@send] external appendData: T.t => string => unit = ""; + [@send] external insertData: (T.t, ~offset: int, string) => unit = ""; + [@send] external deleteData: (T.t, ~offset: int, ~count: int) => unit = ""; + [@send] external replaceData: (T.t, ~offset: int, ~count: int, string) => unit = ""; }; type t = Dom.characterData; diff --git a/src/Webapi/Dom/Webapi__Dom__ChildNode.re b/src/Webapi/Dom/Webapi__Dom__ChildNode.re index 825da614..6bdf9d8f 100644 --- a/src/Webapi/Dom/Webapi__Dom__ChildNode.re +++ b/src/Webapi/Dom/Webapi__Dom__ChildNode.re @@ -1,4 +1,4 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@bs.send.pipe : T.t] external remove : unit = ""; + [@send] external remove: T.t => unit = ""; }; diff --git a/src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re b/src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re index 376e1263..47a6932c 100644 --- a/src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re @@ -2,7 +2,7 @@ type t = Dom.clipboardEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "ClipboardEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "ClipboardEvent"; +[@new] external make : string => t = "ClipboardEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "ClipboardEvent"; -[@bs.get] external clipboardData : t => Dom.dataTransfer = ""; +[@get] external clipboardData : t => Dom.dataTransfer = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__CloseEvent.re b/src/Webapi/Dom/Webapi__Dom__CloseEvent.re index e416b6f3..6daf2493 100644 --- a/src/Webapi/Dom/Webapi__Dom__CloseEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__CloseEvent.re @@ -2,9 +2,9 @@ type t = Dom.closeEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "CloseEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "CloseEvent"; +[@new] external make : string => t = "CloseEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "CloseEvent"; -[@bs.get] external wasClean : t => bool = ""; -[@bs.get] external code : t => int = ""; -[@bs.get] external reason : t => string = ""; +[@get] external wasClean : t => bool = ""; +[@get] external code : t => int = ""; +[@get] external reason : t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__CompositionEvent.re b/src/Webapi/Dom/Webapi__Dom__CompositionEvent.re index f360e5a6..40957315 100644 --- a/src/Webapi/Dom/Webapi__Dom__CompositionEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__CompositionEvent.re @@ -3,7 +3,7 @@ type t = Dom.compositionEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "CompositionEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "CompositionEvent"; +[@new] external make : string => t = "CompositionEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "CompositionEvent"; -[@bs.get] external data : t => string = ""; +[@get] external data : t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__CssStyleDeclaration.re b/src/Webapi/Dom/Webapi__Dom__CssStyleDeclaration.re index 1b7d3cfa..3535b235 100644 --- a/src/Webapi/Dom/Webapi__Dom__CssStyleDeclaration.re +++ b/src/Webapi/Dom/Webapi__Dom__CssStyleDeclaration.re @@ -1,138 +1,138 @@ type t = Dom.cssStyleDeclaration; type cssRule; /* TODO: Move to Webapi__Dom */ -[@bs.get] external cssText : t => string = ""; -[@bs.set] external setCssText : (t, string) => unit = "cssText"; -[@bs.get] external length : t => int = ""; -[@bs.get] external parentRule : t => cssRule = ""; +[@get] external cssText : t => string = ""; +[@set] external setCssText : (t, string) => unit = "cssText"; +[@get] external length : t => int = ""; +[@get] external parentRule : t => cssRule = ""; -[@bs.send.pipe : t] external getPropertyPriority : string => string = ""; -[@bs.send.pipe : t] external getPropertyValue : string => string = ""; -[@bs.send.pipe : t] external item : int => string = ""; -[@bs.send.pipe : t] external removeProperty : string => string = ""; -[@bs.send.pipe : t] external setProperty : (string, string, string) => unit = ""; -/*[@@bs.send.pipe : t] external setPropertyValue : (string, string) => unit = "";*/ /* not mentioned by MDN and not implemented by chrome, but in the CSSOM spec: https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface */ +[@send] external getPropertyPriority: t => string => string = ""; +[@send] external getPropertyValue: t => string => string = ""; +[@send] external item: t => int => string = ""; +[@send] external removeProperty: t => string => string = ""; +[@send] external setProperty: (t, string, string, string) => unit = ""; +[@send] external setPropertyValue : (t, string, string) => unit = ""; /* CSS2Properties */ -[@bs.get] external azimuth : t => string = ""; -[@bs.get] external background : t => string = ""; -[@bs.get] external backgroundAttachment : t => string = ""; -[@bs.get] external backgroundColor : t => string = ""; -[@bs.get] external backgroundImage : t => string = ""; -[@bs.get] external backgroundPosition : t => string = ""; -[@bs.get] external backgroundRepeat : t => string = ""; -[@bs.get] external border : t => string = ""; -[@bs.get] external borderCollapse : t => string = ""; -[@bs.get] external borderColor : t => string = ""; -[@bs.get] external borderSpacing : t => string = ""; -[@bs.get] external borderStyle : t => string = ""; -[@bs.get] external borderTop : t => string = ""; -[@bs.get] external borderRight : t => string = ""; -[@bs.get] external borderBottom : t => string = ""; -[@bs.get] external borderLeft : t => string = ""; -[@bs.get] external borderTopColor : t => string = ""; -[@bs.get] external borderRightColor : t => string = ""; -[@bs.get] external borderBottomColor : t => string = ""; -[@bs.get] external borderLeftColor : t => string = ""; -[@bs.get] external borderTopStyle : t => string = ""; -[@bs.get] external borderRightStyle : t => string = ""; -[@bs.get] external borderBottomStyle : t => string = ""; -[@bs.get] external borderLeftStyle : t => string = ""; -[@bs.get] external borderTopWidth : t => string = ""; -[@bs.get] external borderRightWidth : t => string = ""; -[@bs.get] external borderBottomWidth : t => string = ""; -[@bs.get] external borderLeftWidth : t => string = ""; -[@bs.get] external borderWidth : t => string = ""; -[@bs.get] external bottom : t => string = ""; -[@bs.get] external captionSide : t => string = ""; -[@bs.get] external clear : t => string = ""; -[@bs.get] external clip : t => string = ""; -[@bs.get] external color : t => string = ""; -[@bs.get] external content : t => string = ""; -[@bs.get] external counterIncrement : t => string = ""; -[@bs.get] external counterReset : t => string = ""; -[@bs.get] external cue : t => string = ""; -[@bs.get] external cueAfter : t => string = ""; -[@bs.get] external cueBefore : t => string = ""; -[@bs.get] external cursor : t => string = ""; -[@bs.get] external direction : t => string = ""; -[@bs.get] external display : t => string = ""; -[@bs.get] external elevation : t => string = ""; -[@bs.get] external emptyCells : t => string = ""; -[@bs.get] external cssFloat : t => string = ""; -[@bs.get] external font : t => string = ""; -[@bs.get] external fontFamily : t => string = ""; -[@bs.get] external fontSize : t => string = ""; -[@bs.get] external fontSizeAdjust : t => string = ""; -[@bs.get] external fontStretch : t => string = ""; -[@bs.get] external fontStyle : t => string = ""; -[@bs.get] external fontVariant : t => string = ""; -[@bs.get] external fontWeight : t => string = ""; -[@bs.get] external height : t => string = ""; -[@bs.get] external left : t => string = ""; -[@bs.get] external letterSpacing : t => string = ""; -[@bs.get] external lineHeight : t => string = ""; -[@bs.get] external listStyle : t => string = ""; -[@bs.get] external listStyleImage : t => string = ""; -[@bs.get] external listStylePosition : t => string = ""; -[@bs.get] external listStyleType : t => string = ""; -[@bs.get] external margin : t => string = ""; -[@bs.get] external marginTop : t => string = ""; -[@bs.get] external marginRight : t => string = ""; -[@bs.get] external marginBottom : t => string = ""; -[@bs.get] external marginLeft : t => string = ""; -[@bs.get] external markerOffset : t => string = ""; -[@bs.get] external marks : t => string = ""; -[@bs.get] external maxHeight : t => string = ""; -[@bs.get] external maxWidth : t => string = ""; -[@bs.get] external minHeight : t => string = ""; -[@bs.get] external minWidth : t => string = ""; -[@bs.get] external orphans : t => string = ""; -[@bs.get] external outline : t => string = ""; -[@bs.get] external outlineColor : t => string = ""; -[@bs.get] external outlineStyle : t => string = ""; -[@bs.get] external outlineWidth : t => string = ""; -[@bs.get] external overflow : t => string = ""; -[@bs.get] external padding : t => string = ""; -[@bs.get] external paddingTop : t => string = ""; -[@bs.get] external paddingRight : t => string = ""; -[@bs.get] external paddingBottom : t => string = ""; -[@bs.get] external paddingLeft : t => string = ""; -[@bs.get] external page : t => string = ""; -[@bs.get] external pageBreakAfter : t => string = ""; -[@bs.get] external pageBreakBefore : t => string = ""; -[@bs.get] external pageBreakInside : t => string = ""; -[@bs.get] external pause : t => string = ""; -[@bs.get] external pauseAfter : t => string = ""; -[@bs.get] external pauseBefore : t => string = ""; -[@bs.get] external pitch : t => string = ""; -[@bs.get] external pitchRange : t => string = ""; -[@bs.get] external playDuring : t => string = ""; -[@bs.get] external position : t => string = ""; -[@bs.get] external quotes : t => string = ""; -[@bs.get] external richness : t => string = ""; -[@bs.get] external right : t => string = ""; -[@bs.get] external size : t => string = ""; -[@bs.get] external speak : t => string = ""; -[@bs.get] external speakHeader : t => string = ""; -[@bs.get] external speakNumeral : t => string = ""; -[@bs.get] external speakPunctuation : t => string = ""; -[@bs.get] external speechRate : t => string = ""; -[@bs.get] external stress : t => string = ""; -[@bs.get] external tableLayout : t => string = ""; -[@bs.get] external textAlign : t => string = ""; -[@bs.get] external textDecoration : t => string = ""; -[@bs.get] external textIndent : t => string = ""; -[@bs.get] external textShadow : t => string = ""; -[@bs.get] external textTransform : t => string = ""; -[@bs.get] external top : t => string = ""; -[@bs.get] external unicodeBidi : t => string = ""; -[@bs.get] external verticalAlign : t => string = ""; -[@bs.get] external visibility : t => string = ""; -[@bs.get] external voiceFamily : t => string = ""; -[@bs.get] external volume : t => string = ""; -[@bs.get] external whiteSpace : t => string = ""; -[@bs.get] external widows : t => string = ""; -[@bs.get] external width : t => string = ""; -[@bs.get] external wordSpacing : t => string = ""; -[@bs.get] external zIndex : t => string = ""; \ No newline at end of file +[@get] external azimuth : t => string = ""; +[@get] external background : t => string = ""; +[@get] external backgroundAttachment : t => string = ""; +[@get] external backgroundColor : t => string = ""; +[@get] external backgroundImage : t => string = ""; +[@get] external backgroundPosition : t => string = ""; +[@get] external backgroundRepeat : t => string = ""; +[@get] external border : t => string = ""; +[@get] external borderCollapse : t => string = ""; +[@get] external borderColor : t => string = ""; +[@get] external borderSpacing : t => string = ""; +[@get] external borderStyle : t => string = ""; +[@get] external borderTop : t => string = ""; +[@get] external borderRight : t => string = ""; +[@get] external borderBottom : t => string = ""; +[@get] external borderLeft : t => string = ""; +[@get] external borderTopColor : t => string = ""; +[@get] external borderRightColor : t => string = ""; +[@get] external borderBottomColor : t => string = ""; +[@get] external borderLeftColor : t => string = ""; +[@get] external borderTopStyle : t => string = ""; +[@get] external borderRightStyle : t => string = ""; +[@get] external borderBottomStyle : t => string = ""; +[@get] external borderLeftStyle : t => string = ""; +[@get] external borderTopWidth : t => string = ""; +[@get] external borderRightWidth : t => string = ""; +[@get] external borderBottomWidth : t => string = ""; +[@get] external borderLeftWidth : t => string = ""; +[@get] external borderWidth : t => string = ""; +[@get] external bottom : t => string = ""; +[@get] external captionSide : t => string = ""; +[@get] external clear : t => string = ""; +[@get] external clip : t => string = ""; +[@get] external color : t => string = ""; +[@get] external content : t => string = ""; +[@get] external counterIncrement : t => string = ""; +[@get] external counterReset : t => string = ""; +[@get] external cue : t => string = ""; +[@get] external cueAfter : t => string = ""; +[@get] external cueBefore : t => string = ""; +[@get] external cursor : t => string = ""; +[@get] external direction : t => string = ""; +[@get] external display : t => string = ""; +[@get] external elevation : t => string = ""; +[@get] external emptyCells : t => string = ""; +[@get] external cssFloat : t => string = ""; +[@get] external font : t => string = ""; +[@get] external fontFamily : t => string = ""; +[@get] external fontSize : t => string = ""; +[@get] external fontSizeAdjust : t => string = ""; +[@get] external fontStretch : t => string = ""; +[@get] external fontStyle : t => string = ""; +[@get] external fontVariant : t => string = ""; +[@get] external fontWeight : t => string = ""; +[@get] external height : t => string = ""; +[@get] external left : t => string = ""; +[@get] external letterSpacing : t => string = ""; +[@get] external lineHeight : t => string = ""; +[@get] external listStyle : t => string = ""; +[@get] external listStyleImage : t => string = ""; +[@get] external listStylePosition : t => string = ""; +[@get] external listStyleType : t => string = ""; +[@get] external margin : t => string = ""; +[@get] external marginTop : t => string = ""; +[@get] external marginRight : t => string = ""; +[@get] external marginBottom : t => string = ""; +[@get] external marginLeft : t => string = ""; +[@get] external markerOffset : t => string = ""; +[@get] external marks : t => string = ""; +[@get] external maxHeight : t => string = ""; +[@get] external maxWidth : t => string = ""; +[@get] external minHeight : t => string = ""; +[@get] external minWidth : t => string = ""; +[@get] external orphans : t => string = ""; +[@get] external outline : t => string = ""; +[@get] external outlineColor : t => string = ""; +[@get] external outlineStyle : t => string = ""; +[@get] external outlineWidth : t => string = ""; +[@get] external overflow : t => string = ""; +[@get] external padding : t => string = ""; +[@get] external paddingTop : t => string = ""; +[@get] external paddingRight : t => string = ""; +[@get] external paddingBottom : t => string = ""; +[@get] external paddingLeft : t => string = ""; +[@get] external page : t => string = ""; +[@get] external pageBreakAfter : t => string = ""; +[@get] external pageBreakBefore : t => string = ""; +[@get] external pageBreakInside : t => string = ""; +[@get] external pause : t => string = ""; +[@get] external pauseAfter : t => string = ""; +[@get] external pauseBefore : t => string = ""; +[@get] external pitch : t => string = ""; +[@get] external pitchRange : t => string = ""; +[@get] external playDuring : t => string = ""; +[@get] external position : t => string = ""; +[@get] external quotes : t => string = ""; +[@get] external richness : t => string = ""; +[@get] external right : t => string = ""; +[@get] external size : t => string = ""; +[@get] external speak : t => string = ""; +[@get] external speakHeader : t => string = ""; +[@get] external speakNumeral : t => string = ""; +[@get] external speakPunctuation : t => string = ""; +[@get] external speechRate : t => string = ""; +[@get] external stress : t => string = ""; +[@get] external tableLayout : t => string = ""; +[@get] external textAlign : t => string = ""; +[@get] external textDecoration : t => string = ""; +[@get] external textIndent : t => string = ""; +[@get] external textShadow : t => string = ""; +[@get] external textTransform : t => string = ""; +[@get] external top : t => string = ""; +[@get] external unicodeBidi : t => string = ""; +[@get] external verticalAlign : t => string = ""; +[@get] external visibility : t => string = ""; +[@get] external voiceFamily : t => string = ""; +[@get] external volume : t => string = ""; +[@get] external whiteSpace : t => string = ""; +[@get] external widows : t => string = ""; +[@get] external width : t => string = ""; +[@get] external wordSpacing : t => string = ""; +[@get] external zIndex : t => string = ""; \ No newline at end of file diff --git a/src/Webapi/Dom/Webapi__Dom__CustomEvent.re b/src/Webapi/Dom/Webapi__Dom__CustomEvent.re index c87805dc..aebbf837 100644 --- a/src/Webapi/Dom/Webapi__Dom__CustomEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__CustomEvent.re @@ -2,5 +2,5 @@ type t = Dom.customEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "CustomEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "CustomEvent"; +[@new] external make : string => t = "CustomEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "CustomEvent"; diff --git a/src/Webapi/Dom/Webapi__Dom__Document.re b/src/Webapi/Dom/Webapi__Dom__Document.re index 44652063..beb0f597 100644 --- a/src/Webapi/Dom/Webapi__Dom__Document.re +++ b/src/Webapi/Dom/Webapi__Dom__Document.re @@ -23,58 +23,58 @@ module Impl = (T: {type t;}) => { Some(Obj.magic(node)) : None; - [@bs.get] external characterSet : T.t => string = ""; - [@bs.get] external compatMode : T.t => string /* compatMode enum */ = ""; /* experimental */ + [@get] external characterSet : T.t => string = ""; + [@get] external compatMode : T.t => string /* compatMode enum */ = ""; /* experimental */ let compatMode: T.t => Webapi__Dom__Types.compatMode = (self) => Webapi__Dom__Types.decodeCompatMode(compatMode(self)); - [@bs.get] external doctype : T.t => Dom.documentType = ""; - [@bs.get] external documentElement : T.t => Dom.element = ""; - [@bs.get] external documentURI : T.t => string = ""; - [@bs.get] external hidden : T.t => bool = ""; - [@bs.get] external implementation : T.t => Dom.domImplementation = ""; - [@bs.get] external lastStyleSheetSet : T.t => string = ""; - [@bs.get] [@bs.return nullable] external pointerLockElement : T.t => option(Dom.element) = ""; /* experimental */ + [@get] external doctype : T.t => Dom.documentType = ""; + [@get] external documentElement : T.t => Dom.element = ""; + [@get] external documentURI : T.t => string = ""; + [@get] external hidden : T.t => bool = ""; + [@get] external implementation : T.t => Dom.domImplementation = ""; + [@get] external lastStyleSheetSet : T.t => string = ""; + [@get] [@return nullable] external pointerLockElement : T.t => option(Dom.element) = ""; /* experimental */ - [@bs.get] external preferredStyleSheetSet : T.t => string = ""; - [@bs.get] [@bs.return nullable] external scrollingElement : T.t => option(Dom.element) = ""; - [@bs.get] external selectedStyleSheetSet : T.t => string = ""; - [@bs.set] external setSelectedStyleSheetSet : (T.t, string) => unit = "selectedStyleSheetSet"; - [@bs.get] external styleSheets : T.t => array(Dom.cssStyleSheet) = ""; /* return StyleSheetList, not array */ - [@bs.get] external styleSheetSets : T.t => array(string) = ""; - [@bs.get] external visibilityState : T.t => string /* visibilityState enum */ = ""; + [@get] external preferredStyleSheetSet : T.t => string = ""; + [@get] [@return nullable] external scrollingElement : T.t => option(Dom.element) = ""; + [@get] external selectedStyleSheetSet : T.t => string = ""; + [@set] external setSelectedStyleSheetSet : (T.t, string) => unit = "selectedStyleSheetSet"; + [@get] external styleSheets : T.t => array(Dom.cssStyleSheet) = ""; /* return StyleSheetList, not array */ + [@get] external styleSheetSets : T.t => array(string) = ""; + [@get] external visibilityState : T.t => string /* visibilityState enum */ = ""; let visibilityState: T.t => Webapi__Dom__Types.visibilityState = (self) => Webapi__Dom__Types.decodeVisibilityState(visibilityState(self)); - [@bs.send.pipe : T.t] external adoptNode : Dom.element_like('a) => Dom.element_like('a) = ""; - [@bs.send.pipe : T.t] external createAttribute : string => Dom.attr = ""; - [@bs.send.pipe : T.t] external createAttributeNS : (string, string) => Dom.attr = ""; - [@bs.send.pipe : T.t] external createComment : string => Dom.comment = ""; - [@bs.send.pipe : T.t] external createDocumentFragment : Dom.documentFragment = ""; - [@bs.send.pipe : T.t] external createElement : string => Dom.element = ""; - [@bs.send.pipe : T.t] external createElementWithOptions : (string, Js.t({..})) => Dom.element = "createElement"; /* not widely supported */ - [@bs.send.pipe : T.t] external createElementNS : (string, string) => Dom.element = ""; - [@bs.send.pipe : T.t] external createElementNSWithOptions : (string, string, Js.t({..})) => Dom.element = "createElementNS"; /* not widely supported */ - [@bs.send.pipe : T.t] external createEvent : string /* large enum */ => Dom.event = ""; /* discouraged (but not deprecated) in favor of Event constructors */ - [@bs.send.pipe : T.t] external createNodeIterator : Dom.node_like('a) => Dom.nodeIterator = ""; - [@bs.send.pipe : T.t] external createNodeIteratorWithWhatToShow : (Dom.node_like('a), Webapi__Dom__Types.WhatToShow.t) => Dom.nodeIterator = "createNodeIterator"; - [@bs.send.pipe : T.t] external createNodeIteratorWithWhatToShowFilter : (Dom.node_like('a), Webapi__Dom__Types.WhatToShow.t, Dom.nodeFilter) => Dom.nodeIterator = "createNodeIterator"; /* createProcessingInstruction */ - [@bs.send.pipe : T.t] external createRange : Dom.range = ""; - [@bs.send.pipe : T.t] external createTextNode : string => Dom.text = ""; - [@bs.send.pipe : T.t] external createTreeWalker : Dom.element_like('a) => Dom.treeWalker = ""; - [@bs.send.pipe : T.t] external createTreeWalkerWithWhatToShow : (Dom.element_like('a), Webapi__Dom__Types.WhatToShow.t) => Dom.treeWalker = "createTreeWalker"; - [@bs.send.pipe : T.t] external createTreeWalkerWithWhatToShowFilter : (Dom.element_like('a), Webapi__Dom__Types.WhatToShow.t, Dom.nodeFilter) => Dom.treeWalker = "createTreeWalker"; - [@bs.send.pipe : T.t] external elementFromPoint : (int, int) => Dom.element = ""; /* experimental, but widely supported */ - [@bs.send.pipe : T.t] external elementsFromPoint : (int, int) => array(Dom.element) = ""; /* experimental */ - [@bs.send.pipe : T.t] external enableStyleSheetsForSet : string => unit = ""; - [@bs.send.pipe : T.t] external exitPointerLock : unit = ""; /* experimental */ - [@bs.send.pipe : T.t] external getAnimations : array(Dom.animation) = ""; /* experimental */ - [@bs.send.pipe : T.t] external getElementsByClassName : string => Dom.htmlCollection = ""; - [@bs.send.pipe : T.t] external getElementsByTagName : string => Dom.htmlCollection = ""; - [@bs.send.pipe : T.t] external getElementsByTagNameNS : (string, string) => Dom.htmlCollection = ""; - [@bs.send.pipe : T.t] external importNode : Dom.element_like('a) => Dom.element_like('a) = ""; - [@bs.send.pipe : T.t] external importNodeDeep : (Dom.element_like('a), [@bs.as {json|true|json}] _) => Dom.element_like('a) = "importNode"; - [@bs.send.pipe : T.t] external registerElement : (string, unit) => Dom.element = ""; /* experimental and deprecated in favor of customElements.define() */ - [@bs.send.pipe : T.t] external registerElementWithOptions : (string, Js.t({..}), unit) => Dom.element = "registerElement"; /* experimental and deprecated in favor of customElements.define() */ + [@send] external adoptNode: T.t => Dom.element_like('a) => Dom.element_like('a) = ""; + [@send] external createAttribute: T.t => string => Dom.attr = ""; + [@send] external createAttributeNS: (T.t, string, string) => Dom.attr = ""; + [@send] external createComment: T.t => string => Dom.comment = ""; + [@send] external createDocumentFragment: T.t => Dom.documentFragment = ""; + [@send] external createElement: T.t => string => Dom.element = ""; + [@send] external createElementWithOptions: (T.t, string, Js.t({..})) => Dom.element = "createElement"; /* not widely supported */ + [@send] external createElementNS: (T.t, string, string) => Dom.element = ""; + [@send] external createElementNSWithOptions: (T.t, string, string, Js.t({..})) => Dom.element = "createElementNS"; /* not widely supported */ + [@send] external createEvent: T.t => string /* large enum */ => Dom.event = ""; /* discouraged (but not deprecated) in favor of Event constructors */ + [@send] external createNodeIterator: T.t => Dom.node_like('a) => Dom.nodeIterator = ""; + [@send] external createNodeIteratorWithWhatToShow: (T.t, Dom.node_like('a), Webapi__Dom__Types.WhatToShow.t) => Dom.nodeIterator = "createNodeIterator"; + [@send] external createNodeIteratorWithWhatToShowFilter: (T.t, Dom.node_like('a), Webapi__Dom__Types.WhatToShow.t, Dom.nodeFilter) => Dom.nodeIterator = "createNodeIterator"; /* createProcessingInstruction */ + [@send] external createRange: T.t => Dom.range = ""; + [@send] external createTextNode: T.t => string => Dom.text = ""; + [@send] external createTreeWalker: T.t => Dom.element_like('a) => Dom.treeWalker = ""; + [@send] external createTreeWalkerWithWhatToShow: (T.t, Dom.element_like('a), Webapi__Dom__Types.WhatToShow.t) => Dom.treeWalker = "createTreeWalker"; + [@send] external createTreeWalkerWithWhatToShowFilter: (T.t, Dom.element_like('a), Webapi__Dom__Types.WhatToShow.t, Dom.nodeFilter) => Dom.treeWalker = "createTreeWalker"; + [@send] external elementFromPoint: (T.t, int, int) => Dom.element = ""; /* experimental, but widely supported */ + [@send] external elementsFromPoint: (T.t, int, int) => array(Dom.element) = ""; /* experimental */ + [@send] external enableStyleSheetsForSet: T.t => string => unit = ""; + [@send] external exitPointerLock: T.t => unit = ""; /* experimental */ + [@send] external getAnimations: T.t => array(Dom.animation) = ""; /* experimental */ + [@send] external getElementsByClassName: T.t => string => Dom.htmlCollection = ""; + [@send] external getElementsByTagName: T.t => string => Dom.htmlCollection = ""; + [@send] external getElementsByTagNameNS: (T.t, string, string) => Dom.htmlCollection = ""; + [@send] external importNode: T.t => Dom.element_like('a) => Dom.element_like('a) = ""; + [@send] external importNodeDeep: (T.t, Dom.element_like('a), [@as {json|true|json}] _) => Dom.element_like('a) = "importNode"; + [@send] external registerElement: (T.t, string, unit) => Dom.element = ""; /* experimental and deprecated in favor of customElements.define() */ + [@send] external registerElementWithOptions: (T.t, string, Js.t({..}), unit) => Dom.element = "registerElement"; /* experimental and deprecated in favor of customElements.define() */ /** XPath stuff */ /* createExpression */ diff --git a/src/Webapi/Dom/Webapi__Dom__DocumentType.re b/src/Webapi/Dom/Webapi__Dom__DocumentType.re index d764a1be..17ccd252 100644 --- a/src/Webapi/Dom/Webapi__Dom__DocumentType.re +++ b/src/Webapi/Dom/Webapi__Dom__DocumentType.re @@ -4,6 +4,6 @@ include Webapi__Dom__Node.Impl({ type nonrec t = t; }); include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); -[@bs.get] external name : t => string = ""; -[@bs.get] external publicId : t => string = ""; -[@bs.get] external systemId : t => string = ""; +[@get] external name : t => string = ""; +[@get] external publicId : t => string = ""; +[@get] external systemId : t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__DomImplementation.re b/src/Webapi/Dom/Webapi__Dom__DomImplementation.re index 049856fc..cad02504 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomImplementation.re +++ b/src/Webapi/Dom/Webapi__Dom__DomImplementation.re @@ -1,9 +1,9 @@ type t = Dom.domImplementation; -[@bs.send.pipe : t] external createDocumentType : (~qualifiedName: string, ~publicId: string, ~systemId: string) => Dom.documentType = ""; -[@bs.send.pipe : t] external createDocument : (Js.null(string), string, Js.null(Dom.documentType)) => Dom.xmlDocument = ""; -let createDocument = (~namespace: option(string)=?, ~qualifiedName: string, ~docType: option(Dom.documentType)=?) => - createDocument(Js.Null.fromOption(namespace), qualifiedName, Js.Null.fromOption(docType)); -[@bs.send.pipe : t] external createHTMLDocument : Dom.htmlDocument = ""; -[@bs.send.pipe : t] external createHTMLDocumentWithTitle : string => Dom.htmlDocument = "createHTMLDocument"; -[@bs.send.pipe : t] external hasFeature : bool = ""; /* useless; always returns true (this is exact wording from the actual spec) */ +[@send] external createDocumentType: (t, ~qualifiedName: string, ~publicId: string, ~systemId: string) => Dom.documentType = ""; +[@send] external createDocument: (t, Js.null(string), string, Js.null(Dom.documentType)) => Dom.xmlDocument = ""; +let createDocument = (impl, ~namespace: option(string)=?, ~qualifiedName: string, ~docType: option(Dom.documentType)=?, ()) => + impl->createDocument(Js.Null.fromOption(namespace), qualifiedName, Js.Null.fromOption(docType)); +[@send] external createHTMLDocument: t => Dom.htmlDocument = ""; +[@send] external createHTMLDocumentWithTitle: t => string => Dom.htmlDocument = "createHTMLDocument"; +[@send] external hasFeature: t => bool = ""; /* useless; always returns true (this is exact wording from the actual spec) */ diff --git a/src/Webapi/Dom/Webapi__Dom__DomRect.re b/src/Webapi/Dom/Webapi__Dom__DomRect.re index 6d6764d7..701b2e93 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomRect.re +++ b/src/Webapi/Dom/Webapi__Dom__DomRect.re @@ -1,12 +1,12 @@ type t = Dom.domRect; -[@bs.new] external make : (~x: float, ~y: float, ~width: float, ~height: float) => t = "DOMRect"; /* experimental */ +[@new] external make : (~x: float, ~y: float, ~width: float, ~height: float) => t = "DOMRect"; /* experimental */ -[@bs.get] external top : t => float = ""; -[@bs.get] external bottom : t => float = ""; -[@bs.get] external left : t => float = ""; -[@bs.get] external right : t => float = ""; -[@bs.get] external height : t => float = ""; -[@bs.get] external width : t => float = ""; -[@bs.get] external x : t => float = ""; -[@bs.get] external y : t => float = ""; +[@get] external top : t => float = ""; +[@get] external bottom : t => float = ""; +[@get] external left : t => float = ""; +[@get] external right : t => float = ""; +[@get] external height : t => float = ""; +[@get] external width : t => float = ""; +[@get] external x : t => float = ""; +[@get] external y : t => float = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__DomStringMap.re b/src/Webapi/Dom/Webapi__Dom__DomStringMap.re index 7b2f8f6d..89a6f0bd 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomStringMap.re +++ b/src/Webapi/Dom/Webapi__Dom__DomStringMap.re @@ -2,11 +2,9 @@ type t = Dom.domStringMap; type key = string; -[@bs.get_index] [@bs.return nullable] +[@get_index] [@return nullable] external get: (t, key) => option(string) = ""; -let get = (key, map) => get(map, key); -[@bs.set_index] external set: (t, key, string) => unit = ""; -let set = (key, value, map) => set(map, key, value); -let unsafeDeleteKey: (key, t) => unit = [%raw - "function(key, map) { delete map[key] }" +[@set_index] external set: (t, key, string) => unit = ""; +let unsafeDeleteKey: (t, key) => unit = [%raw + "function(map, key) { delete map[key] }" ]; diff --git a/src/Webapi/Dom/Webapi__Dom__DomTokenList.re b/src/Webapi/Dom/Webapi__Dom__DomTokenList.re index 70bc0334..cd1fdd31 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomTokenList.re +++ b/src/Webapi/Dom/Webapi__Dom__DomTokenList.re @@ -1,22 +1,22 @@ type t = Dom.domTokenList; -[@bs.get] external length : t => int = ""; +[@get] external length : t => int = ""; -[@bs.send.pipe : t] [@bs.return nullable] external item : int => option(string) = ""; -[@bs.send.pipe : t] external add : string => unit = ""; -[@bs.send.pipe : t] [@bs.splice] external addMany : array(string) => unit = "add"; -[@bs.send.pipe : t] external contains : string => bool = "contains"; +[@send] [@return nullable] external item: t => int => option(string) = ""; +[@send] external add: t => string => unit = ""; +[@send] [@splice] external addMany: t => array(string) => unit = "add"; +[@send] external contains: t => string => bool = "contains"; /* entries: iterator API, should have language support */ -[@bs.send.pipe : t] external forEach : ((string, int) => unit) => unit = ""; +[@send] external forEach: (t, (string, int) => unit) => unit = ""; /* keys: iterator API, should have language support */ -[@bs.send.pipe : t] external remove : string => unit = ""; -[@bs.send.pipe : t] [@bs.splice] external removeMany : array(string) => unit = "remove"; -[@bs.send.pipe : t] external replace : (string, string) => unit = ""; /* experimental */ -[@bs.send.pipe : t] external supports : string => bool = ""; /* experimental, Content Management Level 1 */ -[@bs.send.pipe : t] external toggle : string => bool = ""; -[@bs.send.pipe : t] external toggleForced : (string, [@bs.as {json|true|json}] _) => bool = "toggle"; -[@bs.send.pipe : t] external toString : string = ""; +[@send] external remove: t => string => unit = ""; +[@send] [@splice] external removeMany: t => array(string) => unit = "remove"; +[@send] external replace: (t, string, string) => unit = ""; /* experimental */ +[@send] external supports: t => string => bool = ""; /* experimental, Content Management Level 1 */ +[@send] external toggle: t => string => bool = ""; +[@send] external toggleForced: (t, string, [@as {json|true|json}] _) => bool = "toggle"; +[@send] external toString: t => string = ""; /* values: iterator API, should have language support */ -[@bs.get] external value : t => string = ""; /* experimental, from being merged with domSettableTokenList */ -[@bs.set] external setValue : (t, string) => unit = "value"; /* experimental, from being merged with domSettableTokenList */ +[@get] external value : t => string = ""; /* experimental, from being merged with domSettableTokenList */ +[@set] external setValue : (t, string) => unit = "value"; /* experimental, from being merged with domSettableTokenList */ diff --git a/src/Webapi/Dom/Webapi__Dom__DragEvent.re b/src/Webapi/Dom/Webapi__Dom__DragEvent.re index 917581fd..1ca22256 100644 --- a/src/Webapi/Dom/Webapi__Dom__DragEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__DragEvent.re @@ -4,7 +4,7 @@ include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); include Webapi__Dom__MouseEvent.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "DragEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "DragEvent"; +[@new] external make : string => t = "DragEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "DragEvent"; -[@bs.get] external dataTransfer : t => Dom.dataTransfer = ""; +[@get] external dataTransfer : t => Dom.dataTransfer = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__Element.re b/src/Webapi/Dom/Webapi__Dom__Element.re index f7617568..19f0926f 100644 --- a/src/Webapi/Dom/Webapi__Dom__Element.re +++ b/src/Webapi/Dom/Webapi__Dom__Element.re @@ -1,11 +1,10 @@ /* internal, moved out of Impl to reduce unnecessary code duplication */ -let ofNode = (node: Dom.node) : option('a) => - Webapi__Dom__Node.nodeType(node) == Webapi__Dom__Types.Element ? - Some(Obj.magic(node)) : - None; +let ofNode = (node: Dom.node): option('a) => + Webapi__Dom__Node.nodeType(node) == Webapi__Dom__Types.Element ? Some(Obj.magic(node)) : None; module Impl = (T: {type t;}) => { - let asHtmlElement: T.t => option(Dom.htmlElement) = [%raw {| + let asHtmlElement: T.t => option(Dom.htmlElement) = [%raw + {| function(element) { var ownerDocument = element.ownerDocument; @@ -21,109 +20,170 @@ module Impl = (T: {type t;}) => { } } } - |}]; + |} + ]; /** Unsafe cast, use [asHtmlElement] instead */ - external unsafeAsHtmlElement : T.t => Dom.htmlElement = "%identity"; + external unsafeAsHtmlElement: T.t => Dom.htmlElement = "%identity"; let ofNode: Dom.node => option(T.t) = ofNode; - [@bs.get] external attributes : T.t => Dom.namedNodeMap = ""; - [@bs.get] external classList : T.t => Dom.domTokenList = ""; - [@bs.get] external className : T.t => string = ""; - [@bs.set] external setClassName : (T.t, string) => unit = "className"; - [@bs.get] external clientHeight : T.t => int = ""; /* experimental */ - [@bs.get] external clientLeft : T.t => int = ""; /* experimental */ - [@bs.get] external clientTop : T.t => int = ""; /* experimental */ - [@bs.get] external clientWidth : T.t => int = ""; /* experimental */ - [@bs.get] external id : T.t => string = ""; - [@bs.set] external setId : (T.t, string) => unit = "id"; - [@bs.get] external innerHTML : T.t => string = ""; - [@bs.set] external setInnerHTML : (T.t, string) => unit = "innerHTML"; - [@bs.get] external localName : T.t => string = ""; - [@bs.get] [@bs.return nullable] external namespaceURI : T.t => option(string) = ""; - [@bs.get] external outerHTML : T.t => string = ""; /* experimental, but widely supported */ - [@bs.set] external setOuterHTML : (T.t, string) => unit = "outerHTML"; /* experimental, but widely supported */ - [@bs.get] [@bs.return nullable] external prefix : T.t => option(string) = ""; - [@bs.get] external scrollHeight : T.t => int = ""; /* experimental, but widely supported */ - [@bs.get] external scrollLeft : T.t => float = ""; /* experimental */ - [@bs.set] external setScrollLeft : (T.t, float) => unit = "scrollLeft"; /* experimental */ - [@bs.get] external scrollTop : T.t => float = ""; /* experimental, but widely supported */ - [@bs.set] external setScrollTop : (T.t, float) => unit = "scrollTop"; /* experimental, but widely supported */ - [@bs.get] external scrollWidth : T.t => int = ""; /* experimental */ - [@bs.get] external shadowRoot : T.t => Dom.element = ""; /* experimental */ - [@bs.get] external slot : T.t => string = ""; /* experimental */ - [@bs.set] external setSlot : (T.t, string) => unit = "slot"; /* experimental */ - [@bs.get] external tagName : T.t => string = ""; + [@get] external attributes: T.t => Dom.namedNodeMap; + [@get] external classList: T.t => Dom.domTokenList; + [@get] external className: T.t => string; + [@set] external setClassName: (T.t, string) => unit = "className"; + [@get] external clientHeight: T.t => int; /* experimental */ + [@get] external clientLeft: T.t => int; /* experimental */ + [@get] external clientTop: T.t => int; /* experimental */ + [@get] external clientWidth: T.t => int; /* experimental */ + [@get] external id: T.t => string; + [@set] external setId: (T.t, string) => unit = "id"; + [@get] external innerHTML: T.t => string; + [@set] external setInnerHTML: (T.t, string) => unit = "innerHTML"; + [@get] external localName: T.t => string; + [@get] [@return nullable] external namespaceURI: T.t => option(string); + [@get] external outerHTML: T.t => string; /* experimental, but widely supported */ + [@set] external setOuterHTML: (T.t, string) => unit = "outerHTML"; /* experimental, but widely supported */ + [@get] [@return nullable] external prefix: T.t => option(string); + [@get] external scrollHeight: T.t => int; /* experimental, but widely supported */ + [@get] external scrollLeft: T.t => float; /* experimental */ + [@set] external setScrollLeft: (T.t, float) => unit = "scrollLeft"; /* experimental */ + [@get] external scrollTop: T.t => float; /* experimental, but widely supported */ + [@set] external setScrollTop: (T.t, float) => unit = "scrollTop"; /* experimental, but widely supported */ + [@get] external scrollWidth: T.t => int; /* experimental */ + [@get] external shadowRoot: T.t => Dom.element; /* experimental */ + [@get] external slot: T.t => string; /* experimental */ + [@set] external setSlot: (T.t, string) => unit = "slot"; /* experimental */ + [@get] external tagName: T.t => string; - [@bs.send.pipe : T.t] external attachShadow : {. "mode": string} => Dom.shadowRoot = ""; /* experimental */ - [@bs.send.pipe : T.t] external attachShadowOpen : ([@bs.as {json|{ "mode": "open" }|json}] _) => Dom.shadowRoot = "attachShadow"; /* experimental */ - [@bs.send.pipe : T.t] external attachShadowClosed : ([@bs.as {json|{ "mode": "closed" }|json}] _) => Dom.shadowRoot = "attachShadow"; /* experimental */ - [@bs.send.pipe : T.t] external animate : (Js.t({..}), Js.t({..})) => Dom.animation = ""; /* experimental */ - [@bs.send.pipe : T.t] [@bs.return nullable] external closest : string => option(Dom.element) = ""; /* experimental */ - [@bs.send.pipe : T.t] external createShadowRoot : Dom.shadowRoot = ""; /* experimental AND deprecated (?!) */ - [@bs.send.pipe : T.t] [@bs.return nullable] external getAttribute : string => option(string) = ""; - [@bs.send.pipe : T.t] [@bs.return nullable] external getAttributeNS : (string, string) => option(string) = ""; - [@bs.send.pipe : T.t] external getBoundingClientRect : Dom.domRect = ""; - [@bs.send.pipe : T.t] external getClientRects : array(Dom.domRect) = ""; - [@bs.send.pipe : T.t] external getElementsByClassName : string => Dom.htmlCollection = ""; - [@bs.send.pipe : T.t] external getElementsByTagName : string => Dom.htmlCollection = ""; - [@bs.send.pipe : T.t] external getElementsByTagNameNS : (string, string) => Dom.htmlCollection = ""; - [@bs.send.pipe : T.t] external hasAttribute : string => bool = ""; - [@bs.send.pipe : T.t] external hasAttributeNS : (string, string) => bool = ""; - [@bs.send.pipe : T.t] external hasAttributes : bool = ""; - [@bs.send.pipe : T.t] external insertAdjacentElement : (string /* insertPosition enum */, Dom.element_like('a)) => unit = ""; /* experimental, but widely supported */ - let insertAdjacentElement: (Webapi__Dom__Types.insertPosition, Dom.element_like('a), T.t) => unit = - (position, element, self) => - insertAdjacentElement(Webapi__Dom__Types.encodeInsertPosition(position), element, self); - [@bs.send.pipe : T.t] external insertAdjacentHTML : (string /* insertPosition enum */, string) => unit = ""; /* experimental, but widely supported */ - let insertAdjacentHTML: (Webapi__Dom__Types.insertPosition, string, T.t) => unit = - (position, text, self) => - insertAdjacentHTML(Webapi__Dom__Types.encodeInsertPosition(position), text, self); - [@bs.send.pipe : T.t] external insertAdjacentText : (string /* insertPosition enum */, string) => unit = ""; /* experimental, but widely supported */ - let insertAdjacentText: (Webapi__Dom__Types.insertPosition, string, T.t) => unit = - (position, text, self) => - insertAdjacentText(Webapi__Dom__Types.encodeInsertPosition(position), text, self); - [@bs.send.pipe : T.t] external matches : string => bool = ""; /* experimental, but widely supported */ - [@bs.send.pipe : T.t] external releasePointerCapture : Dom.eventPointerId => unit = ""; - [@bs.send.pipe : T.t] external removeAttribute : string => unit = ""; - [@bs.send.pipe : T.t] external removeAttributeNS : (string, string) => unit = ""; - [@bs.send.pipe : T.t] external requestFullscreen : unit = ""; /* experimental */ - [@bs.send.pipe : T.t] external requestPointerLock : unit = ""; /* experimental */ - [@bs.send.pipe : T.t] external scrollIntoView : unit = ""; /* experimental, but widely supported */ - [@bs.send.pipe : T.t] external scrollIntoViewNoAlignToTop : ([@bs.as {json|true|json}] _) => unit = "scrollIntoView"; /* experimental, but widely supported */ - [@bs.send.pipe : T.t] external scrollIntoViewWithOptions : {. "behavior": string, "block": string} => unit = "scrollIntoView"; /* experimental */ - [@bs.send.pipe : T.t] external scrollBy : (float, float) => unit = ""; - [@bs.send.pipe : T.t] external scrollByWithOptions : {. "top": float, "left": float, "behavior": string} => unit = "scrollBy"; - [@bs.send.pipe : T.t] external scrollTo : (float, float) => unit = ""; - [@bs.send.pipe : T.t] external scrollToWithOptions : {. "top": float, "left": float, "behavior": string} => unit = "scrollTo"; - [@bs.send.pipe : T.t] external setAttribute : (string, string) => unit = ""; - [@bs.send.pipe : T.t] external setAttributeNS : (string, string, string) => unit = ""; - [@bs.send.pipe : T.t] external setPointerCapture : Dom.eventPointerId => unit = ""; + [@send] external attachShadow: (T.t, {. "mode": string}) => Dom.shadowRoot; /* experimental */ + [@send] + external attachShadowOpen: (T.t, [@as {json|{ "mode": "open" }|json}] _) => Dom.shadowRoot = + "attachShadow"; /* experimental */ + [@send] + external attachShadowClosed: (T.t, [@as {json|{ "mode": "closed" }|json}] _) => Dom.shadowRoot = + "attachShadow"; /* experimental */ + [@send] external animate: (T.t, Js.t({..}), Js.t({..})) => Dom.animation; /* experimental */ + [@send] [@return nullable] external closest: (T.t, string) => option(Dom.element); /* experimental */ + [@send] external createShadowRoot: T.t => Dom.shadowRoot; /* experimental AND deprecated (?!) */ + [@send] [@return nullable] external getAttribute: (T.t, string) => option(string); + [@send] [@return nullable] external getAttributeNS: (T.t, string, string) => option(string); + [@send] external getBoundingClientRect: T.t => Dom.domRect; + [@send] external getClientRects: T.t => array(Dom.domRect); + [@send] external getElementsByClassName: (T.t, string) => Dom.htmlCollection; + [@send] external getElementsByTagName: (T.t, string) => Dom.htmlCollection; + [@send] external getElementsByTagNameNS: (T.t, string, string) => Dom.htmlCollection; + [@send] external hasAttribute: (T.t, string) => bool; + [@send] external hasAttributeNS: (T.t, string, string) => bool; + [@send] external hasAttributes: T.t => bool; + [@send] + external insertAdjacentElement: + (T.t, string /* insertPosition enum */, Dom.element_like('a)) => unit; /* experimental, but widely supported */ + let insertAdjacentElement: + (T.t, Webapi__Dom__Types.insertPosition, Dom.element_like('a)) => unit = + (self, position, element) => + self->insertAdjacentElement(Webapi__Dom__Types.encodeInsertPosition(position), element); + [@send] external insertAdjacentHTML: (T.t, string /* insertPosition enum */, string) => unit; /* experimental, but widely supported */ + let insertAdjacentHTML: (T.t, Webapi__Dom__Types.insertPosition, string) => unit = + (self, position, text) => + self->insertAdjacentHTML(Webapi__Dom__Types.encodeInsertPosition(position), text); + [@send] external insertAdjacentText: (T.t, string /* insertPosition enum */, string) => unit; /* experimental, but widely supported */ + let insertAdjacentText: (T.t, Webapi__Dom__Types.insertPosition, string) => unit = + (self, position, text) => + self->insertAdjacentText(Webapi__Dom__Types.encodeInsertPosition(position), text); + [@send] external matches: (T.t, string) => bool; /* experimental, but widely supported */ + [@send] external releasePointerCapture: (T.t, Dom.eventPointerId) => unit; + [@send] external removeAttribute: (T.t, string) => unit; + [@send] external removeAttributeNS: (T.t, string, string) => unit; + [@send] external requestFullscreen: T.t => unit; /* experimental */ + [@send] external requestPointerLock: T.t => unit; /* experimental */ + [@send] external scrollIntoView: T.t => unit; /* experimental, but widely supported */ + [@send] + external scrollIntoViewNoAlignToTop: (T.t, [@as {json|true|json}] _) => unit = + "scrollIntoView"; /* experimental, but widely supported */ + [@send] + external scrollIntoViewWithOptions: + ( + T.t, + { + . + "behavior": string, + "block": string, + } + ) => + unit = + "scrollIntoView"; /* experimental */ + [@send] external scrollBy: (T.t, float, float) => unit; + [@send] + external scrollByWithOptions: + ( + T.t, + { + . + "top": float, + "left": float, + "behavior": string, + } + ) => + unit = + "scrollBy"; + [@send] external scrollTo: (T.t, float, float) => unit; + [@send] + external scrollToWithOptions: + ( + T.t, + { + . + "top": float, + "left": float, + "behavior": string, + } + ) => + unit = + "scrollTo"; + [@send] external setAttribute: (T.t, string, string) => unit; + [@send] external setAttributeNS: (T.t, string, string, string) => unit; + [@send] external setPointerCapture: (T.t, Dom.eventPointerId) => unit; /* GlobalEventHandlers interface */ /* Not sure this should be exposed, since EventTarget seems like a better API */ - [@bs.set] external setOnClick : (T.t, Dom.mouseEvent => unit) => unit = "onclick"; + [@set] external setOnClick: (T.t, Dom.mouseEvent => unit) => unit = "onclick"; }; /* TODO: This doesn't work. Why? -module Tree (T: { type t; }) => { - include NodeRe.Impl { type t = Type }; - include EventTargetRe.Impl { type t = Type }; - include Impl { type t = Type }; -}; + module Tree (T: { type t; }) => { + include NodeRe.Impl { type t = Type }; + include EventTargetRe.Impl { type t = Type }; + include Impl { type t = Type }; + }; -include Tree { type t = Dom.element }; -*/ + include Tree { type t = Dom.element }; + */ type t = Dom.element; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__GlobalEventHandlers.Impl({ type nonrec t = t; }); -include Webapi__Dom__ParentNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonDocumentTypeChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__Slotable.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__GlobalEventHandlers.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ParentNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonDocumentTypeChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Slotable.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__ErrorEvent.re b/src/Webapi/Dom/Webapi__Dom__ErrorEvent.re index 609dd097..5d2c2ccf 100644 --- a/src/Webapi/Dom/Webapi__Dom__ErrorEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__ErrorEvent.re @@ -2,11 +2,11 @@ type t = Dom.errorEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "ErrorEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "ErrorEvent"; +[@new] external make : string => t = "ErrorEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "ErrorEvent"; -[@bs.get] external message : t => string = ""; -[@bs.get] external filename : t => string = ""; -[@bs.get] external lineno : t => int = ""; -[@bs.get] external colno : t => int = ""; -[@bs.get] external error : t => Js.t({..}) = ""; +[@get] external message : t => string = ""; +[@get] external filename : t => string = ""; +[@get] external lineno : t => int = ""; +[@get] external colno : t => int = ""; +[@get] external error : t => Js.t({..}) = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__Event.re b/src/Webapi/Dom/Webapi__Dom__Event.re index 7f7ccae0..e77c9cb2 100644 --- a/src/Webapi/Dom/Webapi__Dom__Event.re +++ b/src/Webapi/Dom/Webapi__Dom__Event.re @@ -1,30 +1,30 @@ module Impl = (T: {type t;}) => { - [@bs.get] external bubbles : T.t => bool = ""; - [@bs.get] external cancelable : T.t => bool = ""; - [@bs.get] external composed : T.t => bool = ""; - [@bs.get] external currentTarget : T.t => Dom.eventTarget = ""; - [@bs.get] external defaultPrevented : T.t => bool = ""; - [@bs.get] external eventPhase : T.t => int /* eventPhase enum */ = ""; + [@get] external bubbles : T.t => bool = ""; + [@get] external cancelable : T.t => bool = ""; + [@get] external composed : T.t => bool = ""; + [@get] external currentTarget : T.t => Dom.eventTarget = ""; + [@get] external defaultPrevented : T.t => bool = ""; + [@get] external eventPhase : T.t => int /* eventPhase enum */ = ""; let eventPhase: T.t => Webapi__Dom__Types.EventPhase.t = (self) => Webapi__Dom__Types.EventPhase.decode(eventPhase(self)); - [@bs.get] external target : T.t => Dom.eventTarget = ""; - [@bs.get] external timeStamp : T.t => float = ""; - [@bs.get] external type_ : T.t => string = "type"; - [@bs.get] external isTrusted : T.t => bool = ""; + [@get] external target : T.t => Dom.eventTarget = ""; + [@get] external timeStamp : T.t => float = ""; + [@get] external type_ : T.t => string = "type"; + [@get] external isTrusted : T.t => bool = ""; - [@bs.send.pipe : T.t] external preventDefault : unit = ""; - [@bs.send.pipe : T.t] external stopImmediatePropagation : unit = ""; - [@bs.send.pipe : T.t] external stopPropagation : unit = ""; + [@send] external preventDefault: T.t => unit = ""; + [@send] external stopImmediatePropagation: T.t => unit = ""; + [@send] external stopPropagation: T.t => unit = ""; }; type t = Dom.event; include Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "Event"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "Event"; +[@new] external make : string => t = "Event"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "Event"; /* diff --git a/src/Webapi/Dom/Webapi__Dom__EventTarget.re b/src/Webapi/Dom/Webapi__Dom__EventTarget.re index a786a18f..783ba019 100644 --- a/src/Webapi/Dom/Webapi__Dom__EventTarget.re +++ b/src/Webapi/Dom/Webapi__Dom__EventTarget.re @@ -1,13 +1,13 @@ module Impl = (T: {type t;}) => { external asEventTarget : T.t => Dom.eventTarget = "%identity"; - [@bs.send.pipe : T.t] external addEventListener : (string, Dom.event => unit) => unit = ""; - [@bs.send.pipe : T.t] external addEventListenerWithOptions : (string, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addEventListenerUseCapture : (string, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeEventListener : (string, Dom.event => unit) => unit = ""; - [@bs.send.pipe : T.t] external removeEventListenerWithOptions : (string, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeEventListenerUseCapture : (string, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external dispatchEvent : Dom.event_like('a) => bool = ""; + [@send] external addEventListener: (T.t, string, Dom.event => unit) => unit = ""; + [@send] external addEventListenerWithOptions: (T.t, string, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addEventListenerUseCapture: (T.t, string, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeEventListener: (T.t, string, Dom.event => unit) => unit = ""; + [@send] external removeEventListenerWithOptions: (T.t, string, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeEventListenerUseCapture: (T.t, string, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external dispatchEvent: T.t => Dom.event_like('a) => bool = ""; /** * non-standard event-specific functions @@ -15,317 +15,317 @@ module Impl = (T: {type t;}) => { /* UI */ - [@bs.send.pipe : T.t] external addLoadEventListener : ([@bs.as "load"] _, Dom.event => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addLoadEventListenerWithOptions : ([@bs.as "load"] _, Dom.event => unit,{. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addLoadEventListenerUseCapture : ([@bs.as "load"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeLoadEventListener : ([@bs.as "load"] _, Dom.event => unit) => unit= "removeEventListener"; - [@bs.send.pipe : T.t] external removeLoadEventListenerWithOptions : ([@bs.as "load"] _, Dom.event => unit, {. "capture": bool, "passive": bool})=> unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeLoadEventListenerUseCapture : ([@bs.as "load"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addUnloadEventListener : ([@bs.as "unload"] _, Dom.event => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addUnloadEventListenerWithOptions : ([@bs.as "unload"] _, Dom.event=> unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addUnloadEventListenerUseCapture : ([@bs.as "unload"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeUnloadEventListener : ([@bs.as "unload"] _, Dom.event => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeUnloadEventListenerWithOptions : ([@bs.as "unload"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeUnloadEventListenerUseCapture : ([@bs.as "unload"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addAbortEventListener : ([@bs.as "abort"] _, Dom.event => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addAbortEventListenerWithOptions : ([@bs.as "abort"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addAbortEventListenerUseCapture : ([@bs.as "abort"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeAbortEventListener : ([@bs.as "abort"] _, Dom.event => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeAbortEventListenerWithOptions : ([@bs.as "abort"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeAbortEventListenerUseCapture : ([@bs.as "abort"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addErrorEventListener : ([@bs.as "error"] _, Dom.event => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addErrorEventListenerWithOptions : ([@bs.as "error"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addErrorEventListenerUseCapture : ([@bs.as "error"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeErrorEventListener : ([@bs.as "error"] _, Dom.event => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeErrorEventListenerWithOptions : ([@bs.as "error"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeErrorEventListenerUseCapture : ([@bs.as "error"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addSelectEventListener : ([@bs.as "select"] _, Dom.event => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addSelectEventListenerWithOptions : ([@bs.as "select"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addSelectEventListenerUseCapture : ([@bs.as "select"] _, Dom.event => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeSelectEventListener : ([@bs.as "select"] _, Dom.event => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeSelectEventListenerWithOptions : ([@bs.as "select"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeSelectEventListenerUseCapture : ([@bs.as "select"] _, Dom.event =>unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addLoadEventListener: (T.t, [@as "load"] _, Dom.event => unit) => unit = "addEventListener"; + [@send] external addLoadEventListenerWithOptions: (T.t, [@as "load"] _, Dom.event => unit,{. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addLoadEventListenerUseCapture: (T.t, [@as "load"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeLoadEventListener: (T.t, [@as "load"] _, Dom.event => unit) => unit= "removeEventListener"; + [@send] external removeLoadEventListenerWithOptions: (T.t, [@as "load"] _, Dom.event => unit, {. "capture": bool, "passive": bool})=> unit = "removeEventListener"; /* not widely supported */ + [@send] external removeLoadEventListenerUseCapture: (T.t, [@as "load"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addUnloadEventListener: (T.t, [@as "unload"] _, Dom.event => unit) => unit = "addEventListener"; + [@send] external addUnloadEventListenerWithOptions: (T.t, [@as "unload"] _, Dom.event=> unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addUnloadEventListenerUseCapture: (T.t, [@as "unload"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeUnloadEventListener: (T.t, [@as "unload"] _, Dom.event => unit) => unit = "removeEventListener"; + [@send] external removeUnloadEventListenerWithOptions: (T.t, [@as "unload"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeUnloadEventListenerUseCapture: (T.t, [@as "unload"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addAbortEventListener: (T.t, [@as "abort"] _, Dom.event => unit) => unit = "addEventListener"; + [@send] external addAbortEventListenerWithOptions: (T.t, [@as "abort"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addAbortEventListenerUseCapture: (T.t, [@as "abort"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeAbortEventListener: (T.t, [@as "abort"] _, Dom.event => unit) => unit = "removeEventListener"; + [@send] external removeAbortEventListenerWithOptions: (T.t, [@as "abort"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeAbortEventListenerUseCapture: (T.t, [@as "abort"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addErrorEventListener: (T.t, [@as "error"] _, Dom.event => unit) => unit = "addEventListener"; + [@send] external addErrorEventListenerWithOptions: (T.t, [@as "error"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addErrorEventListenerUseCapture: (T.t, [@as "error"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeErrorEventListener: (T.t, [@as "error"] _, Dom.event => unit) => unit = "removeEventListener"; + [@send] external removeErrorEventListenerWithOptions: (T.t, [@as "error"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeErrorEventListenerUseCapture: (T.t, [@as "error"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addSelectEventListener: (T.t, [@as "select"] _, Dom.event => unit) => unit = "addEventListener"; + [@send] external addSelectEventListenerWithOptions: (T.t, [@as "select"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addSelectEventListenerUseCapture: (T.t, [@as "select"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeSelectEventListener: (T.t, [@as "select"] _, Dom.event => unit) => unit = "removeEventListener"; + [@send] external removeSelectEventListenerWithOptions: (T.t, [@as "select"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeSelectEventListenerUseCapture: (T.t, [@as "select"] _, Dom.event =>unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Focus */ - [@bs.send.pipe : T.t] external addBlurEventListener : ([@bs.as "blur"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addBlurEventListenerWithOptions : ([@bs.as "blur"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addBlurEventListenerUseCapture : ([@bs.as "blur"] _, Dom.focusEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeBlurEventListener : ([@bs.as "blur"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeBlurEventListenerWithOptions : ([@bs.as "blur"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeBlurEventListenerUseCapture : ([@bs.as "blur"] _, Dom.focusEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addFocusEventListener : ([@bs.as "focus"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addFocusEventListenerWithOptions : ([@bs.as "focus"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool,"passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addFocusEventListenerUseCapture : ([@bs.as "focus"] _, Dom.focusEvent =>unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeFocusEventListener : ([@bs.as "focus"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeFocusEventListenerWithOptions : ([@bs.as "focus"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeFocusEventListenerUseCapture : ([@bs.as "focus"] _, Dom.focusEvent=> unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addFocusInEventListener : ([@bs.as "focusin"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addFocusInEventListenerWithOptions : ([@bs.as "focusin"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addFocusInEventListenerUseCapture : ([@bs.as "focusin"] _, Dom.focusEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeFocusInEventListener : ([@bs.as "focusin"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeFocusInEventListenerWithOptions : ([@bs.as "focusin"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeFocusInEventListenerUseCapture : ([@bs.as "focusin"] _, Dom.focusEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addFocusOutEventListener : ([@bs.as "focusout"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addFocusOutEventListenerWithOptions : ([@bs.as "focusout"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addFocusOutEventListenerUseCapture : ([@bs.as "focusout"] _, Dom.focusEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeFocusOutEventListener : ([@bs.as "focusout"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeFocusOutEventListenerWithOptions : ([@bs.as "focusout"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeFocusOutEventListenerUseCapture : ([@bs.as "focusout"] _, Dom.focusEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addBlurEventListener: (T.t, [@as "blur"] _, Dom.focusEvent => unit) => unit = "addEventListener"; + [@send] external addBlurEventListenerWithOptions: (T.t, [@as "blur"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addBlurEventListenerUseCapture: (T.t, [@as "blur"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeBlurEventListener: (T.t, [@as "blur"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; + [@send] external removeBlurEventListenerWithOptions: (T.t, [@as "blur"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeBlurEventListenerUseCapture: (T.t, [@as "blur"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addFocusEventListener: (T.t, [@as "focus"] _, Dom.focusEvent => unit) => unit = "addEventListener"; + [@send] external addFocusEventListenerWithOptions: (T.t, [@as "focus"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool,"passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addFocusEventListenerUseCapture: (T.t, [@as "focus"] _, Dom.focusEvent =>unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeFocusEventListener: (T.t, [@as "focus"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; + [@send] external removeFocusEventListenerWithOptions: (T.t, [@as "focus"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeFocusEventListenerUseCapture: (T.t, [@as "focus"] _, Dom.focusEvent=> unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addFocusInEventListener: (T.t, [@as "focusin"] _, Dom.focusEvent => unit) => unit = "addEventListener"; + [@send] external addFocusInEventListenerWithOptions: (T.t, [@as "focusin"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addFocusInEventListenerUseCapture: (T.t, [@as "focusin"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeFocusInEventListener: (T.t, [@as "focusin"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; + [@send] external removeFocusInEventListenerWithOptions: (T.t, [@as "focusin"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeFocusInEventListenerUseCapture: (T.t, [@as "focusin"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addFocusOutEventListener: (T.t, [@as "focusout"] _, Dom.focusEvent => unit) => unit = "addEventListener"; + [@send] external addFocusOutEventListenerWithOptions: (T.t, [@as "focusout"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addFocusOutEventListenerUseCapture: (T.t, [@as "focusout"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeFocusOutEventListener: (T.t, [@as "focusout"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; + [@send] external removeFocusOutEventListenerWithOptions: (T.t, [@as "focusout"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeFocusOutEventListenerUseCapture: (T.t, [@as "focusout"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Mouse */ - [@bs.send.pipe : T.t] external addClickEventListener : ([@bs.as "click"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addClickEventListenerWithOptions : ([@bs.as "click"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addClickEventListenerUseCapture : ([@bs.as "click"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeClickEventListener : ([@bs.as "click"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeClickEventListenerWithOptions : ([@bs.as "click"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeClickEventListenerUseCapture : ([@bs.as "click"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addDblClickEventListener : ([@bs.as "dblclick"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDblClickEventListenerWithOptions : ([@bs.as "dblclick"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDblClickEventListenerUseCapture : ([@bs.as "dblclick"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDblClickEventListener : ([@bs.as "dblclick"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDblClickEventListenerWithOptions : ([@bs.as "dblclick"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDblClickEventListenerUseCapture : ([@bs.as "dblclick"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addMouseDownEventListener : ([@bs.as "mousedown"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addMouseDownEventListenerWithOptions : ([@bs.as "mousedown"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addMouseDownEventListenerUseCapture : ([@bs.as "mousedown"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeMouseDownEventListener : ([@bs.as "mousedown"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeMouseDownEventListenerWithOptions : ([@bs.as "mousedown"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeMouseDownEventListenerUseCapture : ([@bs.as "mousedown"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addMouseEnterEventListener : ([@bs.as "mouseenter"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addMouseEnterEventListenerWithOptions : ([@bs.as "mouseenter"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addMouseEnterEventListenerUseCapture : ([@bs.as "mouseenter"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeMouseEnterEventListener : ([@bs.as "mouseenter"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeMouseEnterEventListenerWithOptions : ([@bs.as "mouseenter"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeMouseEnterEventListenerUseCapture : ([@bs.as "mouseenter"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addMouseMoveEventListener : ([@bs.as "mousemove"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addMouseMoveEventListenerWithOptions : ([@bs.as "mousemove"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addMouseMoveEventListenerUseCapture : ([@bs.as "mousemove"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeMouseMoveEventListener : ([@bs.as "mousemove"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeMouseMoveEventListenerWithOptions : ([@bs.as "mousemove"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeMouseMoveEventListenerUseCapture : ([@bs.as "mousemove"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addMouseOutEventListener : ([@bs.as "mouseout"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addMouseOutEventListenerWithOptions : ([@bs.as "mouseout"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addMouseOutEventListenerUseCapture : ([@bs.as "mouseout"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeMouseOutEventListener : ([@bs.as "mouseout"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeMouseOutEventListenerWithOptions : ([@bs.as "mouseout"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeMouseOutEventListenerUseCapture : ([@bs.as "mouseout"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addMouseOverEventListener : ([@bs.as "mouseover"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addMouseOverEventListenerWithOptions : ([@bs.as "mouseover"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addMouseOverEventListenerUseCapture : ([@bs.as "mouseover"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeMouseOverEventListener : ([@bs.as "mouseover"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeMouseOverEventListenerWithOptions : ([@bs.as "mouseover"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeMouseOverEventListenerUseCapture : ([@bs.as "mouseover"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addMouseUpEventListener : ([@bs.as "mouseup"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addMouseUpEventListenerWithOptions : ([@bs.as "mouseup"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addMouseUpEventListenerUseCapture : ([@bs.as "mouseup"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeMouseUpEventListener : ([@bs.as "mouseup"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeMouseUpEventListenerWithOptions : ([@bs.as "mouseup"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeMouseUpEventListenerUseCapture : ([@bs.as "mouseup"] _, Dom.mouseEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addClickEventListener: (T.t, [@as "click"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; + [@send] external addClickEventListenerWithOptions: (T.t, [@as "click"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addClickEventListenerUseCapture: (T.t, [@as "click"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeClickEventListener: (T.t, [@as "click"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; + [@send] external removeClickEventListenerWithOptions: (T.t, [@as "click"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeClickEventListenerUseCapture: (T.t, [@as "click"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addDblClickEventListener: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; + [@send] external addDblClickEventListenerWithOptions: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDblClickEventListenerUseCapture: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDblClickEventListener: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; + [@send] external removeDblClickEventListenerWithOptions: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDblClickEventListenerUseCapture: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addMouseDownEventListener: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; + [@send] external addMouseDownEventListenerWithOptions: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addMouseDownEventListenerUseCapture: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeMouseDownEventListener: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; + [@send] external removeMouseDownEventListenerWithOptions: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeMouseDownEventListenerUseCapture: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addMouseEnterEventListener: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; + [@send] external addMouseEnterEventListenerWithOptions: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addMouseEnterEventListenerUseCapture: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeMouseEnterEventListener: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; + [@send] external removeMouseEnterEventListenerWithOptions: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeMouseEnterEventListenerUseCapture: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addMouseMoveEventListener: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; + [@send] external addMouseMoveEventListenerWithOptions: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addMouseMoveEventListenerUseCapture: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeMouseMoveEventListener: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; + [@send] external removeMouseMoveEventListenerWithOptions: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeMouseMoveEventListenerUseCapture: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addMouseOutEventListener: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; + [@send] external addMouseOutEventListenerWithOptions: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addMouseOutEventListenerUseCapture: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeMouseOutEventListener: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; + [@send] external removeMouseOutEventListenerWithOptions: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeMouseOutEventListenerUseCapture: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addMouseOverEventListener: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; + [@send] external addMouseOverEventListenerWithOptions: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addMouseOverEventListenerUseCapture: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeMouseOverEventListener: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; + [@send] external removeMouseOverEventListenerWithOptions: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeMouseOverEventListenerUseCapture: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addMouseUpEventListener: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; + [@send] external addMouseUpEventListenerWithOptions: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addMouseUpEventListenerUseCapture: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeMouseUpEventListener: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; + [@send] external removeMouseUpEventListenerWithOptions: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeMouseUpEventListenerUseCapture: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Wheel */ - [@bs.send.pipe : T.t] external addWheelEventListener : ([@bs.as "wheel"] _, Dom.wheelEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addWheelEventListenerWithOptions : ([@bs.as "wheel"] _, Dom.wheelEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addWheelEventListenerUseCapture : ([@bs.as "wheel"] _, Dom.wheelEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeWheelEventListener : ([@bs.as "wheel"] _, Dom.wheelEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeWheelEventListenerWithOptions : ([@bs.as "wheel"] _, Dom.wheelEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeWheelEventListenerUseCapture : ([@bs.as "wheel"] _, Dom.wheelEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addWheelEventListener: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit) => unit = "addEventListener"; + [@send] external addWheelEventListenerWithOptions: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addWheelEventListenerUseCapture: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeWheelEventListener: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit) => unit = "removeEventListener"; + [@send] external removeWheelEventListenerWithOptions: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeWheelEventListenerUseCapture: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Input */ - [@bs.send.pipe : T.t] external addBeforeInputEventListener : ([@bs.as "beforeinput"] _, Dom.inputEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addBeforeInputEventListenerWithOptions : ([@bs.as "beforeinput"] _, Dom.inputEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addBeforeInputEventListenerUseCapture : ([@bs.as "beforeinput"] _, Dom.inputEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeBeforeInputEventListener : ([@bs.as "beforeinput"] _, Dom.inputEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeBeforeInputEventListenerWithOptions : ([@bs.as "beforeinput"] _, Dom.inputEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeBeforeInputEventListenerUseCapture : ([@bs.as "beforeinput"] _, Dom.inputEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addBeforeInputEventListener: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit) => unit = "addEventListener"; + [@send] external addBeforeInputEventListenerWithOptions: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addBeforeInputEventListenerUseCapture: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeBeforeInputEventListener: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit) => unit = "removeEventListener"; + [@send] external removeBeforeInputEventListenerWithOptions: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeBeforeInputEventListenerUseCapture: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external addInputEventListener : ([@bs.as "input"] _, Dom.inputEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addInputEventListenerWithOptions : ([@bs.as "input"] _, Dom.inputEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addInputEventListenerUseCapture : ([@bs.as "input"] _, Dom.inputEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeInputEventListener : ([@bs.as "input"] _, Dom.inputEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeInputEventListenerWithOptions : ([@bs.as "input"] _, Dom.inputEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeInputEventListenerUseCapture : ([@bs.as "input"] _, Dom.inputEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addInputEventListener: (T.t, [@as "input"] _, Dom.inputEvent => unit) => unit = "addEventListener"; + [@send] external addInputEventListenerWithOptions: (T.t, [@as "input"] _, Dom.inputEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addInputEventListenerUseCapture: (T.t, [@as "input"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeInputEventListener: (T.t, [@as "input"] _, Dom.inputEvent => unit) => unit = "removeEventListener"; + [@send] external removeInputEventListenerWithOptions: (T.t, [@as "input"] _, Dom.inputEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeInputEventListenerUseCapture: (T.t, [@as "input"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Keyboard */ - [@bs.send.pipe : T.t] external addKeyDownEventListener : ([@bs.as "keydown"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addKeyDownEventListenerWithOptions : ([@bs.as "keydown"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addKeyDownEventListenerUseCapture : ([@bs.as "keydown"] _, Dom.keyboardEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeKeyDownEventListener : ([@bs.as "keydown"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeKeyDownEventListenerWithOptions : ([@bs.as "keydown"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeKeyDownEventListenerUseCapture : ([@bs.as "keydown"] _, Dom.keyboardEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addKeyUpEventListener : ([@bs.as "keyup"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addKeyUpEventListenerWithOptions : ([@bs.as "keyup"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addKeyUpEventListenerUseCapture : ([@bs.as "keyup"] _, Dom.keyboardEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeKeyUpEventListener : ([@bs.as "keyup"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeKeyUpEventListenerWithOptions : ([@bs.as "keyup"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeKeyUpEventListenerUseCapture : ([@bs.as "keyup"] _, Dom.keyboardEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addKeyDownEventListener: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; + [@send] external addKeyDownEventListenerWithOptions: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addKeyDownEventListenerUseCapture: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeKeyDownEventListener: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; + [@send] external removeKeyDownEventListenerWithOptions: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeKeyDownEventListenerUseCapture: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addKeyUpEventListener: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; + [@send] external addKeyUpEventListenerWithOptions: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addKeyUpEventListenerUseCapture: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeKeyUpEventListener: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; + [@send] external removeKeyUpEventListenerWithOptions: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeKeyUpEventListenerUseCapture: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external addKeyPressEventListener : ([@bs.as "keypress"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addKeyPressEventListenerWithOptions : ([@bs.as "keypress"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addKeyPressEventListenerUseCapture : ([@bs.as "keypress"] _, Dom.keyboardEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeKeyPressEventListener : ([@bs.as "keypress"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeKeyPressEventListenerWithOptions : ([@bs.as "keypress"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeKeyPressEventListenerUseCapture : ([@bs.as "keypress"] _, Dom.keyboardEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addKeyPressEventListener: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; + [@send] external addKeyPressEventListenerWithOptions: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addKeyPressEventListenerUseCapture: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeKeyPressEventListener: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; + [@send] external removeKeyPressEventListenerWithOptions: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeKeyPressEventListenerUseCapture: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Composition */ - [@bs.send.pipe : T.t] external addCompositionStartEventListener : ([@bs.as "compositionstart"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addCompositionStartEventListenerWithOptions : ([@bs.as "compositionstart"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addCompositionStartEventListenerUseCapture : ([@bs.as "compositionstart"] _, Dom.compositionEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeCompositionStartEventListener : ([@bs.as "compositionstart"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeCompositionStartEventListenerWithOptions : ([@bs.as "compositionstart"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeCompositionStartEventListenerUseCapture : ([@bs.as "compositionstart"] _, Dom.compositionEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addCompositionUpdateEventListener : ([@bs.as "compositionupdate"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addCompositionUpdateEventListenerWithOptions : ([@bs.as "compositionupdate"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addCompositionUpdateEventListenerUseCapture : ([@bs.as "compositionupdate"] _, Dom.compositionEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeCompositionUpdateEventListener : ([@bs.as "compositionupdate"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeCompositionUpdateEventListenerWithOptions : ([@bs.as "compositionupdate"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeCompositionUpdateEventListenerUseCapture : ([@bs.as "compositionupdate"] _, Dom.compositionEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addCompositionEndEventListener : ([@bs.as "compositionend"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addCompositionEndEventListenerWithOptions : ([@bs.as "compositionend"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addCompositionEndEventListenerUseCapture : ([@bs.as "compositionend"] _, Dom.compositionEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeCompositionEndEventListener : ([@bs.as "compositionend"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeCompositionEndEventListenerWithOptions : ([@bs.as "compositionend"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeCompositionEndEventListenerUseCapture : ([@bs.as "compositionend"] _, Dom.compositionEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addCompositionStartEventListener: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; + [@send] external addCompositionStartEventListenerWithOptions: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addCompositionStartEventListenerUseCapture: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeCompositionStartEventListener: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; + [@send] external removeCompositionStartEventListenerWithOptions: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeCompositionStartEventListenerUseCapture: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addCompositionUpdateEventListener: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; + [@send] external addCompositionUpdateEventListenerWithOptions: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addCompositionUpdateEventListenerUseCapture: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeCompositionUpdateEventListener: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; + [@send] external removeCompositionUpdateEventListenerWithOptions: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeCompositionUpdateEventListenerUseCapture: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addCompositionEndEventListener: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; + [@send] external addCompositionEndEventListenerWithOptions: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addCompositionEndEventListenerUseCapture: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeCompositionEndEventListener: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; + [@send] external removeCompositionEndEventListenerWithOptions: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeCompositionEndEventListenerUseCapture: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Drag */ - [@bs.send.pipe : T.t] external addDragEventListener : ([@bs.as "drag"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDragEventListenerWithOptions : ([@bs.as "drag"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDragEventListenerUseCapture : ([@bs.as "drag"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDragEventListener : ([@bs.as "drag"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDragEventListenerWithOptions : ([@bs.as "drag"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDragEventListenerUseCapture : ([@bs.as "drag"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addDragEndEventListener : ([@bs.as "dragend"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDragEndEventListenerWithOptions : ([@bs.as "dragend"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDragEndEventListenerUseCapture : ([@bs.as "dragend"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDragEndEventListener : ([@bs.as "dragend"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDragEndEventListenerWithOptions : ([@bs.as "dragend"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDragEndEventListenerUseCapture : ([@bs.as "dragend"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addDragEnterEventListener : ([@bs.as "dragenter"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDragEnterEventListenerWithOptions : ([@bs.as "dragenter"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDragEnterEventListenerUseCapture : ([@bs.as "dragenter"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDragEnterEventListener : ([@bs.as "dragenter"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDragEnterEventListenerWithOptions : ([@bs.as "dragenter"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDragEnterEventListenerUseCapture : ([@bs.as "dragenter"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addDragExitEventListener : ([@bs.as "dragexit"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDragExitEventListenerWithOptions : ([@bs.as "dragexit"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDragExitEventListenerUseCapture : ([@bs.as "dragexit"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDragExitEventListener : ([@bs.as "dragexit"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDragExitEventListenerWithOptions : ([@bs.as "dragexit"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDragExitEventListenerUseCapture : ([@bs.as "dragexit"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addDragLeaveEventListener : ([@bs.as "dragleave"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDragLeaveEventListenerWithOptions : ([@bs.as "dragleave"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDragLeaveEventListenerUseCapture : ([@bs.as "dragleave"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDragLeaveEventListener : ([@bs.as "dragleave"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDragLeaveEventListenerWithOptions : ([@bs.as "dragleave"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDragLeaveEventListenerUseCapture : ([@bs.as "dragleave"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addDragOverEventListener : ([@bs.as "dragover"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDragOverEventListenerWithOptions : ([@bs.as "dragover"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDragOverEventListenerUseCapture : ([@bs.as "dragover"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDragOverEventListener : ([@bs.as "dragover"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDragOverEventListenerWithOptions : ([@bs.as "dragover"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDragOverEventListenerUseCapture : ([@bs.as "dragover"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addDragStartEventListener : ([@bs.as "dragstart"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDragStartEventListenerWithOptions : ([@bs.as "dragstart"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDragStartEventListenerUseCapture : ([@bs.as "dragstart"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDragStartEventListener : ([@bs.as "dragstart"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDragStartEventListenerWithOptions : ([@bs.as "dragstart"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDragStartEventListenerUseCapture : ([@bs.as "dragstart"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addDropEventListener : ([@bs.as "drop"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addDropEventListenerWithOptions : ([@bs.as "drop"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addDropEventListenerUseCapture : ([@bs.as "drop"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeDropEventListener : ([@bs.as "drop"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeDropEventListenerWithOptions : ([@bs.as "drop"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeDropEventListenerUseCapture : ([@bs.as "drop"] _, Dom.dragEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addDragEventListener: (T.t, [@as "drag"] _, Dom.dragEvent => unit) => unit = "addEventListener"; + [@send] external addDragEventListenerWithOptions: (T.t, [@as "drag"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDragEventListenerUseCapture: (T.t, [@as "drag"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDragEventListener: (T.t, [@as "drag"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; + [@send] external removeDragEventListenerWithOptions: (T.t, [@as "drag"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDragEventListenerUseCapture: (T.t, [@as "drag"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addDragEndEventListener: (T.t, [@as "dragend"] _, Dom.dragEvent => unit) => unit = "addEventListener"; + [@send] external addDragEndEventListenerWithOptions: (T.t, [@as "dragend"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDragEndEventListenerUseCapture: (T.t, [@as "dragend"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDragEndEventListener: (T.t, [@as "dragend"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; + [@send] external removeDragEndEventListenerWithOptions: (T.t, [@as "dragend"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDragEndEventListenerUseCapture: (T.t, [@as "dragend"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addDragEnterEventListener: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit) => unit = "addEventListener"; + [@send] external addDragEnterEventListenerWithOptions: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDragEnterEventListenerUseCapture: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDragEnterEventListener: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; + [@send] external removeDragEnterEventListenerWithOptions: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDragEnterEventListenerUseCapture: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addDragExitEventListener: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit) => unit = "addEventListener"; + [@send] external addDragExitEventListenerWithOptions: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDragExitEventListenerUseCapture: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDragExitEventListener: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; + [@send] external removeDragExitEventListenerWithOptions: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDragExitEventListenerUseCapture: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addDragLeaveEventListener: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit) => unit = "addEventListener"; + [@send] external addDragLeaveEventListenerWithOptions: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDragLeaveEventListenerUseCapture: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDragLeaveEventListener: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; + [@send] external removeDragLeaveEventListenerWithOptions: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDragLeaveEventListenerUseCapture: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addDragOverEventListener: (T.t, [@as "dragover"] _, Dom.dragEvent => unit) => unit = "addEventListener"; + [@send] external addDragOverEventListenerWithOptions: (T.t, [@as "dragover"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDragOverEventListenerUseCapture: (T.t, [@as "dragover"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDragOverEventListener: (T.t, [@as "dragover"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; + [@send] external removeDragOverEventListenerWithOptions: (T.t, [@as "dragover"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDragOverEventListenerUseCapture: (T.t, [@as "dragover"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addDragStartEventListener: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit) => unit = "addEventListener"; + [@send] external addDragStartEventListenerWithOptions: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDragStartEventListenerUseCapture: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDragStartEventListener: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; + [@send] external removeDragStartEventListenerWithOptions: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDragStartEventListenerUseCapture: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addDropEventListener: (T.t, [@as "drop"] _, Dom.dragEvent => unit) => unit = "addEventListener"; + [@send] external addDropEventListenerWithOptions: (T.t, [@as "drop"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addDropEventListenerUseCapture: (T.t, [@as "drop"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeDropEventListener: (T.t, [@as "drop"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; + [@send] external removeDropEventListenerWithOptions: (T.t, [@as "drop"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeDropEventListenerUseCapture: (T.t, [@as "drop"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Touch */ - [@bs.send.pipe : T.t] external addTouchCancelEventListener : ([@bs.as "touchcancel"] _, Dom.touchEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addTouchCancelEventListenerWithOptions : ([@bs.as "touchcancel"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addTouchCancelEventListenerUseCapture : ([@bs.as "touchcancel"] _, Dom.touchEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeTouchCancelEventListener : ([@bs.as "touchcancel"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeTouchCancelEventListenerWithOptions : ([@bs.as "touchcancel"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeTouchCancelEventListenerUseCapture : ([@bs.as "touchcancel"] _, Dom.touchEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addTouchEndEventListener : ([@bs.as "touchend"] _, Dom.touchEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addTouchEndEventListenerWithOptions : ([@bs.as "touchend"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addTouchEndEventListenerUseCapture : ([@bs.as "touchend"] _, Dom.touchEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeTouchEndEventListener : ([@bs.as "touchend"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeTouchEndEventListenerWithOptions : ([@bs.as "touchend"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeTouchEndEventListenerUseCapture : ([@bs.as "touchend"] _, Dom.touchEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addTouchMoveEventListener : ([@bs.as "touchmove"] _, Dom.touchEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addTouchMoveEventListenerWithOptions : ([@bs.as "touchmove"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addTouchMoveEventListenerUseCapture : ([@bs.as "touchmove"] _, Dom.touchEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeTouchMoveEventListener : ([@bs.as "touchmove"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeTouchMoveEventListenerWithOptions : ([@bs.as "touchmove"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeTouchMoveEventListenerUseCapture : ([@bs.as "touchmove"] _, Dom.touchEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addTouchStartEventListener : ([@bs.as "touchstart"] _, Dom.touchEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addTouchStartEventListenerWithOptions : ([@bs.as "touchstart"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addTouchStartEventListenerUseCapture : ([@bs.as "touchstart"] _, Dom.touchEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeTouchStartEventListener : ([@bs.as "touchstart"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeTouchStartEventListenerWithOptions : ([@bs.as "touchstart"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeTouchStartEventListenerUseCapture : ([@bs.as "touchstart"] _, Dom.touchEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addTouchCancelEventListener: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit) => unit = "addEventListener"; + [@send] external addTouchCancelEventListenerWithOptions: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addTouchCancelEventListenerUseCapture: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeTouchCancelEventListener: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; + [@send] external removeTouchCancelEventListenerWithOptions: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeTouchCancelEventListenerUseCapture: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addTouchEndEventListener: (T.t, [@as "touchend"] _, Dom.touchEvent => unit) => unit = "addEventListener"; + [@send] external addTouchEndEventListenerWithOptions: (T.t, [@as "touchend"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addTouchEndEventListenerUseCapture: (T.t, [@as "touchend"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeTouchEndEventListener: (T.t, [@as "touchend"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; + [@send] external removeTouchEndEventListenerWithOptions: (T.t, [@as "touchend"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeTouchEndEventListenerUseCapture: (T.t, [@as "touchend"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addTouchMoveEventListener: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit) => unit = "addEventListener"; + [@send] external addTouchMoveEventListenerWithOptions: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addTouchMoveEventListenerUseCapture: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeTouchMoveEventListener: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; + [@send] external removeTouchMoveEventListenerWithOptions: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeTouchMoveEventListenerUseCapture: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addTouchStartEventListener: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit) => unit = "addEventListener"; + [@send] external addTouchStartEventListenerWithOptions: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addTouchStartEventListenerUseCapture: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeTouchStartEventListener: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; + [@send] external removeTouchStartEventListenerWithOptions: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeTouchStartEventListenerUseCapture: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; /* Animation */ - [@bs.send.pipe : T.t] external addAnimationCancelEventListener : ([@bs.as "animationcancel"] _, Dom.animationEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addAnimationCancelEventListenerWithOptions : ([@bs.as "animationcancel"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addAnimationCancelEventListenerUseCapture : ([@bs.as "animationcancel"] _, Dom.animationEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeAnimationCancelEventListener : ([@bs.as "animationcancel"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeAnimationCancelEventListenerWithOptions : ([@bs.as "animationcancel"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeAnimationCancelEventListenerUseCapture : ([@bs.as "animationcancel"] _, Dom.animationEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addAnimationEndEventListener : ([@bs.as "animationend"] _, Dom.animationEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addAnimationEndEventListenerWithOptions : ([@bs.as "animationend"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addAnimationEndEventListenerUseCapture : ([@bs.as "animationend"] _, Dom.animationEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeAnimationEndEventListener : ([@bs.as "animationend"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeAnimationEndEventListenerWithOptions : ([@bs.as "animationend"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeAnimationEndEventListenerUseCapture : ([@bs.as "animationend"] _, Dom.animationEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addAnimationIterationEventListener : ([@bs.as "animationiteration"] _, Dom.animationEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addAnimationIterationEventListenerWithOptions : ([@bs.as "animationiteration"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addAnimationIterationEventListenerUseCapture : ([@bs.as "animationiteration"] _, Dom.animationEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeAnimationIterationEventListener : ([@bs.as "animationiteration"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeAnimationIterationEventListenerWithOptions : ([@bs.as "animationiteration"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeAnimationIterationEventListenerUseCapture : ([@bs.as "animationiteration"] _, Dom.animationEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; - - [@bs.send.pipe : T.t] external addAnimationStartEventListener : ([@bs.as "animationstart"] _, Dom.animationEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addAnimationStartEventListenerWithOptions : ([@bs.as "animationstart"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addAnimationStartEventListenerUseCapture : ([@bs.as "animationstart"] _, Dom.animationEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeAnimationStartEventListener : ([@bs.as "animationstart"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeAnimationStartEventListenerWithOptions : ([@bs.as "animationstart"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeAnimationStartEventListenerUseCapture : ([@bs.as "animationstart"] _, Dom.animationEvent => unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addAnimationCancelEventListener: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit) => unit = "addEventListener"; + [@send] external addAnimationCancelEventListenerWithOptions: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addAnimationCancelEventListenerUseCapture: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeAnimationCancelEventListener: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; + [@send] external removeAnimationCancelEventListenerWithOptions: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeAnimationCancelEventListenerUseCapture: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addAnimationEndEventListener: (T.t, [@as "animationend"] _, Dom.animationEvent => unit) => unit = "addEventListener"; + [@send] external addAnimationEndEventListenerWithOptions: (T.t, [@as "animationend"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addAnimationEndEventListenerUseCapture: (T.t, [@as "animationend"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeAnimationEndEventListener: (T.t, [@as "animationend"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; + [@send] external removeAnimationEndEventListenerWithOptions: (T.t, [@as "animationend"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeAnimationEndEventListenerUseCapture: (T.t, [@as "animationend"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addAnimationIterationEventListener: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit) => unit = "addEventListener"; + [@send] external addAnimationIterationEventListenerWithOptions: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addAnimationIterationEventListenerUseCapture: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeAnimationIterationEventListener: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; + [@send] external removeAnimationIterationEventListenerWithOptions: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeAnimationIterationEventListenerUseCapture: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + + [@send] external addAnimationStartEventListener: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit) => unit = "addEventListener"; + [@send] external addAnimationStartEventListenerWithOptions: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addAnimationStartEventListenerUseCapture: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeAnimationStartEventListener: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; + [@send] external removeAnimationStartEventListenerWithOptions: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeAnimationStartEventListenerUseCapture: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; }; include Impl({ type nonrec t = Dom.eventTarget; }); diff --git a/src/Webapi/Dom/Webapi__Dom__FocusEvent.re b/src/Webapi/Dom/Webapi__Dom__FocusEvent.re index 55b5d210..e1be7eec 100644 --- a/src/Webapi/Dom/Webapi__Dom__FocusEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__FocusEvent.re @@ -3,7 +3,7 @@ type t = Dom.focusEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "FocusEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "FocusEvent"; +[@new] external make : string => t = "FocusEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "FocusEvent"; -[@bs.get] [@bs.return nullable] external relatedTarget : t => option(Dom.eventTarget) = ""; +[@get] [@return nullable] external relatedTarget : t => option(Dom.eventTarget) = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__GlobalEventHandlers.re b/src/Webapi/Dom/Webapi__Dom__GlobalEventHandlers.re index 3a882934..bdfa7b55 100644 --- a/src/Webapi/Dom/Webapi__Dom__GlobalEventHandlers.re +++ b/src/Webapi/Dom/Webapi__Dom__GlobalEventHandlers.re @@ -1,9 +1,9 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@bs.send.pipe : T.t] external addSelectionChangeEventListener : ([@bs.as "selectionchange"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external addSelectionChangeEventListenerWithOptions : ([@bs.as "selectionchange"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external addSelectionChangeEventListenerUseCapture : ([@bs.as "selectionchange"] _, Dom.focusEvent => unit, [@bs.as {json|true|json}] _) => unit = "addEventListener"; - [@bs.send.pipe : T.t] external removeSelectionChangeEventListener : ([@bs.as "selectionchange"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@bs.send.pipe : T.t] external removeSelectionChangeEventListenerWithOptions : ([@bs.as "selectionchange"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@bs.send.pipe : T.t] external removeSelectionChangeEventListenerUseCapture : ([@bs.as "selectionchange"] _, Dom.focusEvent =>unit, [@bs.as {json|true|json}] _) => unit = "removeEventListener"; + [@send] external addSelectionChangeEventListener: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit) => unit = "addEventListener"; + [@send] external addSelectionChangeEventListenerWithOptions: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ + [@send] external addSelectionChangeEventListenerUseCapture: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; + [@send] external removeSelectionChangeEventListener: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; + [@send] external removeSelectionChangeEventListenerWithOptions: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ + [@send] external removeSelectionChangeEventListenerUseCapture: (T.t, [@as "selectionchange"] _, Dom.focusEvent =>unit, [@as {json|true|json}] _) => unit = "removeEventListener"; }; diff --git a/src/Webapi/Dom/Webapi__Dom__History.re b/src/Webapi/Dom/Webapi__Dom__History.re index 9ed7e699..ad5a53b4 100644 --- a/src/Webapi/Dom/Webapi__Dom__History.re +++ b/src/Webapi/Dom/Webapi__Dom__History.re @@ -1,13 +1,13 @@ type t = Dom.history; type state; /* TODO: should be "anything that can be serializable" apparently */ -[@bs.get] external length : t => int = ""; -[@bs.get] external scrollRestoration : t => bool = ""; /* experimental */ -[@bs.set] external setScrollRestoration : (t, bool) => unit = "scrollRestoration"; /* experimental */ -[@bs.get] external state : t => state = ""; +[@get] external length : t => int = ""; +[@get] external scrollRestoration : t => bool = ""; /* experimental */ +[@set] external setScrollRestoration : (t, bool) => unit = "scrollRestoration"; /* experimental */ +[@get] external state : t => state = ""; -[@bs.send.pipe : t] external back : unit = ""; -[@bs.send.pipe : t] external forward : unit = ""; -[@bs.send.pipe : t] external go : int => unit = ""; -[@bs.send.pipe : t] external pushState : (state, string, string) => unit = ""; -[@bs.send.pipe : t] external replaceState : (state, string, string) => unit = ""; +[@send] external back: t => unit = ""; +[@send] external forward: t => unit = ""; +[@send] external go: t => int => unit = ""; +[@send] external pushState: (t, state, string, string) => unit = ""; +[@send] external replaceState: (t, state, string, string) => unit = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlCollection.re b/src/Webapi/Dom/Webapi__Dom__HtmlCollection.re index b57d911d..a4d089ed 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlCollection.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlCollection.re @@ -1,7 +1,7 @@ type t = Dom.htmlCollection; -[@bs.val] [@bs.scope ("Array", "prototype", "slice")] external toArray : t => array(Dom.element) = "call"; +[@val] [@scope ("Array", "prototype", "slice")] external toArray : t => array(Dom.element) = "call"; -[@bs.get] external length : t => int = ""; -[@bs.send.pipe : t] [@bs.return nullable] external item : int => option(Dom.element) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external namedItem : string => option(Dom.element) = ""; +[@get] external length : t => int = ""; +[@send] [@return nullable] external item: t => int => option(Dom.element) = ""; +[@send] [@return nullable] external namedItem: t => string => option(Dom.element) = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlDocument.re b/src/Webapi/Dom/Webapi__Dom__HtmlDocument.re index 36a790b9..898db463 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlDocument.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlDocument.re @@ -1,64 +1,75 @@ module Impl = (T: {type t;}) => { type t_htmlDocument = T.t; - [@bs.get] [@bs.return nullable] external activeElement : t_htmlDocument => option(Dom.element) = ""; - [@bs.get] [@bs.return nullable] external body : t_htmlDocument => option(Dom.element) = ""; /* returns option HTMLBodyElement */ - [@bs.set] external setBody : (t_htmlDocument, Dom.element) => unit = "body"; /* accepth HTMLBodyElement */ - [@bs.get] external cookie : t_htmlDocument => string = ""; - [@bs.set] external setCookie : (t_htmlDocument, string) => unit = "cookie"; - [@bs.get] [@bs.return nullable] external defaultView : t_htmlDocument => option(Dom.window) = ""; - [@bs.get] external designMode : t_htmlDocument => string /* designMode enum */ = ""; + [@get] [@return nullable] external activeElement: t_htmlDocument => option(Dom.element); + [@get] [@return nullable] external body: t_htmlDocument => option(Dom.element); /* returns option HTMLBodyElement */ + [@set] external setBody: (t_htmlDocument, Dom.element) => unit = "body"; /* accepth HTMLBodyElement */ + [@get] external cookie: t_htmlDocument => string; + [@set] external setCookie: (t_htmlDocument, string) => unit = "cookie"; + [@get] [@return nullable] external defaultView: t_htmlDocument => option(Dom.window); + [@get] external designMode: t_htmlDocument => string /* designMode enum */; let designMode: t_htmlDocument => Webapi__Dom__Types.designMode = - (self) => Webapi__Dom__Types.decodeDesignMode(designMode(self)); - [@bs.set] external setDesignMode : (t_htmlDocument, string /* designMode enum */) => unit = "designMode"; + self => Webapi__Dom__Types.decodeDesignMode(designMode(self)); + [@set] + external setDesignMode: (t_htmlDocument, string /* designMode enum */) => unit = "designMode"; let setDesignMode: (t_htmlDocument, Webapi__Dom__Types.designMode) => unit = (self, value) => setDesignMode(self, Webapi__Dom__Types.encodeDesignMode(value)); - [@bs.get] external dir : t_htmlDocument => string /* dir enum */ = ""; - let dir: t_htmlDocument => Webapi__Dom__Types.dir = (self) => Webapi__Dom__Types.decodeDir(dir(self)); - [@bs.set] external setDir : (t_htmlDocument, string /* dir enum */) => unit = "dir"; + [@get] external dir: t_htmlDocument => string /* dir enum */; + let dir: t_htmlDocument => Webapi__Dom__Types.dir = + self => Webapi__Dom__Types.decodeDir(dir(self)); + [@set] external setDir: (t_htmlDocument, string /* dir enum */) => unit = "dir"; let setDir: (t_htmlDocument, Webapi__Dom__Types.dir) => unit = (self, value) => setDir(self, Webapi__Dom__Types.encodeDir(value)); - [@bs.get] [@bs.return nullable] external domain : t_htmlDocument => option(string) = ""; - [@bs.set] external setDomain : (t_htmlDocument, string) => unit = "domain"; - [@bs.get] external embeds : t_htmlDocument => Dom.nodeList = ""; - [@bs.get] external forms : t_htmlDocument => Dom.htmlCollection = ""; - [@bs.get] external head : t_htmlDocument => Dom.element = ""; /* returns HTMLHeadElement */ - [@bs.get] external images : t_htmlDocument => Dom.htmlCollection = ""; - [@bs.get] external lastModified : t_htmlDocument => string = ""; - [@bs.get] external links : t_htmlDocument => Dom.nodeList = ""; - [@bs.get] external location : t_htmlDocument => Dom.location = ""; - [@bs.set] external setLocation : (t_htmlDocument, string) => unit = "location"; - [@bs.get] external plugins : t_htmlDocument => Dom.htmlCollection = ""; - [@bs.get] external readyState : t_htmlDocument => string /* enum */ = ""; + [@get] [@return nullable] external domain: t_htmlDocument => option(string); + [@set] external setDomain: (t_htmlDocument, string) => unit = "domain"; + [@get] external embeds: t_htmlDocument => Dom.nodeList; + [@get] external forms: t_htmlDocument => Dom.htmlCollection; + [@get] external head: t_htmlDocument => Dom.element; /* returns HTMLHeadElement */ + [@get] external images: t_htmlDocument => Dom.htmlCollection; + [@get] external lastModified: t_htmlDocument => string; + [@get] external links: t_htmlDocument => Dom.nodeList; + [@get] external location: t_htmlDocument => Dom.location; + [@set] external setLocation: (t_htmlDocument, string) => unit = "location"; + [@get] external plugins: t_htmlDocument => Dom.htmlCollection; + [@get] external readyState: t_htmlDocument => string /* enum */; let readyState: t_htmlDocument => Webapi__Dom__Types.readyState = - (self) => Webapi__Dom__Types.decodeReadyState(readyState(self)); - [@bs.get] external referrer : t_htmlDocument => string = ""; - [@bs.get] external scripts : t_htmlDocument => Dom.htmlCollection = ""; - [@bs.get] external title : t_htmlDocument => string = ""; - [@bs.set] external setTitle : (t_htmlDocument, string) => unit = "title"; - [@bs.get] external url : t_htmlDocument => string = "URL"; + self => Webapi__Dom__Types.decodeReadyState(readyState(self)); + [@get] external referrer: t_htmlDocument => string; + [@get] external scripts: t_htmlDocument => Dom.htmlCollection; + [@get] external title: t_htmlDocument => string; + [@set] external setTitle: (t_htmlDocument, string) => unit = "title"; + [@get] external url: t_htmlDocument => string = "URL"; - [@bs.send.pipe : t_htmlDocument] external close : unit = ""; - [@bs.send.pipe : t_htmlDocument] external execCommand : (string, bool, Js.null(string)) => bool = ""; - let execCommand: (string, bool, option(string), t_htmlDocument) => bool = - (command, show, value, self) => - execCommand(command, show, Js.Null.fromOption(value), self); - [@bs.send.pipe : t_htmlDocument] external getElementsByName : string => Dom.nodeList = ""; - [@bs.send.pipe : t_htmlDocument] external getSelection : Dom.selection = ""; - [@bs.send.pipe : t_htmlDocument] external hasFocus : bool = ""; - [@bs.send.pipe : t_htmlDocument] external open_ : unit = "open"; - [@bs.send.pipe : t_htmlDocument] external queryCommandEnabled : string => bool = ""; - [@bs.send.pipe : t_htmlDocument] external queryCommandIndeterm : string => bool = ""; - [@bs.send.pipe : t_htmlDocument] external queryCommandSupported : string => bool = ""; - [@bs.send.pipe : t_htmlDocument] external queryCommandValue : string => string = ""; - [@bs.send.pipe : t_htmlDocument] external write : string => unit = ""; - [@bs.send.pipe : t_htmlDocument] external writeln : string => unit = ""; + [@send] external close: t_htmlDocument => unit; + [@send] external execCommand: (t_htmlDocument, string, bool, Js.null(string)) => bool; + let execCommand: (t_htmlDocument, string, bool, option(string)) => bool = + (self, command, show, value) => self->execCommand(command, show, Js.Null.fromOption(value)); + [@send] external getElementsByName: t_htmlDocument => string => Dom.nodeList; + [@send] external getSelection: t_htmlDocument => Dom.selection; + [@send] external hasFocus: t_htmlDocument => bool; + [@send] external open_: t_htmlDocument => unit = "open"; + [@send] external queryCommandEnabled: t_htmlDocument => string => bool; + [@send] external queryCommandIndeterm: t_htmlDocument => string => bool; + [@send] external queryCommandSupported: t_htmlDocument => string => bool; + [@send] external queryCommandValue: t_htmlDocument => string => string; + [@send] external write: t_htmlDocument => string => unit; + [@send] external writeln: t_htmlDocument => string => unit; }; type t = Dom.htmlDocument; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__GlobalEventHandlers.Impl({ type nonrec t = t; }); -include Webapi__Dom__Document.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__GlobalEventHandlers.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Document.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlElement.re b/src/Webapi/Dom/Webapi__Dom__HtmlElement.re index 130152b7..2d9c9234 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlElement.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlElement.re @@ -3,78 +3,77 @@ module Impl = (T: {type t;}) => { let ofElement = Webapi__Dom__Element.asHtmlElement; - [@bs.get] external accessKey : t_htmlElement => string = ""; - [@bs.set] external setAccessKey : (t_htmlElement, string) => unit = "accessKey"; - [@bs.get] external accessKeyLabel : t_htmlElement => string = ""; - [@bs.get] external contentEditable : t_htmlElement => string /* enum */ = ""; + [@get] external accessKey : t_htmlElement => string = ""; + [@set] external setAccessKey : (t_htmlElement, string) => unit = "accessKey"; + [@get] external accessKeyLabel : t_htmlElement => string = ""; + [@get] external contentEditable : t_htmlElement => string /* enum */ = ""; let contentEditable: t_htmlElement => Webapi__Dom__Types.contentEditable = (self) => Webapi__Dom__Types.decodeContentEditable(contentEditable(self)); - [@bs.set] external setContentEditable : (t_htmlElement, string /* enum */) => unit = "contentEditable"; + [@set] external setContentEditable : (t_htmlElement, string /* enum */) => unit = "contentEditable"; let setContentEditable: (t_htmlElement, Webapi__Dom__Types.contentEditable) => unit = (self, value) => setContentEditable(self, Webapi__Dom__Types.encodeContentEditable(value)); - [@bs.get] external isContentEditable : t_htmlElement => bool = ""; - [@bs.get] external contextMenu : t_htmlElement => Dom.htmlElement = ""; /* returns HTMLMenuElement */ - [@bs.set] external setContextMenu : (t_htmlElement, Dom.htmlElement) => unit = "contextMenu"; /* accepts and returns HTMLMenuElement */ - [@bs.get] external dataset : t_htmlElement => Dom.domStringMap = ""; - [@bs.get] external dir : t_htmlElement => string /* enum */ = ""; + [@get] external isContentEditable : t_htmlElement => bool = ""; + [@get] external contextMenu : t_htmlElement => Dom.htmlElement = ""; /* returns HTMLMenuElement */ + [@set] external setContextMenu : (t_htmlElement, Dom.htmlElement) => unit = "contextMenu"; /* accepts and returns HTMLMenuElement */ + [@get] external dataset : t_htmlElement => Dom.domStringMap = ""; + [@get] external dir : t_htmlElement => string /* enum */ = ""; let dir: t_htmlElement => Webapi__Dom__Types.dir = (self) => Webapi__Dom__Types.decodeDir(dir(self)); - [@bs.set] external setDir : (t_htmlElement, string /* enum */) => unit = "dir"; + [@set] external setDir : (t_htmlElement, string /* enum */) => unit = "dir"; let setDir: (t_htmlElement, Webapi__Dom__Types.dir) => unit = (self, value) => setDir(self, Webapi__Dom__Types.encodeDir(value)); - [@bs.get] external draggable : t_htmlElement => bool = ""; - [@bs.set] external setDraggable : (t_htmlElement, bool) => unit = "draggable"; + [@get] external draggable : t_htmlElement => bool = ""; + [@set] external setDraggable : (t_htmlElement, bool) => unit = "draggable"; /*let setDraggable : t_htmlElement => bool => unit = fun self value => setDraggable self (Js.Boolean.to_js_boolean value);*/ /* temproarily removed to reduce codegen size */ - [@bs.get] external dropzone : t_htmlElement => Dom.domSettableTokenList = ""; - [@bs.get] external hidden : t_htmlElement => bool = ""; - [@bs.set] external setHidden : (t_htmlElement, bool) => unit = "hidden"; + [@get] external dropzone : t_htmlElement => Dom.domSettableTokenList = ""; + [@get] external hidden : t_htmlElement => bool = ""; + [@set] external setHidden : (t_htmlElement, bool) => unit = "hidden"; /*let setHidden : t_htmlElement => bool => unit = fun self value => setHidden self (Js.Boolean.to_js_boolean value);*/ /* temproarily removed to reduce codegen size */ - [@bs.get] external itemScope : t_htmlElement => bool = ""; /* experimental */ - [@bs.set] external setItemScope : (t_htmlElement, bool) => unit = "itemScope"; + [@get] external itemScope : t_htmlElement => bool = ""; /* experimental */ + [@set] external setItemScope : (t_htmlElement, bool) => unit = "itemScope"; /*let setItemScope : t_htmlElement => bool => unit = fun self value => setItemScope self (Js.Boolean.to_js_boolean value);*//* experimental */ /* temproarily removed to reduce codegen size */ - [@bs.get] external itemType : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ - [@bs.get] external itemId : t_htmlElement => string = ""; /* experimental */ - [@bs.set] external setItemId : (t_htmlElement, string) => unit = "itemId"; /* experimental */ - [@bs.get] external itemRef : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ - [@bs.get] external itemProp : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ - [@bs.get] external itemValue : t_htmlElement => Js.t({..}) = ""; /* experimental */ - [@bs.set] external setItemValue : (t_htmlElement, Js.t({..})) => unit = "itemValue"; /* experimental */ - [@bs.get] external lang : t_htmlElement => string = ""; - [@bs.set] external setLang : (t_htmlElement, string) => unit = "lang"; - [@bs.get] external offsetHeight : t_htmlElement => int = ""; /* experimental */ - [@bs.get] external offsetLeft : t_htmlElement => int = ""; /* experimental */ - [@bs.get] [@bs.return nullable] external offsetParent : t_htmlElement => option(Dom.element) = ""; /* experimental */ - [@bs.get] external offsetTop : t_htmlElement => int = ""; /* experimental, but widely supported */ - [@bs.get] external offsetWidth : t_htmlElement => int = ""; /* experimental */ - /*external properties : r => HTMLPropertiesCollection.t = "properties" [@@bs.get]; /* experimental */*/ - [@bs.get] external spellcheck : t_htmlElement => bool = ""; - [@bs.set] external setSpellcheck : (t_htmlElement, bool) => unit = "spellcheck" ; + [@get] external itemType : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ + [@get] external itemId : t_htmlElement => string = ""; /* experimental */ + [@set] external setItemId : (t_htmlElement, string) => unit = "itemId"; /* experimental */ + [@get] external itemRef : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ + [@get] external itemProp : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ + [@get] external itemValue : t_htmlElement => Js.t({..}) = ""; /* experimental */ + [@set] external setItemValue : (t_htmlElement, Js.t({..})) => unit = "itemValue"; /* experimental */ + [@get] external lang : t_htmlElement => string = ""; + [@set] external setLang : (t_htmlElement, string) => unit = "lang"; + [@get] external offsetHeight : t_htmlElement => int = ""; /* experimental */ + [@get] external offsetLeft : t_htmlElement => int = ""; /* experimental */ + [@get] [@return nullable] external offsetParent : t_htmlElement => option(Dom.element) = ""; /* experimental */ + [@get] external offsetTop : t_htmlElement => int = ""; /* experimental, but widely supported */ + [@get] external offsetWidth : t_htmlElement => int = ""; /* experimental */ + [@get] external spellcheck : t_htmlElement => bool = ""; + [@set] external setSpellcheck : (t_htmlElement, bool) => unit = "spellcheck" ; /*let setSpellcheck : t_htmlElement => bool => unit = fun self value => setSpellcheck self (Js.Boolean.to_js_boolean value);*/ /* temproarily removed to reduce codegen size */ - [@bs.get] external style : t_htmlElement => Dom.cssStyleDeclaration = ""; - [@bs.set] external setStyle : (t_htmlElement, Dom.cssStyleDeclaration) => unit = "style"; - [@bs.get] external tabIndex : t_htmlElement => int = ""; - [@bs.set] external setTabIndex : (t_htmlElement, int) => unit = "tabIndex"; - [@bs.get] external title : t_htmlElement => string = ""; - [@bs.set] external setTitle : (t_htmlElement, string) => unit = "title"; - [@bs.get] external translate : t_htmlElement => bool = ""; /* experimental */ - [@bs.set] external setTranslate : (t_htmlElement, bool) => unit = "translate"; /* experimental */ + [@get] external style : t_htmlElement => Dom.cssStyleDeclaration = ""; + [@set] external setStyle : (t_htmlElement, Dom.cssStyleDeclaration) => unit = "style"; + [@get] external tabIndex : t_htmlElement => int = ""; + [@set] external setTabIndex : (t_htmlElement, int) => unit = "tabIndex"; + [@get] external title : t_htmlElement => string = ""; + [@set] external setTitle : (t_htmlElement, string) => unit = "title"; + [@get] external translate : t_htmlElement => bool = ""; /* experimental */ + [@set] external setTranslate : (t_htmlElement, bool) => unit = "translate"; /* experimental */ /*let setTranslate : t_htmlElement => bool => unit = fun self value => setTranslate self (Js.Boolean.to_js_boolean value);*/ /* temproarily removed to reduce codegen size */ - [@bs.send.pipe : t_htmlElement] external blur : unit = ""; - [@bs.send.pipe : t_htmlElement] external click : unit = ""; - [@bs.send.pipe : t_htmlElement] external focus : unit = ""; - [@bs.send.pipe : t_htmlElement] external focusPreventScroll : ([@bs.as {json|{ "preventScroll": true }|json}] _) => unit = "focus"; - [@bs.send.pipe : t_htmlElement] external forceSpellCheck : unit = ""; /* experimental */ + [@send] external blur: t_htmlElement => unit = ""; + [@send] external click: t_htmlElement => unit = ""; + [@send] external focus: t_htmlElement => unit = ""; + [@send] external focusPreventScroll: (t_htmlElement, [@as {json|{ "preventScroll": true }|json}] _) => unit = "focus"; + [@send] external forceSpellCheck: t_htmlElement => unit = ""; /* experimental */ /* TODO: element-spcific, should be pulled out */ - [@bs.get] external value : t_htmlElement => string = ""; /* HTMLInputElement */ - [@bs.get] external checked : t_htmlElement => bool = ""; /* HTMLInputElement */ - [@bs.get] external type_ : t_htmlElement => string = "type"; /* HTMLStyleElement */ - [@bs.set] external setType : (t_htmlElement, string) => unit = "type"; /* HTMLStyleElement */ - [@bs.get] external rel : t_htmlElement => string = ""; /* HTMLLinkElement */ - [@bs.set] external setRel : (t_htmlElement, string) => unit = "rel"; /* HTMLLinkElement */ - [@bs.get] external href : t_htmlElement => string = ""; /* HTMLLinkElement, HTMLAnchorElement */ - [@bs.set] external setHref : (t_htmlElement, string) => unit = "href"; /* HTMLLinkElement, HTMLAnchorElement */ + [@get] external value : t_htmlElement => string = ""; /* HTMLInputElement */ + [@get] external checked : t_htmlElement => bool = ""; /* HTMLInputElement */ + [@get] external type_ : t_htmlElement => string = "type"; /* HTMLStyleElement */ + [@set] external setType : (t_htmlElement, string) => unit = "type"; /* HTMLStyleElement */ + [@get] external rel : t_htmlElement => string = ""; /* HTMLLinkElement */ + [@set] external setRel : (t_htmlElement, string) => unit = "rel"; /* HTMLLinkElement */ + [@get] external href : t_htmlElement => string = ""; /* HTMLLinkElement, HTMLAnchorElement */ + [@set] external setHref : (t_htmlElement, string) => unit = "href"; /* HTMLLinkElement, HTMLAnchorElement */ }; /* TODO diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlFormElement.re b/src/Webapi/Dom/Webapi__Dom__HtmlFormElement.re index fabae957..fb08d557 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlFormElement.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlFormElement.re @@ -7,33 +7,33 @@ module Impl = (T: {type t;}) => { type t_htmlFormElement = T.t; /* TODO: elements: HTMLFormControlsCollection */ - [@bs.get] external length : t_htmlFormElement => int = ""; - [@bs.get] external name : t_htmlFormElement => string = ""; - [@bs.set] external setName : (t_htmlFormElement, string) => unit = "name"; - [@bs.get] external method : t_htmlFormElement => string = ""; - [@bs.set] external setMethod : (t_htmlFormElement, string) => unit = "method"; - [@bs.get] external target : t_htmlFormElement => string = ""; - [@bs.set] external setTarget : (t_htmlFormElement, string) => unit = "target"; - [@bs.get] external action : t_htmlFormElement => string = ""; - [@bs.set] external setAction : (t_htmlFormElement, string) => unit = "action"; - [@bs.get] external acceptCharset : t_htmlFormElement => string = ""; - [@bs.set] external setAcceptCharset : (t_htmlFormElement, string) => unit = "acceptCharset"; - [@bs.get] external autocomplete : t_htmlFormElement => string = ""; - [@bs.set] external setAutocomplete : (t_htmlFormElement, string) => unit = "autocomplete"; - [@bs.get] external noValidate : t_htmlFormElement => bool = ""; - [@bs.set] external setNoValidate : (t_htmlFormElement, bool) => unit = "noValidate"; - [@bs.get] external enctype : t_htmlFormElement => string = ""; - [@bs.set] external setEnctype : (t_htmlFormElement, string) => unit = "enctype"; - [@bs.get] external encoding : t_htmlFormElement => string = ""; - [@bs.set] external setEncoding : (t_htmlFormElement, string) => unit = "encoding"; + [@get] external length : t_htmlFormElement => int = ""; + [@get] external name : t_htmlFormElement => string = ""; + [@set] external setName : (t_htmlFormElement, string) => unit = "name"; + [@get] external method : t_htmlFormElement => string = ""; + [@set] external setMethod : (t_htmlFormElement, string) => unit = "method"; + [@get] external target : t_htmlFormElement => string = ""; + [@set] external setTarget : (t_htmlFormElement, string) => unit = "target"; + [@get] external action : t_htmlFormElement => string = ""; + [@set] external setAction : (t_htmlFormElement, string) => unit = "action"; + [@get] external acceptCharset : t_htmlFormElement => string = ""; + [@set] external setAcceptCharset : (t_htmlFormElement, string) => unit = "acceptCharset"; + [@get] external autocomplete : t_htmlFormElement => string = ""; + [@set] external setAutocomplete : (t_htmlFormElement, string) => unit = "autocomplete"; + [@get] external noValidate : t_htmlFormElement => bool = ""; + [@set] external setNoValidate : (t_htmlFormElement, bool) => unit = "noValidate"; + [@get] external enctype : t_htmlFormElement => string = ""; + [@set] external setEnctype : (t_htmlFormElement, string) => unit = "enctype"; + [@get] external encoding : t_htmlFormElement => string = ""; + [@set] external setEncoding : (t_htmlFormElement, string) => unit = "encoding"; - [@bs.send.pipe: t_htmlFormElement] external submit : unit = ""; - [@bs.send.pipe: t_htmlFormElement] external reset : unit = ""; - [@bs.send.pipe: t_htmlFormElement] external checkValidity : bool = ""; - [@bs.send.pipe: t_htmlFormElement] external reportValidity : bool = ""; + [@send] external submit: t_htmlFormElement => unit = ""; + [@send] external reset: t_htmlFormElement => unit = ""; + [@send] external checkValidity: t_htmlFormElement => bool = ""; + [@send] external reportValidity: t_htmlFormElement => bool = ""; /** @since 0.18.0 */ - [@bs.new] external data: T.t => Fetch.FormData.t = "FormData"; + [@new] external data: T.t => Fetch.FormData.t = "FormData"; }; type t = Dom.htmlFormElement; diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlImageElement.re b/src/Webapi/Dom/Webapi__Dom__HtmlImageElement.re index 589ddb8e..28cdacb7 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlImageElement.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlImageElement.re @@ -1,38 +1,38 @@ type t; -[@bs.new] external make : unit => t = "Image"; -[@bs.new] external makeWithSize : (int, int) => t = "Image"; +[@new] external make : unit => t = "Image"; +[@new] external makeWithSize : (int, int) => t = "Image"; -[@bs.get] external alt : t => string = ""; -[@bs.set] external setAlt : (t, string) => unit = "alt"; -[@bs.get] external src : t => string = ""; -[@bs.set] external setSrc : (t, string) => unit = "src"; -[@bs.get] external srcset : t => string = ""; -[@bs.set] external setSrcset : (t, string) => unit = "srcset"; -[@bs.get] external sizes : t => string = ""; -[@bs.set] external setSizes : (t, string) => unit = "sizes"; -[@bs.get] [@bs.return nullable] external crossOrigin : t => option(string) = ""; -[@bs.set] external setCrossOrigin : (t, Js.null(string)) => unit = "crossOrigin"; +[@get] external alt : t => string = ""; +[@set] external setAlt : (t, string) => unit = "alt"; +[@get] external src : t => string = ""; +[@set] external setSrc : (t, string) => unit = "src"; +[@get] external srcset : t => string = ""; +[@set] external setSrcset : (t, string) => unit = "srcset"; +[@get] external sizes : t => string = ""; +[@set] external setSizes : (t, string) => unit = "sizes"; +[@get] [@return nullable] external crossOrigin : t => option(string) = ""; +[@set] external setCrossOrigin : (t, Js.null(string)) => unit = "crossOrigin"; let setCrossOrigin = (self, value) => setCrossOrigin(self, Js.Null.fromOption(value)); -[@bs.get] external useMap : t => string = ""; -[@bs.set] external setUseMap : (t, string) => unit = "useMap"; -[@bs.get] external isMap : t => bool = ""; -[@bs.set] external setIsMap : (t, bool) => unit = "isMap"; -[@bs.get] external height : t => int = ""; -[@bs.set] external setHeight : (t, int) => unit = "height"; -[@bs.get] external width : t => int = ""; -[@bs.set] external setWidth : (t, int) => unit = "width"; -[@bs.get] external naturalHeight : t => int = ""; -[@bs.get] external naturalWidth : t => int = ""; -[@bs.get] external complete : t => bool = ""; -[@bs.get] external currentSrc : t => string = ""; -[@bs.get] external referrerPolicy : t => string = ""; -[@bs.set] external setReferrerPolicy : (t, string) => unit = "referrerPolicy"; -[@bs.get] external decoding : t => string = ""; -[@bs.set] external setDecoding : (t, string) => unit = "decoding"; +[@get] external useMap : t => string = ""; +[@set] external setUseMap : (t, string) => unit = "useMap"; +[@get] external isMap : t => bool = ""; +[@set] external setIsMap : (t, bool) => unit = "isMap"; +[@get] external height : t => int = ""; +[@set] external setHeight : (t, int) => unit = "height"; +[@get] external width : t => int = ""; +[@set] external setWidth : (t, int) => unit = "width"; +[@get] external naturalHeight : t => int = ""; +[@get] external naturalWidth : t => int = ""; +[@get] external complete : t => bool = ""; +[@get] external currentSrc : t => string = ""; +[@get] external referrerPolicy : t => string = ""; +[@set] external setReferrerPolicy : (t, string) => unit = "referrerPolicy"; +[@get] external decoding : t => string = ""; +[@set] external setDecoding : (t, string) => unit = "decoding"; -[@bs.send.pipe: t] external decode : Js.Promise.t(unit) = ""; +[@send] external decode: t => Js.Promise.t(unit) = ""; include Webapi__Dom__Node.Impl({ type nonrec t = t; }); include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlInputElement.re b/src/Webapi/Dom/Webapi__Dom__HtmlInputElement.re index 4414599a..d45f1972 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlInputElement.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlInputElement.re @@ -6,103 +6,105 @@ module Impl = (T: {type t;}) => { type t_htmlInputElement = T.t; - [@bs.get] [@bs.return nullable] external form : t_htmlInputElement => option(Dom.htmlFormElement) = ""; - [@bs.get] external formAction : t_htmlInputElement => string = ""; - [@bs.set] external setFormAction : (t_htmlInputElement, string) => unit = "formAction"; - [@bs.get] external formEncType : t_htmlInputElement => string = ""; - [@bs.set] external setFormEncType : (t_htmlInputElement, string) => unit = "formEncType"; - [@bs.get] external formMethod : t_htmlInputElement => string = ""; - [@bs.set] external setFormMethod : (t_htmlInputElement, string) => unit = "formMethod"; - [@bs.get] external formNoValidate : t_htmlInputElement => bool = ""; - [@bs.set] external setFormNoValidate : (t_htmlInputElement, bool) => unit = "formNoValidate"; - [@bs.get] external formTarget : t_htmlInputElement => string = ""; - [@bs.set] external setFormTarget : (t_htmlInputElement, string) => unit = "formTarget"; + [@get] [@return nullable] + external form: t_htmlInputElement => option(Dom.htmlFormElement); + [@get] external formAction: t_htmlInputElement => string; + [@set] external setFormAction: (t_htmlInputElement, string) => unit = "formAction"; + [@get] external formEncType: t_htmlInputElement => string; + [@set] external setFormEncType: (t_htmlInputElement, string) => unit = "formEncType"; + [@get] external formMethod: t_htmlInputElement => string; + [@set] external setFormMethod: (t_htmlInputElement, string) => unit = "formMethod"; + [@get] external formNoValidate: t_htmlInputElement => bool; + [@set] external setFormNoValidate: (t_htmlInputElement, bool) => unit = "formNoValidate"; + [@get] external formTarget: t_htmlInputElement => string; + [@set] external setFormTarget: (t_htmlInputElement, string) => unit = "formTarget"; /* Properties that apply to any type of input element that is not hidden */ - [@bs.get] external name : t_htmlInputElement => string = ""; - [@bs.set] external setName : (t_htmlInputElement, string) => unit = "name"; - [@bs.get] external type_ : t_htmlInputElement => string = "type"; - [@bs.set] external setType : (t_htmlInputElement, string) => unit = "type"; - [@bs.get] external disabled : t_htmlInputElement => bool = ""; - [@bs.set] external setDisabled : (t_htmlInputElement, bool) => unit = "disabled"; - [@bs.get] external autofocus : t_htmlInputElement => bool = ""; - [@bs.set] external setAutofocus : (t_htmlInputElement, bool) => unit = "autofocus"; - [@bs.get] external required : t_htmlInputElement => bool = ""; - [@bs.set] external setRequired : (t_htmlInputElement, bool) => unit = "required"; - [@bs.get] external value : t_htmlInputElement => string = ""; - [@bs.set] external setValue : (t_htmlInputElement, string) => unit = "value"; - [@bs.get] external validity : t_htmlInputElement => Webapi__Dom__ValidityState.t = ""; - [@bs.get] external validationMessage : t_htmlInputElement => string = ""; - [@bs.get] external willValidate : t_htmlInputElement => bool = ""; + [@get] external name: t_htmlInputElement => string; + [@set] external setName: (t_htmlInputElement, string) => unit = "name"; + [@get] external type_: t_htmlInputElement => string = "type"; + [@set] external setType: (t_htmlInputElement, string) => unit = "type"; + [@get] external disabled: t_htmlInputElement => bool; + [@set] external setDisabled: (t_htmlInputElement, bool) => unit = "disabled"; + [@get] external autofocus: t_htmlInputElement => bool; + [@set] external setAutofocus: (t_htmlInputElement, bool) => unit = "autofocus"; + [@get] external required: t_htmlInputElement => bool; + [@set] external setRequired: (t_htmlInputElement, bool) => unit = "required"; + [@get] external value: t_htmlInputElement => string; + [@set] external setValue: (t_htmlInputElement, string) => unit = "value"; + [@get] external validity: t_htmlInputElement => Webapi__Dom__ValidityState.t; + [@get] external validationMessage: t_htmlInputElement => string; + [@get] external willValidate: t_htmlInputElement => bool; /* Properties that apply only to elements of type "checkbox" or "radio" */ - [@bs.get] external checked : t_htmlInputElement => bool = ""; - [@bs.set] external setChecked : (t_htmlInputElement, bool) => unit = "checked"; - [@bs.get] external defaultChecked : t_htmlInputElement => bool = ""; - [@bs.set] external setDefaultChecked : (t_htmlInputElement, bool) => unit = "defaultChecked"; - [@bs.get] external indeterminate : t_htmlInputElement => bool = ""; - [@bs.set] external setIndeterminate : (t_htmlInputElement, bool) => unit = "indeterminate"; + [@get] external checked: t_htmlInputElement => bool; + [@set] external setChecked: (t_htmlInputElement, bool) => unit = "checked"; + [@get] external defaultChecked: t_htmlInputElement => bool; + [@set] external setDefaultChecked: (t_htmlInputElement, bool) => unit = "defaultChecked"; + [@get] external indeterminate: t_htmlInputElement => bool; + [@set] external setIndeterminate: (t_htmlInputElement, bool) => unit = "indeterminate"; /* Properties that apply only to elements of type "image" */ - [@bs.get] external alt : t_htmlInputElement => string = ""; - [@bs.set] external setAlt : (t_htmlInputElement, string) => unit = "alt"; - [@bs.get] external height : t_htmlInputElement => string = ""; - [@bs.set] external setHeight : (t_htmlInputElement, string) => unit = "height"; - [@bs.get] external src : t_htmlInputElement => string = ""; - [@bs.set] external setSrc : (t_htmlInputElement, string) => unit = "src"; - [@bs.get] external width : t_htmlInputElement => string = ""; - [@bs.set] external setWidth : (t_htmlInputElement, string) => unit = "width"; + [@get] external alt: t_htmlInputElement => string; + [@set] external setAlt: (t_htmlInputElement, string) => unit = "alt"; + [@get] external height: t_htmlInputElement => string; + [@set] external setHeight: (t_htmlInputElement, string) => unit = "height"; + [@get] external src: t_htmlInputElement => string; + [@set] external setSrc: (t_htmlInputElement, string) => unit = "src"; + [@get] external width: t_htmlInputElement => string; + [@set] external setWidth: (t_htmlInputElement, string) => unit = "width"; /* Properties that apply only to elements of type "file" */ - [@bs.get] external accept : t_htmlInputElement => string = ""; - [@bs.set] external setAccept : (t_htmlInputElement, string) => unit = "accept"; + [@get] external accept: t_htmlInputElement => string; + [@set] external setAccept: (t_htmlInputElement, string) => unit = "accept"; /* TODO: files: Returns/accepts a FileList object. */ /* Properties that apply only to text/number-containing or elements */ - [@bs.get] external autocomplete : t_htmlInputElement => string = ""; - [@bs.set] external setAutocomplete : (t_htmlInputElement, string) => unit = "autocomplete"; - [@bs.get] external maxLength : t_htmlInputElement => int = ""; - [@bs.set] external setMaxLength : (t_htmlInputElement, int) => unit = "maxLength"; - [@bs.get] external minLength : t_htmlInputElement => int = ""; - [@bs.set] external setMinLength : (t_htmlInputElement, int) => unit = "minLength"; - [@bs.get] external size : t_htmlInputElement => int = ""; - [@bs.set] external setSize : (t_htmlInputElement, int) => unit = "size"; - [@bs.get] external pattern : t_htmlInputElement => string = ""; - [@bs.set] external setPattern : (t_htmlInputElement, string) => unit = "pattern"; - [@bs.get] external placeholder : t_htmlInputElement => string = ""; - [@bs.set] external setPlaceholder : (t_htmlInputElement, string) => unit = "placeholder"; - [@bs.get] external readOnly : t_htmlInputElement => bool = ""; - [@bs.set] external setReadOnly : (t_htmlInputElement, bool) => unit = "readOnly"; - [@bs.get] external min : t_htmlInputElement => string = ""; - [@bs.set] external setMin : (t_htmlInputElement, string) => unit = "min"; - [@bs.get] external max : t_htmlInputElement => string = ""; - [@bs.set] external setMax : (t_htmlInputElement, string) => unit = "max"; - [@bs.get] external selectionStart : t_htmlInputElement => int = ""; - [@bs.set] external setSelectionStart : (t_htmlInputElement, int) => unit = "selectionStart"; - [@bs.get] external selectionEnd : t_htmlInputElement => int = ""; - [@bs.set] external setSelectionEnd : (t_htmlInputElement, int) => unit = "selectionEnd"; - [@bs.get] external selectionDirection : t_htmlInputElement => string = ""; - [@bs.set] external setSelectionDirection : (t_htmlInputElement, string) => unit = "selectionDirection"; + [@get] external autocomplete: t_htmlInputElement => string; + [@set] external setAutocomplete: (t_htmlInputElement, string) => unit = "autocomplete"; + [@get] external maxLength: t_htmlInputElement => int; + [@set] external setMaxLength: (t_htmlInputElement, int) => unit = "maxLength"; + [@get] external minLength: t_htmlInputElement => int; + [@set] external setMinLength: (t_htmlInputElement, int) => unit = "minLength"; + [@get] external size: t_htmlInputElement => int; + [@set] external setSize: (t_htmlInputElement, int) => unit = "size"; + [@get] external pattern: t_htmlInputElement => string; + [@set] external setPattern: (t_htmlInputElement, string) => unit = "pattern"; + [@get] external placeholder: t_htmlInputElement => string; + [@set] external setPlaceholder: (t_htmlInputElement, string) => unit = "placeholder"; + [@get] external readOnly: t_htmlInputElement => bool; + [@set] external setReadOnly: (t_htmlInputElement, bool) => unit = "readOnly"; + [@get] external min: t_htmlInputElement => string; + [@set] external setMin: (t_htmlInputElement, string) => unit = "min"; + [@get] external max: t_htmlInputElement => string; + [@set] external setMax: (t_htmlInputElement, string) => unit = "max"; + [@get] external selectionStart: t_htmlInputElement => int; + [@set] external setSelectionStart: (t_htmlInputElement, int) => unit = "selectionStart"; + [@get] external selectionEnd: t_htmlInputElement => int; + [@set] external setSelectionEnd: (t_htmlInputElement, int) => unit = "selectionEnd"; + [@get] external selectionDirection: t_htmlInputElement => string; + [@set] + external setSelectionDirection: (t_htmlInputElement, string) => unit = "selectionDirection"; /* Properties not yet categorized */ - [@bs.get] external defaultValue : t_htmlInputElement => string = ""; - [@bs.set] external setDefaultValue : (t_htmlInputElement, string) => unit = "defaultValue"; - [@bs.get] external dirName : t_htmlInputElement => string = ""; - [@bs.set] external setDirName : (t_htmlInputElement, string) => unit = "dirName"; - [@bs.get] external accessKey : t_htmlInputElement => string = ""; - [@bs.set] external setAccessKey : (t_htmlInputElement, string) => unit = "accessKey"; - [@bs.get] [@bs.return nullable] external list : t_htmlInputElement => option(Dom.htmlElement) = ""; - [@bs.get] external multiple : t_htmlInputElement => bool = ""; - [@bs.set] external setMultiple : (t_htmlInputElement, bool) => unit = "multiple"; + [@get] external defaultValue: t_htmlInputElement => string; + [@set] external setDefaultValue: (t_htmlInputElement, string) => unit = "defaultValue"; + [@get] external dirName: t_htmlInputElement => string; + [@set] external setDirName: (t_htmlInputElement, string) => unit = "dirName"; + [@get] external accessKey: t_htmlInputElement => string; + [@set] external setAccessKey: (t_htmlInputElement, string) => unit = "accessKey"; + [@get] [@return nullable] external list: t_htmlInputElement => option(Dom.htmlElement); + [@get] external multiple: t_htmlInputElement => bool; + [@set] external setMultiple: (t_htmlInputElement, bool) => unit = "multiple"; /* TODO: files: FileList array. Returns the list of selected files. */ - [@bs.get] external labels : t_htmlInputElement => array(Dom.nodeList) = ""; - [@bs.get] external step : t_htmlInputElement => string = ""; - [@bs.set] external setStep : (t_htmlInputElement, string) => unit = "step"; - [@bs.get] [@bs.return nullable] external valueAsDate : t_htmlInputElement => option(Js.Date.t) = ""; - [@bs.set] external setValueAsDate : (t_htmlInputElement, Js.Date.t) => unit = "valueAsDate"; - [@bs.get] external valueAsNumber : t_htmlInputElement => float = ""; + [@get] external labels: t_htmlInputElement => array(Dom.nodeList); + [@get] external step: t_htmlInputElement => string; + [@set] external setStep: (t_htmlInputElement, string) => unit = "step"; + [@get] [@return nullable] external valueAsDate: t_htmlInputElement => option(Js.Date.t); + [@set] external setValueAsDate: (t_htmlInputElement, Js.Date.t) => unit = "valueAsDate"; + [@get] external valueAsNumber: t_htmlInputElement => float; - [@bs.send.pipe: t_htmlInputElement] external select : unit = ""; + [@send] external select: t_htmlInputElement => unit; module SelectionDirection = { type t = @@ -117,10 +119,16 @@ module Impl = (T: {type t;}) => { | None => "none"; }; - [@bs.send.pipe: t_htmlInputElement] external setSelectionRange : (int, int) => unit = ""; - [@bs.send.pipe: t_htmlInputElement] external setSelectionRangeWithDirection_ : (int, int, string) => unit = "setSelectionRange"; + [@send] external setSelectionRange: (t_htmlInputElement, int, int) => unit; + [@send] + external setSelectionRangeWithDirection_: (t_htmlInputElement, int, int, string) => unit = + "setSelectionRange"; let setSelectionRangeWithDirection = (selectionStart, selectionEnd, selectionDirection, element) => - element |> setSelectionRangeWithDirection_(selectionStart, selectionEnd, selectionDirection |> SelectionDirection.toString); + element->setSelectionRangeWithDirection_( + selectionStart, + selectionEnd, + selectionDirection->SelectionDirection.toString, + ); module SelectionMode = { type t = @@ -137,25 +145,47 @@ module Impl = (T: {type t;}) => { | Preserve => "preserve"; }; - [@bs.send.pipe: t_htmlInputElement] external setRangeTextWithinSelection : string => unit = "setRangeText"; - [@bs.send.pipe: t_htmlInputElement] external setRangeTextWithinInterval : (string, int, int) => unit = "setRangeText"; - [@bs.send.pipe: t_htmlInputElement] external setRangeTextWithinIntervalWithSelectionMode_ : (string, int, int, string) => unit = "setRangeText"; - let setRangeTextWithinIntervalWithSelectionMode = (text, selectionStart, selectionEnd, selectionMode, element) => - element |> setRangeTextWithinIntervalWithSelectionMode_(text, selectionStart, selectionEnd, selectionMode |> SelectionMode.toString); - - [@bs.send.pipe: t_htmlInputElement] external setCustomValidity : string => unit = ""; - [@bs.send.pipe: t_htmlInputElement] external checkValidity : bool = ""; - [@bs.send.pipe: t_htmlInputElement] external reportValidity : bool = ""; - [@bs.send.pipe: t_htmlInputElement] external stepDownBy : int => unit = "stepDown"; - [@bs.send.pipe: t_htmlInputElement] external stepDownByOne : unit = "stepDown"; - [@bs.send.pipe: t_htmlInputElement] external stepUpBy : int => unit = "stepUp"; - [@bs.send.pipe: t_htmlInputElement] external stepUpByOne : unit = "stepUp"; + [@send] + external setRangeTextWithinSelection: (t_htmlInputElement, string) => unit = "setRangeText"; + [@send] + external setRangeTextWithinInterval: (t_htmlInputElement, string, int, int) => unit = + "setRangeText"; + [@send] + external setRangeTextWithinIntervalWithSelectionMode_: + (t_htmlInputElement, string, int, int, string) => unit = + "setRangeText"; + let setRangeTextWithinIntervalWithSelectionMode = + (text, selectionStart, selectionEnd, selectionMode, element) => + element->setRangeTextWithinIntervalWithSelectionMode_( + text, + selectionStart, + selectionEnd, + selectionMode->SelectionMode.toString, + ); + + [@send] external setCustomValidity: (t_htmlInputElement, string) => unit; + [@send] external checkValidity: t_htmlInputElement => bool; + [@send] external reportValidity: t_htmlInputElement => bool; + [@send] external stepDownBy: (t_htmlInputElement, int) => unit = "stepDown"; + [@send] external stepDownByOne: t_htmlInputElement => unit = "stepDown"; + [@send] external stepUpBy: (t_htmlInputElement, int) => unit = "stepUp"; + [@send] external stepUpByOne: t_htmlInputElement => unit = "stepUp"; }; type t = Dom.htmlInputElement; -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__Element.Impl({ type nonrec t = t; }); -include Webapi__Dom__HtmlElement.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Element.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__HtmlElement.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__IdbVersionChangeEvent.re b/src/Webapi/Dom/Webapi__Dom__IdbVersionChangeEvent.re index 2b58ab70..24bc1451 100644 --- a/src/Webapi/Dom/Webapi__Dom__IdbVersionChangeEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__IdbVersionChangeEvent.re @@ -2,8 +2,8 @@ type t = Dom.idbVersionChangeEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "IDBVersionChangeEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "IDBVersionChangeEvent"; +[@new] external make : string => t = "IDBVersionChangeEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "IDBVersionChangeEvent"; -[@bs.get] external oldVersion : t => int = ""; -[@bs.get] external newVersion : t => int = ""; +[@get] external oldVersion : t => int = ""; +[@get] external newVersion : t => int = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__Image.re b/src/Webapi/Dom/Webapi__Dom__Image.re index ddfebc2e..cad7ebd4 100644 --- a/src/Webapi/Dom/Webapi__Dom__Image.re +++ b/src/Webapi/Dom/Webapi__Dom__Image.re @@ -1,9 +1,9 @@ type t; -[@bs.new] external makeWithData : (~array: Js.Typed_array.Uint8ClampedArray.t, ~width: float, ~height: float) => t = "ImageData"; +[@new] external makeWithData : (~array: Js.Typed_array.Uint8ClampedArray.t, ~width: float, ~height: float) => t = "ImageData"; -[@bs.new] external make : (~width: float, ~height: float) => t = "ImageData"; +[@new] external make : (~width: float, ~height: float) => t = "ImageData"; -[@bs.get] external data : t => Js.Typed_array.Uint8ClampedArray.t = ""; -[@bs.get] external height : t => float = ""; -[@bs.get] external width : t => float = ""; +[@get] external data : t => Js.Typed_array.Uint8ClampedArray.t = ""; +[@get] external height : t => float = ""; +[@get] external width : t => float = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__InputEvent.re b/src/Webapi/Dom/Webapi__Dom__InputEvent.re index 5e85b4b9..72e8c285 100644 --- a/src/Webapi/Dom/Webapi__Dom__InputEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__InputEvent.re @@ -3,8 +3,8 @@ type t = Dom.inputEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "InputEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "InputEvent"; +[@new] external make : string => t = "InputEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "InputEvent"; -[@bs.get] external data : t => string = ""; -[@bs.get] external isComposing : t => bool = ""; +[@get] external data : t => string = ""; +[@get] external isComposing : t => bool = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re b/src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re index 81e6e30a..2e302519 100644 --- a/src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re @@ -3,20 +3,20 @@ type t = Dom.keyboardEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "KeyboardEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "KeyboardEvent"; +[@new] external make : string => t = "KeyboardEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "KeyboardEvent"; -[@bs.get] external altKey : t => bool = ""; -[@bs.get] external code : t => string = ""; -[@bs.get] external ctrlKey : t => bool = ""; -[@bs.get] external isComposing : t => bool = ""; -[@bs.get] external key : t => string = ""; -[@bs.get] external locale : t => string = ""; -[@bs.get] external location : t => int = ""; -[@bs.get] external metaKey : t => bool = ""; -[@bs.get] external repeat : t => bool = ""; -[@bs.get] external shiftKey : t => bool = ""; +[@get] external altKey : t => bool = ""; +[@get] external code : t => string = ""; +[@get] external ctrlKey : t => bool = ""; +[@get] external isComposing : t => bool = ""; +[@get] external key : t => string = ""; +[@get] external locale : t => string = ""; +[@get] external location : t => int = ""; +[@get] external metaKey : t => bool = ""; +[@get] external repeat : t => bool = ""; +[@get] external shiftKey : t => bool = ""; -[@bs.send.pipe : t] external getModifierState : string /* modifierKey enum */ => bool = ""; -let getModifierState: (Webapi__Dom__Types.modifierKey, t) => bool = - (key, self) => getModifierState(Webapi__Dom__Types.encodeModifierKey(key), self); +[@send] external getModifierState: t => string /* modifierKey enum */ => bool = ""; +let getModifierState: (t, Webapi__Dom__Types.modifierKey) => bool = + (self, key) => self->getModifierState(Webapi__Dom__Types.encodeModifierKey(key)); diff --git a/src/Webapi/Dom/Webapi__Dom__Location.re b/src/Webapi/Dom/Webapi__Dom__Location.re index db539dda..95f2b69e 100644 --- a/src/Webapi/Dom/Webapi__Dom__Location.re +++ b/src/Webapi/Dom/Webapi__Dom__Location.re @@ -1,30 +1,30 @@ type t = Dom.location; /* a more ergonomic API would perhaps accept a Window.t directly instead of Location.t */ -[@bs.get] external href : t => string = ""; -[@bs.set] external setHref : (t, string) => unit = "href"; -[@bs.get] external protocol : t => string = ""; -[@bs.set] external setProtocol : (t, string) => unit = "protocol"; -[@bs.get] external host : t => string = ""; -[@bs.set] external setHost : (t, string) => unit = "host"; -[@bs.get] external hostname : t => string = ""; -[@bs.set] external setHostname : (t, string) => unit = "hostname"; -[@bs.get] external port : t => string = ""; -[@bs.set] external setPort : (t, string) => unit = "port"; -[@bs.get] external pathname : t => string = ""; -[@bs.set] external setPathname : (t, string) => unit = "pathname"; -[@bs.get] external search : t => string = ""; -[@bs.set] external setSearch : (t, string) => unit = "search"; -[@bs.get] external hash : t => string = ""; -[@bs.set] external setHash : (t, string) => unit = "hash"; -[@bs.get] external username : t => string = ""; -[@bs.set] external setUsername : (t, string) => unit = "username"; -[@bs.get] external password : t => string = ""; -[@bs.set] external setPassword : (t, string) => unit = "password"; -[@bs.get] external origin : t => string = ""; +[@get] external href : t => string = ""; +[@set] external setHref : (t, string) => unit = "href"; +[@get] external protocol : t => string = ""; +[@set] external setProtocol : (t, string) => unit = "protocol"; +[@get] external host : t => string = ""; +[@set] external setHost : (t, string) => unit = "host"; +[@get] external hostname : t => string = ""; +[@set] external setHostname : (t, string) => unit = "hostname"; +[@get] external port : t => string = ""; +[@set] external setPort : (t, string) => unit = "port"; +[@get] external pathname : t => string = ""; +[@set] external setPathname : (t, string) => unit = "pathname"; +[@get] external search : t => string = ""; +[@set] external setSearch : (t, string) => unit = "search"; +[@get] external hash : t => string = ""; +[@set] external setHash : (t, string) => unit = "hash"; +[@get] external username : t => string = ""; +[@set] external setUsername : (t, string) => unit = "username"; +[@get] external password : t => string = ""; +[@set] external setPassword : (t, string) => unit = "password"; +[@get] external origin : t => string = ""; -[@bs.send.pipe : t] external assign : string => unit = ""; -[@bs.send.pipe : t] external reload : unit = ""; -[@bs.send.pipe : t] external reloadWithForce : ([@bs.as {json|true|json}] _) => unit = "reload"; -[@bs.send.pipe : t] external replace : string => unit = ""; -[@bs.send.pipe : t] external toString : string = ""; +[@send] external assign: t => string => unit = ""; +[@send] external reload: t => unit = ""; +[@send] external reloadWithForce: (t, [@as {json|true|json}] _) => unit = "reload"; +[@send] external replace: t => string => unit = ""; +[@send] external toString: t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__MouseEvent.re b/src/Webapi/Dom/Webapi__Dom__MouseEvent.re index 3d3a0646..ae4287a0 100644 --- a/src/Webapi/Dom/Webapi__Dom__MouseEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__MouseEvent.re @@ -1,34 +1,40 @@ module Impl = (T: {type t;}) => { - [@bs.get] external altKey : T.t => bool = ""; - [@bs.get] external button : T.t => int = ""; - [@bs.get] external buttons : T.t => int /* bitmask */ = ""; - [@bs.get] external clientX : T.t => int = ""; - [@bs.get] external clientY : T.t => int = ""; - [@bs.get] external ctrlKey : T.t => bool = ""; - [@bs.get] external metaKey : T.t => bool = ""; - [@bs.get] external movementX : T.t => int = ""; - [@bs.get] external movementY : T.t => int = ""; - [@bs.get] external offsetX : T.t => int = ""; /* experimental, but widely supported */ - [@bs.get] external offsetY : T.t => int = ""; /* experimental, but widely supported */ - [@bs.get] external pageX : T.t => int = ""; /* experimental, but widely supported */ - [@bs.get] external pageY : T.t => int = ""; /* experimental, but widely supported */ - [@bs.get] [@bs.return nullable] external region : T.t => option(string) = ""; - [@bs.get] [@bs.return nullable] external relatedTarget : T.t => option(Dom.eventTarget) = ""; - [@bs.get] external screenX : T.t => int = ""; - [@bs.get] external screenY : T.t => int = ""; - [@bs.get] external shiftKey : T.t => bool = ""; - [@bs.get] external x : T.t => int = ""; /* experimental */ - [@bs.get] external y : T.t => int = ""; /* experimental */ - [@bs.send.pipe : T.t] external getModifierState : string /* modifierKey enum */ => bool = ""; - let getModifierState: (Webapi__Dom__Types.modifierKey, T.t) => bool = - (key, self) => getModifierState(Webapi__Dom__Types.encodeModifierKey(key), self); + [@get] external altKey: T.t => bool; + [@get] external button: T.t => int; + [@get] external buttons: T.t => int /* bitmask */; + [@get] external clientX: T.t => int; + [@get] external clientY: T.t => int; + [@get] external ctrlKey: T.t => bool; + [@get] external metaKey: T.t => bool; + [@get] external movementX: T.t => int; + [@get] external movementY: T.t => int; + [@get] external offsetX: T.t => int; /* experimental, but widely supported */ + [@get] external offsetY: T.t => int; /* experimental, but widely supported */ + [@get] external pageX: T.t => int; /* experimental, but widely supported */ + [@get] external pageY: T.t => int; /* experimental, but widely supported */ + [@get] [@return nullable] external region: T.t => option(string); + [@get] [@return nullable] external relatedTarget: T.t => option(Dom.eventTarget); + [@get] external screenX: T.t => int; + [@get] external screenY: T.t => int; + [@get] external shiftKey: T.t => bool; + [@get] external x: T.t => int; /* experimental */ + [@get] external y: T.t => int; /* experimental */ + [@send] external getModifierState: (T.t, string /* modifierKey enum */) => bool; + let getModifierState: (T.t, Webapi__Dom__Types.modifierKey) => bool = + (self, key) => self->getModifierState(Webapi__Dom__Types.encodeModifierKey(key)); }; type t = Dom.mouseEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); -[@bs.new] external make : string => t = "MouseEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "MouseEvent"; +[@new] external make: string => t = "MouseEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "MouseEvent"; diff --git a/src/Webapi/Dom/Webapi__Dom__MutationObserver.re b/src/Webapi/Dom/Webapi__Dom__MutationObserver.re index b41c6811..faa61bcb 100644 --- a/src/Webapi/Dom/Webapi__Dom__MutationObserver.re +++ b/src/Webapi/Dom/Webapi__Dom__MutationObserver.re @@ -1,7 +1,7 @@ type t = Dom.mutationObserver; -[@bs.new] external make : ((array(Dom.mutationRecord), t) => unit) => t = "MutationObserver"; +[@new] external make : ((array(Dom.mutationRecord), t) => unit) => t = "MutationObserver"; -[@bs.send.pipe : t] external observe : (Dom.node_like('a), Js.t({..})) => unit = ""; -[@bs.send.pipe : t] external disconnect : unit = ""; -[@bs.send.pipe : t] external takeRecords : array(Dom.mutationRecord) = ""; +[@send] external observe: (t, Dom.node_like('a), Js.t({..})) => unit = ""; +[@send] external disconnect: t => unit = ""; +[@send] external takeRecords: t => array(Dom.mutationRecord) = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__MutationRecord.re b/src/Webapi/Dom/Webapi__Dom__MutationRecord.re index 03091ee9..8f467858 100644 --- a/src/Webapi/Dom/Webapi__Dom__MutationRecord.re +++ b/src/Webapi/Dom/Webapi__Dom__MutationRecord.re @@ -1,11 +1,11 @@ type t = Dom.mutationRecord; -[@bs.get] external type_ : t => string = "type"; -[@bs.get] external target : t => Dom.node = ""; -[@bs.get] external addedNodes : t => Dom.nodeList = ""; -[@bs.get] external removedNodes : t => Dom.nodeList = ""; -[@bs.get] [@bs.return nullable] external previousSibling : t => option(Dom.node) = ""; -[@bs.get] [@bs.return nullable] external pnextSibling : t => option(Dom.node) = ""; -[@bs.get] external attributeName : t => string = ""; -[@bs.get] external attributeNamespace : t => string = ""; -[@bs.get] external oldValue : t => string = ""; +[@get] external type_ : t => string = "type"; +[@get] external target : t => Dom.node = ""; +[@get] external addedNodes : t => Dom.nodeList = ""; +[@get] external removedNodes : t => Dom.nodeList = ""; +[@get] [@return nullable] external previousSibling : t => option(Dom.node) = ""; +[@get] [@return nullable] external pnextSibling : t => option(Dom.node) = ""; +[@get] external attributeName : t => string = ""; +[@get] external attributeNamespace : t => string = ""; +[@get] external oldValue : t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re b/src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re index 4f216285..686b86cf 100644 --- a/src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re +++ b/src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re @@ -1,13 +1,13 @@ type t = Dom.namedNodeMap; -[@bs.get] external length : t => int = ""; +[@get] external length : t => int = ""; -[@bs.send.pipe : t] [@bs.return nullable] external item : int => option(Dom.attr) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external getNamedItem : string => option(Dom.attr) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external getNamedItemNS : (string, string) => option(Dom.attr) = ""; -[@bs.send.pipe : t] external setNamedItem : Dom.attr => unit = ""; -[@bs.send.pipe : t] external setNamedItemNS : Dom.attr => unit = ""; -[@bs.send.pipe : t] external removeNamedItem : string => Dom.attr = ""; -[@bs.send.pipe : t] external removeNamedItemNS : (string, string) => Dom.attr = ""; +[@send] [@return nullable] external item: t => int => option(Dom.attr) = ""; +[@send] [@return nullable] external getNamedItem: t => string => option(Dom.attr) = ""; +[@send] [@return nullable] external getNamedItemNS: t => (string, string) => option(Dom.attr) = ""; +[@send] external setNamedItem: t => Dom.attr => unit = ""; +[@send] external setNamedItemNS: t => Dom.attr => unit = ""; +[@send] external removeNamedItem: t => string => Dom.attr = ""; +[@send] external removeNamedItemNS: (t, string, string) => Dom.attr = ""; -[@bs.val] [@bs.scope ("Array", "prototype", "slice")] external toArray : t => array(Dom.attr) = "call"; +[@val] [@scope ("Array", "prototype", "slice")] external toArray : t => array(Dom.attr) = "call"; diff --git a/src/Webapi/Dom/Webapi__Dom__Node.re b/src/Webapi/Dom/Webapi__Dom__Node.re index 92bae2dc..cd2725db 100644 --- a/src/Webapi/Dom/Webapi__Dom__Node.re +++ b/src/Webapi/Dom/Webapi__Dom__Node.re @@ -2,55 +2,51 @@ module Impl = (T: {type t;}) => { external asNode : T.t => Dom.node = "%identity"; /* baseURI */ - [@bs.get] external childNodes : T.t => Dom.nodeList = ""; - [@bs.get] [@bs.return nullable] external firstChild : T.t => option(Dom.node) = ""; - [@bs.get] external innerText : T.t => string = ""; - [@bs.set] external setInnerText : (T.t, string) => unit = "innerText"; - [@bs.get] [@bs.return nullable] external lastChild : T.t => option(Dom.node) = ""; - [@bs.get] [@bs.return nullable] external nextSibling : T.t => option(Dom.node) = ""; - [@bs.get] external nodeName : T.t => string = ""; /* nodePrincipal */ - [@bs.get] external nodeType : T.t => int /* nodeType enum */ = ""; + [@get] external childNodes : T.t => Dom.nodeList = ""; + [@get] [@return nullable] external firstChild : T.t => option(Dom.node) = ""; + [@get] external innerText : T.t => string = ""; + [@set] external setInnerText : (T.t, string) => unit = "innerText"; + [@get] [@return nullable] external lastChild : T.t => option(Dom.node) = ""; + [@get] [@return nullable] external nextSibling : T.t => option(Dom.node) = ""; + [@get] external nodeName : T.t => string = ""; /* nodePrincipal */ + [@get] external nodeType : T.t => int /* nodeType enum */ = ""; let nodeType: T.t => Webapi__Dom__Types.nodeType = (self) => Webapi__Dom__Types.decodeNodeType(nodeType(self)); - [@bs.get] [@bs.return nullable] external nodeValue : T.t => option(string) = ""; - [@bs.set] external setNodeValue : (T.t, Js.null(string)) => unit = "nodeValue"; + [@get] [@return nullable] external nodeValue : T.t => option(string) = ""; + [@set] external setNodeValue : (T.t, Js.null(string)) => unit = "nodeValue"; /* let setNodeValue : T.t => option string => unit = fun self value => setNodeValue self (Js.Null.fromOption value); */ /* temporarily removed to reduce codegen size */ /* Not supported yet - external setNodeValue : T.t => string => unit = "nodeValue" [@@bs.set]; - external clearNodeValue : T.t => _ [@bs.as {json|null|json}] => unit = "nodeValue" [@@bs.set]; + [@set] external setNodeValue : T.t => string => unit = "nodeValue"; + [@set] external clearNodeValue : T.t => _ [@as {json|null|json}] => unit = "nodeValue"; */ /* outerText */ - [@bs.get] external ownerDocument : T.t => Dom.document = ""; - [@bs.get] [@bs.return nullable] external parentElement : T.t => option(Dom.element) = ""; - [@bs.get] [@bs.return nullable] external parentNode : T.t => option(Dom.node) = ""; - [@bs.get] [@bs.return nullable] external previousSibling : T.t => option(Dom.node) = ""; - [@bs.get] external rootNode : T.t => Dom.node = ""; - [@bs.get] external textContent : T.t => string = ""; - [@bs.set] external setTextContent : (T.t, string) => unit = "textContent"; + [@get] external ownerDocument : T.t => Dom.document = ""; + [@get] [@return nullable] external parentElement : T.t => option(Dom.element) = ""; + [@get] [@return nullable] external parentNode : T.t => option(Dom.node) = ""; + [@get] [@return nullable] external previousSibling : T.t => option(Dom.node) = ""; + [@get] external rootNode : T.t => Dom.node = ""; + [@get] external textContent : T.t => string = ""; + [@set] external setTextContent : (T.t, string) => unit = "textContent"; - [@bs.send.pipe : T.t] external appendChild : Dom.node_like('a) => unit = ""; - [@bs.send.pipe : T.t] external cloneNode : T.t = ""; - [@bs.send.pipe : T.t] external cloneNodeDeep : ([@bs.as {json|true|json}] _) => T.t = "cloneNode"; - [@bs.send.pipe : T.t] external compareDocumentPosition : Dom.node_like('a) => int = ""; /* returns a bitmask which could also be represeneted as an enum, see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition */ - [@bs.send.pipe : T.t] external contains : Dom.node_like('a) => bool = ""; - [@bs.send.pipe : T.t] external getRootNode : Dom.node = ""; - [@bs.send.pipe : T.t] external getRootNodeComposed : ([@bs.as {json|{ "composed": true }|json}] _) => Dom.node = "getRootNode"; - [@bs.send.pipe : T.t] external hasChildNodes : bool = ""; - [@bs.send.pipe : T.t] external insertBefore : (Dom.node_like('a), Dom.node_like('b)) => Dom.node_like('a) = ""; - /* (temporarily?) removed to reduce codegen size. This variant is just for convenience, `appendChild` can be used in place of passing `null` to `insertBefore` - external insertBefore : Dom.node_like 'a => Js.null (Dom.node_like 'b) => Dom.node_like 'a = "" [@@bs.send.pipe: T.t]; - let insertBefore : Dom.node_like 'a => option (Dom.node_like 'b) => T.t => Dom.node_like 'a = fun node reference self => insertBefore node (Js.Null.fromOption reference) self; - */ - [@bs.send.pipe : T.t] external isDefaultNamespace : string => bool = ""; - [@bs.send.pipe : T.t] external isEqualNode : Dom.node_like('a) => bool = ""; - [@bs.send.pipe : T.t] external isSameNode : Dom.node_like('a) => bool = ""; - [@bs.send.pipe : T.t] [@bs.return nullable] external lookupNamespaceURI : string => option(string) = ""; - [@bs.send.pipe : T.t] [@bs.return nullable] external lookupDefaultNamespaceURI : ([@bs.as {json|null|json}] _) => option(string) = "lookupNamespaceURI"; - [@bs.send.pipe : T.t] external lookupPrefix : string = "lookupPrefix"; - [@bs.send.pipe : T.t] external normalize : unit = ""; - [@bs.send.pipe : T.t] external removeChild : Dom.node_like('a) => Dom.node_like('a) = ""; + [@send] external appendChild: T.t => Dom.node_like('a) => unit = ""; + [@send] external cloneNode: T.t => T.t = ""; + [@send] external cloneNodeDeep: (T.t, [@as {json|true|json}] _) => T.t = "cloneNode"; + [@send] external compareDocumentPosition: T.t => Dom.node_like('a) => int = ""; /* returns a bitmask which could also be represeneted as an enum, see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition */ + [@send] external contains: T.t => Dom.node_like('a) => bool = ""; + [@send] external getRootNode: T.t => Dom.node = ""; + [@send] external getRootNodeComposed: (T.t, [@as {json|{ "composed": true }|json}] _) => Dom.node = "getRootNode"; + [@send] external hasChildNodes: T.t => bool = ""; + [@send] external insertBefore: (T.t, Dom.node_like('a), Dom.node_like('b)) => Dom.node_like('a) = ""; + [@send] external isDefaultNamespace: T.t => string => bool = ""; + [@send] external isEqualNode: T.t => Dom.node_like('a) => bool = ""; + [@send] external isSameNode: T.t => Dom.node_like('a) => bool = ""; + [@send] [@return nullable] external lookupNamespaceURI: T.t => string => option(string) = ""; + [@send] [@return nullable] external lookupDefaultNamespaceURI: T.t => ([@as {json|null|json}] _) => option(string) = "lookupNamespaceURI"; + [@send] external lookupPrefix: T.t => string = "lookupPrefix"; + [@send] external normalize: T.t => unit = ""; + [@send] external removeChild: T.t => Dom.node_like('a) => Dom.node_like('a) = ""; /** @since 0.19.0 */ - [@bs.send.pipe : T.t] external replaceChild : (Dom.node_like('a), Dom.node_like('b)) => Dom.node_like('b) = ""; + [@send] external replaceChild: (T.t, Dom.node_like('a), Dom.node_like('b)) => Dom.node_like('b) = ""; }; type t = Dom.node; diff --git a/src/Webapi/Dom/Webapi__Dom__NodeIterator.re b/src/Webapi/Dom/Webapi__Dom__NodeIterator.re index d7ee3c64..de322103 100644 --- a/src/Webapi/Dom/Webapi__Dom__NodeIterator.re +++ b/src/Webapi/Dom/Webapi__Dom__NodeIterator.re @@ -1,11 +1,11 @@ type t = Dom.nodeIterator; -[@bs.get] external root : t => Dom.node = ""; -[@bs.get] external referenceNode : t => Dom.node = ""; -[@bs.get] external pointerBeforeReferenceNode : t => bool = ""; -[@bs.get] external whatToShow : t => Webapi__Dom__Types.WhatToShow.t = ""; -[@bs.get] [@bs.return nullable] external filter : t => option(Dom.nodeFilter) = ""; +[@get] external root : t => Dom.node = ""; +[@get] external referenceNode : t => Dom.node = ""; +[@get] external pointerBeforeReferenceNode : t => bool = ""; +[@get] external whatToShow : t => Webapi__Dom__Types.WhatToShow.t = ""; +[@get] [@return nullable] external filter : t => option(Dom.nodeFilter) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external nextNode : option(Dom.node) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external previousNode : option(Dom.node) = ""; -[@bs.send.pipe : t] external detach : unit = ""; +[@send] [@return nullable] external nextNode: t => option(Dom.node) = ""; +[@send] [@return nullable] external previousNode: t => option(Dom.node) = ""; +[@send] external detach: t => unit = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__NodeList.re b/src/Webapi/Dom/Webapi__Dom__NodeList.re index 90cf9e54..f0537cd2 100644 --- a/src/Webapi/Dom/Webapi__Dom__NodeList.re +++ b/src/Webapi/Dom/Webapi__Dom__NodeList.re @@ -1,9 +1,9 @@ type t = Dom.nodeList; -[@bs.val] external toArray : t => array(Dom.node) = "Array.prototype.slice.call"; +[@val] external toArray : t => array(Dom.node) = "Array.prototype.slice.call"; -[@bs.send.pipe : t] external forEach : ((Dom.node, int) => unit) => unit = ""; +[@send] external forEach: (t, (Dom.node, int) => unit) => unit = ""; -[@bs.get] external length : t => int = ""; +[@get] external length : t => int = ""; -[@bs.send.pipe : t] [@bs.return nullable] external item : int => option(Dom.node) = ""; +[@send] [@return nullable] external item: t => int => option(Dom.node) = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__NonDocumentTypeChildNode.re b/src/Webapi/Dom/Webapi__Dom__NonDocumentTypeChildNode.re index 7db4a498..3ce951d4 100644 --- a/src/Webapi/Dom/Webapi__Dom__NonDocumentTypeChildNode.re +++ b/src/Webapi/Dom/Webapi__Dom__NonDocumentTypeChildNode.re @@ -1,5 +1,5 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@bs.get] [@bs.return nullable] external previousElementSibling : T.t => option(Dom.element) = ""; - [@bs.get] [@bs.return nullable] external nextElementSibling : T.t => option(Dom.element) = ""; + [@get] [@return nullable] external previousElementSibling : T.t => option(Dom.element) = ""; + [@get] [@return nullable] external nextElementSibling : T.t => option(Dom.element) = ""; }; diff --git a/src/Webapi/Dom/Webapi__Dom__NonElementParentNode.re b/src/Webapi/Dom/Webapi__Dom__NonElementParentNode.re index 44ca0fef..a4d8d60f 100644 --- a/src/Webapi/Dom/Webapi__Dom__NonElementParentNode.re +++ b/src/Webapi/Dom/Webapi__Dom__NonElementParentNode.re @@ -1,4 +1,4 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@bs.send.pipe : T.t] [@bs.return nullable] external getElementById : string => option(Dom.element) = ""; + [@send] [@return nullable] external getElementById: T.t => string => option(Dom.element) = ""; }; diff --git a/src/Webapi/Dom/Webapi__Dom__PageTransitionEvent.re b/src/Webapi/Dom/Webapi__Dom__PageTransitionEvent.re index c43eaab1..7741dfd6 100644 --- a/src/Webapi/Dom/Webapi__Dom__PageTransitionEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__PageTransitionEvent.re @@ -2,7 +2,7 @@ type t = Dom.pageTransitionEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "PageTransitionEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "PageTransitionEvent"; +[@new] external make : string => t = "PageTransitionEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "PageTransitionEvent"; -[@bs.get] external persisted : t => bool = ""; +[@get] external persisted : t => bool = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__ParentNode.re b/src/Webapi/Dom/Webapi__Dom__ParentNode.re index c85964a5..68ea6b5b 100644 --- a/src/Webapi/Dom/Webapi__Dom__ParentNode.re +++ b/src/Webapi/Dom/Webapi__Dom__ParentNode.re @@ -1,9 +1,9 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@bs.get] external children : T.t => Dom.htmlCollection = ""; - [@bs.get] [@bs.return nullable] external firstElementChild : T.t => option(Dom.element) = ""; - [@bs.get] [@bs.return nullable] external lastElementChild : T.t => option(Dom.element) = ""; - [@bs.get] external childElementCount : T.t => int = ""; - [@bs.send.pipe : T.t] [@bs.return nullable] external querySelector : string => option(Dom.element) = ""; - [@bs.send.pipe : T.t] external querySelectorAll : string => Dom.nodeList = ""; + [@get] external children : T.t => Dom.htmlCollection = ""; + [@get] [@return nullable] external firstElementChild : T.t => option(Dom.element) = ""; + [@get] [@return nullable] external lastElementChild : T.t => option(Dom.element) = ""; + [@get] external childElementCount : T.t => int = ""; + [@send] [@return nullable] external querySelector: T.t => string => option(Dom.element) = ""; + [@send] external querySelectorAll: T.t => string => Dom.nodeList = ""; }; diff --git a/src/Webapi/Dom/Webapi__Dom__PointerEvent.re b/src/Webapi/Dom/Webapi__Dom__PointerEvent.re index 526c349a..40a191e6 100644 --- a/src/Webapi/Dom/Webapi__Dom__PointerEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__PointerEvent.re @@ -5,16 +5,16 @@ include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); include Webapi__Dom__MouseEvent.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "PointerEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "PointerEvent"; +[@new] external make : string => t = "PointerEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "PointerEvent"; -[@bs.get] external pointerId : t => pointerId = ""; -[@bs.get] external width : t => int = ""; -[@bs.get] external height : t => int = ""; -[@bs.get] external pressure : t => float = ""; -[@bs.get] external tiltX : t => int = ""; -[@bs.get] external tiltY : t => int = ""; -[@bs.get] external pointerType : t => string /* pointerType enum */ = ""; +[@get] external pointerId : t => pointerId = ""; +[@get] external width : t => int = ""; +[@get] external height : t => int = ""; +[@get] external pressure : t => float = ""; +[@get] external tiltX : t => int = ""; +[@get] external tiltY : t => int = ""; +[@get] external pointerType : t => string /* pointerType enum */ = ""; let pointerType: t => Webapi__Dom__Types.pointerType = (self) => Webapi__Dom__Types.decodePointerType(pointerType(self)); -[@bs.get] external isPrimary : t => bool = ""; +[@get] external isPrimary : t => bool = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__PopStateEvent.re b/src/Webapi/Dom/Webapi__Dom__PopStateEvent.re index 48ad9137..6bd585e9 100644 --- a/src/Webapi/Dom/Webapi__Dom__PopStateEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__PopStateEvent.re @@ -2,7 +2,7 @@ type t = Dom.popStateEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "PopStateEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "PopStateEvent"; +[@new] external make : string => t = "PopStateEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "PopStateEvent"; -[@bs.get] external state : t => Js.t({..}) = ""; +[@get] external state : t => Js.t({..}) = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__ProcessingInstruction.re b/src/Webapi/Dom/Webapi__Dom__ProcessingInstruction.re index 8698b337..6568f4ae 100644 --- a/src/Webapi/Dom/Webapi__Dom__ProcessingInstruction.re +++ b/src/Webapi/Dom/Webapi__Dom__ProcessingInstruction.re @@ -5,4 +5,4 @@ include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); include Webapi__Dom__NonDocumentTypeChildNode.Impl({ type nonrec t = t; }); include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); -[@bs.get] external target : t => string = ""; +[@get] external target : t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__ProgressEvent.re b/src/Webapi/Dom/Webapi__Dom__ProgressEvent.re index 3f5a1588..25d8cedf 100644 --- a/src/Webapi/Dom/Webapi__Dom__ProgressEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__ProgressEvent.re @@ -2,9 +2,9 @@ type t = Dom.progressEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "ProgressEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "ProgressEvent"; +[@new] external make : string => t = "ProgressEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "ProgressEvent"; -[@bs.get] external lengthComputable : t => bool = ""; -[@bs.get] external loaded : t => int = ""; -[@bs.get] external total : t => int = ""; +[@get] external lengthComputable : t => bool = ""; +[@get] external loaded : t => int = ""; +[@get] external total : t => int = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__Range.re b/src/Webapi/Dom/Webapi__Dom__Range.re index 565264ff..c65dbda8 100644 --- a/src/Webapi/Dom/Webapi__Dom__Range.re +++ b/src/Webapi/Dom/Webapi__Dom__Range.re @@ -1,43 +1,45 @@ type t = Dom.range; -[@bs.new] external make : unit => t = "Range"; /* experimental */ +[@new] external make: unit => t = "Range"; /* experimental */ -[@bs.get] external collapsed : t => bool = ""; -[@bs.get] external commonAncestorContainer : t => Dom.node = ""; -[@bs.get] external endContainer : t => Dom.node = ""; -[@bs.get] external endOffset : t => int = ""; -[@bs.get] external startContainer : t => Dom.node = ""; -[@bs.get] external startOffset : t => int = ""; +[@get] external collapsed: t => bool; +[@get] external commonAncestorContainer: t => Dom.node; +[@get] external endContainer: t => Dom.node; +[@get] external endOffset: t => int; +[@get] external startContainer: t => Dom.node; +[@get] external startOffset: t => int; -[@bs.send.pipe : t] external setStart : (Dom.node_like('a), int) => unit = ""; -[@bs.send.pipe : t] external setEnd : (Dom.node_like('a), int) => unit = ""; -[@bs.send.pipe : t] external setStartBefore : Dom.node_like('a) => unit = ""; -[@bs.send.pipe : t] external setStartAfter : Dom.node_like('a) => unit = ""; -[@bs.send.pipe : t] external setEndBefore : Dom.node_like('a) => unit = ""; -[@bs.send.pipe : t] external setEndAfter : Dom.node_like('a) => unit = ""; -[@bs.send.pipe : t] external selectNode : Dom.node_like('a) => unit = ""; -[@bs.send.pipe : t] external selectNodeContents : Dom.node_like('a) => unit = ""; -[@bs.send.pipe : t] external collapse : unit = ""; -[@bs.send.pipe : t] external collapseToStart : ([@bs.as {json|true|json}] _) => unit = "collapse"; -[@bs.send.pipe : t] external cloneContents : Dom.documentFragment = ""; -[@bs.send.pipe : t] external deleteContents : unit = ""; -[@bs.send.pipe : t] external extractContents : Dom.documentFragment = ""; -[@bs.send.pipe : t] external insertNode : Dom.node_like('a) => unit = ""; -[@bs.send.pipe : t] external surroundContents : Dom.node_like('a) => unit = ""; -[@bs.send.pipe : t] external compareBoundaryPoints : (int /* compareHow enum */, t) => int /* compareResult enum */ = ""; -let compareBoundaryPoint: (Webapi__Dom__Types.compareHow, t, t) => Webapi__Dom__Types.compareResult = - (how, range, self) => +[@send] external setStart: (t, Dom.node_like('a), int) => unit; +[@send] external setEnd: (t, Dom.node_like('a), int) => unit; +[@send] external setStartBefore: t => Dom.node_like('a) => unit; +[@send] external setStartAfter: t => Dom.node_like('a) => unit; +[@send] external setEndBefore: t => Dom.node_like('a) => unit; +[@send] external setEndAfter: t => Dom.node_like('a) => unit; +[@send] external selectNode: t => Dom.node_like('a) => unit; +[@send] external selectNodeContents: t => Dom.node_like('a) => unit; +[@send] external collapse: t => unit; +[@send] external collapseToStart: (t, [@as {json|true|json}] _) => unit = "collapse"; +[@send] external cloneContents: t => Dom.documentFragment; +[@send] external deleteContents: t => unit; +[@send] external extractContents: t => Dom.documentFragment; +[@send] external insertNode: t => Dom.node_like('a) => unit; +[@send] external surroundContents: t => Dom.node_like('a) => unit; +[@send] +external compareBoundaryPoints: (t, int /* compareHow enum */, t) => int /* compareResult enum */; +let compareBoundaryPoint: (t, Webapi__Dom__Types.compareHow, t) => Webapi__Dom__Types.compareResult = + (self, how, range) => Webapi__Dom__Types.decodeCompareResult( - compareBoundaryPoints(Webapi__Dom__Types.encodeCompareHow(how), range, self) + self->compareBoundaryPoints(Webapi__Dom__Types.encodeCompareHow(how), range), ); -[@bs.send.pipe : t] external cloneRange : t = ""; -[@bs.send.pipe : t] external detach : unit = ""; -[@bs.send.pipe : t] external toString : string = ""; -[@bs.send.pipe : t] external comparePoint : (Dom.node_like('a), int) => int /* compareRsult enum */ = ""; -let comparePoint: (Dom.node_like('a), int, t) => Webapi__Dom__Types.compareResult = - (node, offset, self) => Webapi__Dom__Types.decodeCompareResult(comparePoint(node, offset, self)); -[@bs.send.pipe : t] external createContextualFragment : string => Dom.documentFragment = ""; /* experimental, but widely supported */ -[@bs.send.pipe : t] external getBoundingClientRect : Dom.domRect = ""; /* experimental, but widely supported */ -[@bs.send.pipe : t] external getClientRects : array(Dom.domRect) = ""; /* experimental, but widely supported */ -[@bs.send.pipe : t] external intersectsNode : Dom.node_like('a) => bool = ""; -[@bs.send.pipe : t] external isPointInRange : (Dom.node_like('a), int) => bool = ""; +[@send] external cloneRange: t => t; +[@send] external detach: t => unit; +[@send] external toString: t => string; +[@send] external comparePoint: (t, Dom.node_like('a), int) => int /* compareRsult enum */; +let comparePoint: (t, Dom.node_like('a), int) => Webapi__Dom__Types.compareResult = + (self, node, offset) => + Webapi__Dom__Types.decodeCompareResult(self->comparePoint(node, offset)); +[@send] external createContextualFragment: t => string => Dom.documentFragment; /* experimental, but widely supported */ +[@send] external getBoundingClientRect: t => Dom.domRect; /* experimental, but widely supported */ +[@send] external getClientRects: t => array(Dom.domRect); /* experimental, but widely supported */ +[@send] external intersectsNode: t => Dom.node_like('a) => bool; +[@send] external isPointInRange: (t, Dom.node_like('a), int) => bool; diff --git a/src/Webapi/Dom/Webapi__Dom__RelatedEvent.re b/src/Webapi/Dom/Webapi__Dom__RelatedEvent.re index 4abb84e1..5712ac64 100644 --- a/src/Webapi/Dom/Webapi__Dom__RelatedEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__RelatedEvent.re @@ -2,7 +2,7 @@ type t = Dom.relatedEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "RelatedEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "RelatedEvent"; +[@new] external make : string => t = "RelatedEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "RelatedEvent"; -[@bs.get] [@bs.return nullable] external relatedTarget : t => option(Dom.eventTarget) = ""; +[@get] [@return nullable] external relatedTarget : t => option(Dom.eventTarget) = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__Selection.re b/src/Webapi/Dom/Webapi__Dom__Selection.re index 333248c9..420ef605 100644 --- a/src/Webapi/Dom/Webapi__Dom__Selection.re +++ b/src/Webapi/Dom/Webapi__Dom__Selection.re @@ -1,23 +1,23 @@ type t = Dom.selection; -[@bs.get] [@bs.return nullable] external anchorNode : t => option(Dom.node) = ""; -[@bs.get] external anchorOffset : t => int = ""; -[@bs.get] [@bs.return nullable] external focusNode : t => option(Dom.node) = ""; -[@bs.get] external focusOffset : t => int = ""; -[@bs.get] external isCollapsed : t => bool = ""; -[@bs.get] external rangeCount : t => int = ""; +[@get] [@return nullable] external anchorNode : t => option(Dom.node) = ""; +[@get] external anchorOffset : t => int = ""; +[@get] [@return nullable] external focusNode : t => option(Dom.node) = ""; +[@get] external focusOffset : t => int = ""; +[@get] external isCollapsed : t => bool = ""; +[@get] external rangeCount : t => int = ""; -[@bs.send.pipe : t] external getRangeAt : int => Dom.range = ""; -[@bs.send.pipe : t] external collapse : (Dom.node_like(_), int) => unit = ""; -[@bs.send.pipe : t] external extend : (Dom.node_like(_), int) => unit = ""; -[@bs.send.pipe : t] external collapseToStart : unit = ""; -[@bs.send.pipe : t] external collapseToEnd : unit = ""; -[@bs.send.pipe : t] external selectAllChildren : Dom.node_like(_) => unit = ""; -[@bs.send.pipe : t] external setBaseAndExtent : (Dom.node_like(_), int, Dom.node_like(_), int) => unit = ""; -[@bs.send.pipe : t] external addRange : Dom.range => unit = ""; -[@bs.send.pipe : t] external removeRange : Dom.range => unit = ""; -[@bs.send.pipe : t] external removeAllRanges : unit = ""; -[@bs.send.pipe : t] external deleteFromDocument : unit = ""; -[@bs.send.pipe : t] external toString : string = ""; -[@bs.send.pipe : t] external containsNode : (Dom.node_like(_), [@bs.as {json|false|json}] _) => bool = ""; -[@bs.send.pipe : t] external containsNodePartly : (Dom.node_like(_), [@bs.as {json|true|json}] _) => bool = "containsNode"; +[@send] external getRangeAt: t => int => Dom.range = ""; +[@send] external collapse: (t, Dom.node_like(_), int) => unit = ""; +[@send] external extend: (t, Dom.node_like(_), int) => unit = ""; +[@send] external collapseToStart: t => unit = ""; +[@send] external collapseToEnd: t => unit = ""; +[@send] external selectAllChildren: t => Dom.node_like(_) => unit = ""; +[@send] external setBaseAndExtent: (t, Dom.node_like(_), int, Dom.node_like(_), int) => unit = ""; +[@send] external addRange: t => Dom.range => unit = ""; +[@send] external removeRange: t => Dom.range => unit = ""; +[@send] external removeAllRanges: t => unit = ""; +[@send] external deleteFromDocument: t => unit = ""; +[@send] external toString: t => string = ""; +[@send] external containsNode: (t, Dom.node_like(_), [@as {json|false|json}] _) => bool = ""; +[@send] external containsNodePartly: (t, Dom.node_like(_), [@as {json|true|json}] _) => bool = "containsNode"; diff --git a/src/Webapi/Dom/Webapi__Dom__ShadowRoot.re b/src/Webapi/Dom/Webapi__Dom__ShadowRoot.re index 656394a0..c82540ef 100644 --- a/src/Webapi/Dom/Webapi__Dom__ShadowRoot.re +++ b/src/Webapi/Dom/Webapi__Dom__ShadowRoot.re @@ -5,7 +5,7 @@ include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); include Webapi__Dom__NonElementParentNode.Impl({ type nonrec t = t; }); include Webapi__Dom__ParentNode.Impl({ type nonrec t = t; }); -[@bs.get] external shadowRootMode : t => string = ""; +[@get] external shadowRootMode : t => string = ""; let shadowRootMode: t => Webapi__Dom__Types.shadowRootMode = (self) => Webapi__Dom__Types.decodeShadowRootMode(shadowRootMode(self)); -[@bs.get] external host : t => Dom.element = ""; +[@get] external host : t => Dom.element = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__Slotable.re b/src/Webapi/Dom/Webapi__Dom__Slotable.re index f30be163..a54dc57a 100644 --- a/src/Webapi/Dom/Webapi__Dom__Slotable.re +++ b/src/Webapi/Dom/Webapi__Dom__Slotable.re @@ -1,4 +1,4 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@bs.get] [@bs.return nullable] external assignedSlot : T.t => option(Dom.htmlSlotElement) = ""; + [@get] [@return nullable] external assignedSlot : T.t => option(Dom.htmlSlotElement) = ""; }; diff --git a/src/Webapi/Dom/Webapi__Dom__StorageEvent.re b/src/Webapi/Dom/Webapi__Dom__StorageEvent.re index ffe61d09..64a4f9dd 100644 --- a/src/Webapi/Dom/Webapi__Dom__StorageEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__StorageEvent.re @@ -2,11 +2,11 @@ type t = Dom.storageEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "StorageEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "StorageEvent"; +[@new] external make : string => t = "StorageEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "StorageEvent"; -[@bs.get] external key : t => string = ""; -[@bs.get] external newValue : t => Js.Nullable.t(string) = ""; -[@bs.get] external oldValue : t => Js.Nullable.t(string) = ""; -[@bs.get] external storageArea : t => Dom.Storage.t = ""; -[@bs.get] external url : t => string = ""; +[@get] external key : t => string = ""; +[@get] external newValue : t => Js.Nullable.t(string) = ""; +[@get] external oldValue : t => Js.Nullable.t(string) = ""; +[@get] external storageArea : t => Dom.Storage.t = ""; +[@get] external url : t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re b/src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re index 337e699a..21ea1950 100644 --- a/src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re @@ -3,11 +3,11 @@ type t = Dom.svgZoomEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "SVGZoomEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "SVGZoomEvent"; +[@new] external make : string => t = "SVGZoomEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "SVGZoomEvent"; -[@bs.get] external zoomRectScreen : t => Dom.svgRect = ""; -[@bs.get] external previousScale : t => float = ""; -[@bs.get] external previousTranslate : t => Dom.svgPoint = ""; -[@bs.get] external newScale : t => float = ""; -[@bs.get] external newTranslate : t => Dom.svgPoint = ""; +[@get] external zoomRectScreen : t => Dom.svgRect = ""; +[@get] external previousScale : t => float = ""; +[@get] external previousTranslate : t => Dom.svgPoint = ""; +[@get] external newScale : t => float = ""; +[@get] external newTranslate : t => Dom.svgPoint = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__Text.re b/src/Webapi/Dom/Webapi__Dom__Text.re index ed523920..acf0858c 100644 --- a/src/Webapi/Dom/Webapi__Dom__Text.re +++ b/src/Webapi/Dom/Webapi__Dom__Text.re @@ -6,8 +6,8 @@ let ofNode = (node: Dom.node) : option('a) => module Impl = (T: {type t;}) => { let ofNode: Dom.node => option(T.t) = ofNode; - [@bs.send.pipe : T.t] external splitText : (~offset: int, unit) => Dom.text = ""; - [@bs.get] external wholeText : T.t => string = ""; + [@send] external splitText: (T.t, ~offset: int, unit) => Dom.text = ""; + [@get] external wholeText : T.t => string = ""; }; type t = Dom.text; diff --git a/src/Webapi/Dom/Webapi__Dom__TimeEvent.re b/src/Webapi/Dom/Webapi__Dom__TimeEvent.re index 81ef5ab9..0ffd9f19 100644 --- a/src/Webapi/Dom/Webapi__Dom__TimeEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__TimeEvent.re @@ -2,8 +2,8 @@ type t = Dom.timeEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "TimeEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "TimeEvent"; +[@new] external make : string => t = "TimeEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "TimeEvent"; -[@bs.get] external detail : t => int = ""; -[@bs.get] external view : t => Dom.window = ""; /* technically returns a `WindowProxy` */ +[@get] external detail : t => int = ""; +[@get] external view : t => Dom.window = ""; /* technically returns a `WindowProxy` */ diff --git a/src/Webapi/Dom/Webapi__Dom__TouchEvent.re b/src/Webapi/Dom/Webapi__Dom__TouchEvent.re index 027197ce..f4d924ce 100644 --- a/src/Webapi/Dom/Webapi__Dom__TouchEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__TouchEvent.re @@ -1,13 +1,13 @@ type touchList; /* TODO, Touch Events */ module Impl = (T: {type t;}) => { - [@bs.get] external altKey : T.t => bool = ""; - [@bs.get] external changedTouches : T.t => touchList = ""; - [@bs.get] external ctrlKey : T.t => bool = ""; - [@bs.get] external metaKey : T.t => bool = ""; - [@bs.get] external shiftKey : T.t => bool = ""; - [@bs.get] external targetTouches : T.t => touchList = ""; - [@bs.get] external touches : T.t => touchList = ""; + [@get] external altKey : T.t => bool = ""; + [@get] external changedTouches : T.t => touchList = ""; + [@get] external ctrlKey : T.t => bool = ""; + [@get] external metaKey : T.t => bool = ""; + [@get] external shiftKey : T.t => bool = ""; + [@get] external targetTouches : T.t => touchList = ""; + [@get] external touches : T.t => touchList = ""; }; type t = Dom.touchEvent; @@ -16,5 +16,5 @@ include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); include Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "TouchEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "TouchEvent"; +[@new] external make : string => t = "TouchEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "TouchEvent"; diff --git a/src/Webapi/Dom/Webapi__Dom__TrackEvent.re b/src/Webapi/Dom/Webapi__Dom__TrackEvent.re index 7218f466..fc666939 100644 --- a/src/Webapi/Dom/Webapi__Dom__TrackEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__TrackEvent.re @@ -3,7 +3,7 @@ type track; /* TODO: VideoTrack or AudioTrack or TextTrack */ include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "TrackEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "TrackEvent"; +[@new] external make : string => t = "TrackEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "TrackEvent"; -[@bs.get] external track : t => track = ""; +[@get] external track : t => track = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__TransitionEvent.re b/src/Webapi/Dom/Webapi__Dom__TransitionEvent.re index d0766c19..624d4b6d 100644 --- a/src/Webapi/Dom/Webapi__Dom__TransitionEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__TransitionEvent.re @@ -2,9 +2,9 @@ type t = Dom.transitionEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "TransitionEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "TransitionEvent"; +[@new] external make : string => t = "TransitionEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "TransitionEvent"; -[@bs.get] external propertyName : t => string = ""; -[@bs.get] external elapsedTime : t => float = ""; -[@bs.get] external pseudoElement : t => string /* enum-ish */ = ""; +[@get] external propertyName : t => string = ""; +[@get] external elapsedTime : t => float = ""; +[@get] external pseudoElement : t => string /* enum-ish */ = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__TreeWalker.re b/src/Webapi/Dom/Webapi__Dom__TreeWalker.re index a992ca7b..d3231f2a 100644 --- a/src/Webapi/Dom/Webapi__Dom__TreeWalker.re +++ b/src/Webapi/Dom/Webapi__Dom__TreeWalker.re @@ -1,15 +1,15 @@ type t = Dom.treeWalker; -[@bs.get] external root : t => Dom.node = ""; -[@bs.get] external whatToShow : t => Webapi__Dom__Types.WhatToShow.t = ""; -[@bs.get] [@bs.return nullable] external filter : t => option(Dom.nodeFilter) = ""; -[@bs.get] external currentNode : t => Dom.node = ""; -[@bs.set] external setCurrentNode : (t, Dom.node) => unit = ""; +[@get] external root : t => Dom.node = ""; +[@get] external whatToShow : t => Webapi__Dom__Types.WhatToShow.t = ""; +[@get] [@return nullable] external filter : t => option(Dom.nodeFilter) = ""; +[@get] external currentNode : t => Dom.node = ""; +[@set] external setCurrentNode : (t, Dom.node) => unit = ""; -[@bs.send.pipe : t] [@bs.return nullable] external parentNode : option(Dom.node) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external firstChild : option(Dom.node) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external lastChild : option(Dom.node) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external previousSibling : option(Dom.node) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external nextSibling : option(Dom.node) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external previousNode : option(Dom.node) = ""; -[@bs.send.pipe : t] [@bs.return nullable] external nextNode : option(Dom.node) = ""; +[@send] [@return nullable] external parentNode: t => option(Dom.node) = ""; +[@send] [@return nullable] external firstChild: t => option(Dom.node) = ""; +[@send] [@return nullable] external lastChild: t => option(Dom.node) = ""; +[@send] [@return nullable] external previousSibling: t => option(Dom.node) = ""; +[@send] [@return nullable] external nextSibling: t => option(Dom.node) = ""; +[@send] [@return nullable] external previousNode: t => option(Dom.node) = ""; +[@send] [@return nullable] external nextNode: t => option(Dom.node) = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__UiEvent.re b/src/Webapi/Dom/Webapi__Dom__UiEvent.re index 877f4fbb..f83e3f82 100644 --- a/src/Webapi/Dom/Webapi__Dom__UiEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__UiEvent.re @@ -1,6 +1,6 @@ module Impl = (T: {type t;}) => { - [@bs.get] external detail : T.t => int = ""; - [@bs.get] external view : T.t => Dom.window = ""; /* technically returns a `WindowProxy` */ + [@get] external detail : T.t => int = ""; + [@get] external view : T.t => Dom.window = ""; /* technically returns a `WindowProxy` */ }; type t = Dom.uiEvent; @@ -8,5 +8,5 @@ type t = Dom.uiEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "UIEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "UIEvent"; +[@new] external make : string => t = "UIEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "UIEvent"; diff --git a/src/Webapi/Dom/Webapi__Dom__ValidityState.re b/src/Webapi/Dom/Webapi__Dom__ValidityState.re index a00d0922..6b0295c9 100644 --- a/src/Webapi/Dom/Webapi__Dom__ValidityState.re +++ b/src/Webapi/Dom/Webapi__Dom__ValidityState.re @@ -1,13 +1,13 @@ type t; -[@bs.get] external valueMissing : t => bool = ""; -[@bs.get] external typeMismatch : t => bool = ""; -[@bs.get] external patternMismatch : t => bool = ""; -[@bs.get] external tooLong : t => bool = ""; -[@bs.get] external tooShort : t => bool = ""; -[@bs.get] external rangeUnderflow : t => bool = ""; -[@bs.get] external rangeOverflow : t => bool = ""; -[@bs.get] external stepMismatch : t => bool = ""; -[@bs.get] external badInput : t => bool = ""; -[@bs.get] external customError : t => bool = ""; -[@bs.get] external valid : t => bool = ""; +[@get] external valueMissing : t => bool = ""; +[@get] external typeMismatch : t => bool = ""; +[@get] external patternMismatch : t => bool = ""; +[@get] external tooLong : t => bool = ""; +[@get] external tooShort : t => bool = ""; +[@get] external rangeUnderflow : t => bool = ""; +[@get] external rangeOverflow : t => bool = ""; +[@get] external stepMismatch : t => bool = ""; +[@get] external badInput : t => bool = ""; +[@get] external customError : t => bool = ""; +[@get] external valid : t => bool = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__WebGlContextEvent.re b/src/Webapi/Dom/Webapi__Dom__WebGlContextEvent.re index a67b9e47..fae08838 100644 --- a/src/Webapi/Dom/Webapi__Dom__WebGlContextEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__WebGlContextEvent.re @@ -2,7 +2,7 @@ type t = Dom.webGlContextEvent; include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "WebGLContextEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "WebGLContextEvent"; +[@new] external make : string => t = "WebGLContextEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "WebGLContextEvent"; -[@bs.get] external statusMessage : t => string = ""; +[@get] external statusMessage : t => string = ""; diff --git a/src/Webapi/Dom/Webapi__Dom__WheelEvent.re b/src/Webapi/Dom/Webapi__Dom__WheelEvent.re index 595d2e22..fd628b8d 100644 --- a/src/Webapi/Dom/Webapi__Dom__WheelEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__WheelEvent.re @@ -4,12 +4,12 @@ include Webapi__Dom__Event.Impl({ type nonrec t = t; }); include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); include Webapi__Dom__MouseEvent.Impl({ type nonrec t = t; }); -[@bs.new] external make : string => t = "WheelEvent"; -[@bs.new] external makeWithOptions : (string, Js.t({..})) => t = "WheelEvent"; +[@new] external make : string => t = "WheelEvent"; +[@new] external makeWithOptions : (string, Js.t({..})) => t = "WheelEvent"; -[@bs.get] external deltaX : t => float = ""; -[@bs.get] external deltaY : t => float = ""; -[@bs.get] external deltaZ : t => float = ""; -[@bs.get] external deltaMode : t => int = ""; +[@get] external deltaX : t => float = ""; +[@get] external deltaY : t => float = ""; +[@get] external deltaZ : t => float = ""; +[@get] external deltaMode : t => int = ""; let deltaMode: t => Webapi__Dom__Types.deltaMode = (self) => Webapi__Dom__Types.decodeDeltaMode(deltaMode(self)); diff --git a/src/Webapi/Dom/Webapi__Dom__Window.re b/src/Webapi/Dom/Webapi__Dom__Window.re index a7eb609d..9dd6c272 100644 --- a/src/Webapi/Dom/Webapi__Dom__Window.re +++ b/src/Webapi/Dom/Webapi__Dom__Window.re @@ -21,81 +21,81 @@ module Impl = (T: {type t;}) => { /* A lot of this isn't really "dom", but rather global exports */ - [@bs.get] external console : t_window => console = ""; - [@bs.get] external crypto : t_window => crypto = ""; - [@bs.get] external document : t_window => Dom.document = ""; - [@bs.get] [@bs.return nullable] external frameElement : t_window => option(Dom.element) = ""; /* experimental? */ - [@bs.get] external frames : t_window => frameList = ""; - [@bs.get] external fullScreen : t_window => bool = ""; - [@bs.get] external history : t_window => Dom.history = ""; - [@bs.get] external innerWidth : t_window => int = ""; - [@bs.get] external innerHeight : t_window => int = ""; - [@bs.get] external isSecureContext : t_window => bool = ""; - [@bs.get] external length : t_window => int = ""; - [@bs.get] external location : t_window => Dom.location = ""; - [@bs.set] external setLocation : (t_window, string) => unit = "location"; - [@bs.get] external locationbar : t_window => locationbar = ""; + [@get] external console : t_window => console = ""; + [@get] external crypto : t_window => crypto = ""; + [@get] external document : t_window => Dom.document = ""; + [@get] [@return nullable] external frameElement : t_window => option(Dom.element) = ""; /* experimental? */ + [@get] external frames : t_window => frameList = ""; + [@get] external fullScreen : t_window => bool = ""; + [@get] external history : t_window => Dom.history = ""; + [@get] external innerWidth : t_window => int = ""; + [@get] external innerHeight : t_window => int = ""; + [@get] external isSecureContext : t_window => bool = ""; + [@get] external length : t_window => int = ""; + [@get] external location : t_window => Dom.location = ""; + [@set] external setLocation : (t_window, string) => unit = "location"; + [@get] external locationbar : t_window => locationbar = ""; /* localStorage: accessed directly via Dom.Storage.localStorage */ - [@bs.get] external menubar : t_window => menubar = ""; - [@bs.get] external name : t_window => string = ""; - [@bs.set] external setName : (t_window, string) => unit = "name"; - [@bs.get] external navigator : t_window => navigator = ""; - [@bs.get] [@bs.return nullable] external opener : t_window => option(Dom.window) = ""; - [@bs.get] external outerWidth : t_window => int = ""; - [@bs.get] external outerHeight : t_window => int = ""; - [@bs.get] external pageXOffset : t_window => float = ""; /* alias for scrollX */ - [@bs.get] external pageYOffset : t_window => float = ""; /* alias for scrollY */ - [@bs.get] external parent : t_window => Dom.window = ""; - [@bs.get] external performance : t_window => Webapi__Performance.t = ""; - [@bs.get] external personalbar : t_window => personalbar = ""; - [@bs.get] external screen : t_window => screen = ""; - [@bs.get] external screenX : t_window => int = ""; - [@bs.get] external screenY : t_window => int = ""; - [@bs.get] external scrollbars : t_window => scrollbars = ""; - [@bs.get] external scrollX : t_window => float = ""; - [@bs.get] external scrollY : t_window => float = ""; - [@bs.get] external self : t_window => Dom.window = ""; /* alias for window, but apparently convenient because self (stand-alone) resolves to WorkerGlobalScope in a web worker. Probably poitnless here though */ + [@get] external menubar : t_window => menubar = ""; + [@get] external name : t_window => string = ""; + [@set] external setName : (t_window, string) => unit = "name"; + [@get] external navigator : t_window => navigator = ""; + [@get] [@return nullable] external opener : t_window => option(Dom.window) = ""; + [@get] external outerWidth : t_window => int = ""; + [@get] external outerHeight : t_window => int = ""; + [@get] external pageXOffset : t_window => float = ""; /* alias for scrollX */ + [@get] external pageYOffset : t_window => float = ""; /* alias for scrollY */ + [@get] external parent : t_window => Dom.window = ""; + [@get] external performance : t_window => Webapi__Performance.t = ""; + [@get] external personalbar : t_window => personalbar = ""; + [@get] external screen : t_window => screen = ""; + [@get] external screenX : t_window => int = ""; + [@get] external screenY : t_window => int = ""; + [@get] external scrollbars : t_window => scrollbars = ""; + [@get] external scrollX : t_window => float = ""; + [@get] external scrollY : t_window => float = ""; + [@get] external self : t_window => Dom.window = ""; /* alias for window, but apparently convenient because self (stand-alone) resolves to WorkerGlobalScope in a web worker. Probably poitnless here though */ /* sessionStorage: accessed directly via Dom.Storage.sessionStorage */ - [@bs.get] external speechSynthesis : t_window => speechSynthesis = ""; /* experimental */ - [@bs.get] external status : t_window => string = ""; - [@bs.set] external setStatus : (t_window, string) => unit = "status"; - [@bs.get] external statusbar : t_window => statusbar = ""; - [@bs.get] external toolbar : t_window => toolbar = ""; - [@bs.get] external top : t_window => Dom.window = ""; - [@bs.get] external window : t_window => t_window = ""; /* This is pointless I think, it's just here because window is the implicit global scope, and it's needed to be able to get a reference to it */ + [@get] external speechSynthesis : t_window => speechSynthesis = ""; /* experimental */ + [@get] external status : t_window => string = ""; + [@set] external setStatus : (t_window, string) => unit = "status"; + [@get] external statusbar : t_window => statusbar = ""; + [@get] external toolbar : t_window => toolbar = ""; + [@get] external top : t_window => Dom.window = ""; + [@get] external window : t_window => t_window = ""; /* This is pointless I think, it's just here because window is the implicit global scope, and it's needed to be able to get a reference to it */ - [@bs.send.pipe : t_window] external alert : string => unit = ""; - [@bs.send.pipe : t_window] external blur : unit = ""; - [@bs.send.pipe : t_window] external cancelIdleCallback : idleCallbackId => unit = ""; /* experimental, Cooperative Scheduling of Background Tasks */ - [@bs.send.pipe : t_window] external close : unit = ""; - [@bs.send.pipe : t_window] external confirm : string => bool = ""; - [@bs.send.pipe : t_window] external focus : unit = ""; - [@bs.send.pipe : t_window] external getComputedStyle : Dom.element => Dom.cssStyleDeclaration = ""; - [@bs.send.pipe : t_window] external getComputedStyleWithPseudoElement : (Dom.element, string) => Dom.cssStyleDeclaration = "getComputedStyle"; - [@bs.send.pipe : t_window] external getSelection : Dom.selection = ""; - [@bs.send.pipe : t_window] external matchMedia : string => mediaQueryList = ""; /* experimental, CSSOM View module */ - [@bs.send.pipe : t_window] external moveBy : (int, int) => unit = ""; /* experimental, CSSOM View module */ - [@bs.send.pipe : t_window] external moveTo : (int, int) => unit = ""; /* experimental, CSSOM View module */ - [@bs.send.pipe : t_window] [@bs.return nullable] external open_ : (~url: string, ~name: string, ~features: string=?) => option(Dom.window) = "open"; /* yes, features is a stringly typed list of key value pairs, sigh */ - [@bs.send.pipe : t_window] external postMessage : ('a, string) => unit = ""; /* experimental-ish?, Web Messaging */ - [@bs.send.pipe : t_window] external postMessageWithTransfers : ('a, string, array(transferable)) => unit = "postMessage"; /* experimental-ish?, Web Messaging */ - [@bs.send.pipe : t_window] external print : unit = ""; - [@bs.send.pipe : t_window] external prompt : string => string = ""; - [@bs.send.pipe : t_window] external promptWithDefault : (string, string) => string = "prompt"; + [@send] external alert: t_window => string => unit = ""; + [@send] external blur: t_window => unit = ""; + [@send] external cancelIdleCallback: t_window => idleCallbackId => unit = ""; /* experimental, Cooperative Scheduling of Background Tasks */ + [@send] external close: t_window => unit = ""; + [@send] external confirm: t_window => string => bool = ""; + [@send] external focus: t_window => unit = ""; + [@send] external getComputedStyle: t_window => Dom.element => Dom.cssStyleDeclaration = ""; + [@send] external getComputedStyleWithPseudoElement: (t_window, Dom.element, string) => Dom.cssStyleDeclaration = "getComputedStyle"; + [@send] external getSelection: t_window => Dom.selection = ""; + [@send] external matchMedia: t_window => string => mediaQueryList = ""; /* experimental, CSSOM View module */ + [@send] external moveBy: (t_window, int, int) => unit = ""; /* experimental, CSSOM View module */ + [@send] external moveTo: (t_window, int, int) => unit = ""; /* experimental, CSSOM View module */ + [@send] [@return nullable] external open_: t_window => (~url: string, ~name: string, ~features: string=?) => option(Dom.window) = "open"; /* yes, features is a stringly typed list of key value pairs, sigh */ + [@send] external postMessage: (t_window, 'a, string) => unit = ""; /* experimental-ish?, Web Messaging */ + [@send] external postMessageWithTransfers: (t_window, 'a, string, array(transferable)) => unit = "postMessage"; /* experimental-ish?, Web Messaging */ + [@send] external print: t_window => unit = ""; + [@send] external prompt: t_window => string => string = ""; + [@send] external promptWithDefault: (t_window, string, string) => string = "prompt"; /* requestAnimationFrame: accessed directly via Webapi */ - [@bs.send.pipe : t_window] external requestIdleCallback : (idleDeadline => unit) => idleCallbackId = ""; /* experimental, Cooperative Scheduling of Background Tasks */ - [@bs.send.pipe : t_window] external requestIdleCallbackWithOptions : (idleDeadline => unit, {. "timeout": int}) => idleCallbackId = "requestIdleCallback"; /* experimental, Cooperative Scheduling of Background Tasks */ - [@bs.send.pipe : t_window] external resizeBy : (int, int) => unit = ""; /* experimental, CSSOM View module */ - [@bs.send.pipe : t_window] external resizeTo : (int, int) => unit = ""; /* experimental, CSSOM View module */ - [@bs.send.pipe : t_window] external scroll : (float, float) => unit = ""; /* experimental, CSSOM View module */ - [@bs.send.pipe : t_window] external scrollBy : (float, float) => unit = ""; /* experimental, CSSOM View module */ - [@bs.send.pipe : t_window] external scrollTo : (float, float) => unit = ""; /* experimental, CSSOM View module */ - [@bs.send.pipe : t_window] external stop : unit = ""; + [@send] external requestIdleCallback: (t_window, idleDeadline => unit) => idleCallbackId = ""; /* experimental, Cooperative Scheduling of Background Tasks */ + [@send] external requestIdleCallbackWithOptions: (t_window, idleDeadline => unit, {. "timeout": int}) => idleCallbackId = "requestIdleCallback"; /* experimental, Cooperative Scheduling of Background Tasks */ + [@send] external resizeBy: (t_window, int, int) => unit = ""; /* experimental, CSSOM View module */ + [@send] external resizeTo: (t_window, int, int) => unit = ""; /* experimental, CSSOM View module */ + [@send] external scroll: (t_window, float, float) => unit = ""; /* experimental, CSSOM View module */ + [@send] external scrollBy: (t_window, float, float) => unit = ""; /* experimental, CSSOM View module */ + [@send] external scrollTo: (t_window, float, float) => unit = ""; /* experimental, CSSOM View module */ + [@send] external stop: t_window => unit = ""; - [@bs.send.pipe : t_window] external addPopStateEventListener : ([@bs.as "popstate"] _, Dom.popStateEvent => unit) => unit = "addEventListener"; - [@bs.send.pipe : t_window] external removePopStateEventListener : ([@bs.as "popstate"] _, Dom.popStateEvent => unit) => unit= "removeEventListener"; + [@send] external addPopStateEventListener: (t_window, [@as "popstate"] _, Dom.popStateEvent => unit) => unit = "addEventListener"; + [@send] external removePopStateEventListener: (t_window, [@as "popstate"] _, Dom.popStateEvent => unit) => unit= "removeEventListener"; - [@bs.set] external setOnLoad : (t_window, unit => unit) => unit = "onload"; /* use addEventListener instead? */ + [@set] external setOnLoad : (t_window, unit => unit) => unit = "onload"; /* use addEventListener instead? */ }; type t = Dom.window; diff --git a/src/Webapi/ResizeObserver/Webapi__ResizeObserver__ResizeObserverEntry.re b/src/Webapi/ResizeObserver/Webapi__ResizeObserver__ResizeObserverEntry.re index ca235441..48643de2 100644 --- a/src/Webapi/ResizeObserver/Webapi__ResizeObserver__ResizeObserverEntry.re +++ b/src/Webapi/ResizeObserver/Webapi__ResizeObserver__ResizeObserverEntry.re @@ -1,4 +1,4 @@ type t; -[@bs.get] external contentRect: t => Dom.domRect = ""; -[@bs.get] external target: t => Dom.element = ""; +[@get] external contentRect: t => Dom.domRect = ""; +[@get] external target: t => Dom.element = ""; diff --git a/src/Webapi/Webapi__Base64.re b/src/Webapi/Webapi__Base64.re index 7c477506..ada44be4 100644 --- a/src/Webapi/Webapi__Base64.re +++ b/src/Webapi/Webapi__Base64.re @@ -1,2 +1,2 @@ -[@bs.val] external btoa : string => string = ""; -[@bs.val] external atob : string => string = ""; +[@val] external btoa : string => string = ""; +[@val] external atob : string => string = ""; diff --git a/src/Webapi/Webapi__Blob.re b/src/Webapi/Webapi__Blob.re index 205ea2da..9801a08e 100644 --- a/src/Webapi/Webapi__Blob.re +++ b/src/Webapi/Webapi__Blob.re @@ -1,26 +1,25 @@ -module Impl = (T: {type t}) => { - [@bs.send] external arrayBuffer: T.t => Js.Promise.t(Js.Typed_array.ArrayBuffer.t) = - ""; +module Impl = (T: {type t;}) => { + [@send] external arrayBuffer: T.t => Js.Promise.t(Js.Typed_array.ArrayBuffer.t); - [@bs.get] external size: T.t => float = ""; + [@get] external size: T.t => float; - [@bs.send.pipe: T.t] external slice: (~start: int=?, ~end_: int=?, ~contentType: string=?) => T.t = - ""; + [@send] external slice: (T.t, ~start: int=?, ~end_: int=?, ~contentType: string=?, unit) => T.t; - /** @since 0.19.0 */ - [@bs.send] external stream: T.t => Webapi__ReadableStream.t = ""; + /** @since 0.19.0 */ [@send] external stream: T.t => Webapi__ReadableStream.t; - [@bs.send] external text: T.t => Js.Promise.t(string) = ""; + [@send] external text: T.t => Js.Promise.t(string); - [@bs.get] external type_: T.t => string = "type"; + [@get] external type_: T.t => string = "type"; /** Deprecated, use [type_] instead. */ - [@deprecated "Use [type_] instead"] - [@bs.get] external _type: T.t => string = "type"; + [@deprecated "Use [type_] instead"] [@get] + external _type: T.t => string = "type"; }; type t = Fetch.blob; -include Impl({type nonrec t = t}); +include Impl({ + type nonrec t = t; +}); -// [@bs.new] external make: ... = "Blob"; +// [@new] external make: ... = "Blob"; diff --git a/src/Webapi/Webapi__Canvas.re b/src/Webapi/Webapi__Canvas.re index 28088e7c..5f118654 100644 --- a/src/Webapi/Webapi__Canvas.re +++ b/src/Webapi/Webapi__Canvas.re @@ -2,10 +2,10 @@ module Canvas2d = Webapi__Canvas__Canvas2d; module WebGl = Webapi__Canvas__WebGl; module CanvasElement = { - [@bs.send] external getContext2d : (Dom.element, [@bs.as "2d"] _) => Canvas2d.t = "getContext"; - [@bs.send] external getContextWebGl : (Dom.element, [@bs.as "webgl"] _) => WebGl.glT = "getContext"; - [@bs.get] external height : Dom.element => int = "height"; - [@bs.set] external setHeight : (Dom.element, int) => unit = "height"; - [@bs.get] external width : Dom.element => int = "width"; - [@bs.set] external setWidth : (Dom.element, int) => unit = "width"; + [@send] external getContext2d : (Dom.element, [@as "2d"] _) => Canvas2d.t = "getContext"; + [@send] external getContextWebGl : (Dom.element, [@as "webgl"] _) => WebGl.glT = "getContext"; + [@get] external height : Dom.element => int = "height"; + [@set] external setHeight : (Dom.element, int) => unit = "height"; + [@get] external width : Dom.element => int = "width"; + [@set] external setWidth : (Dom.element, int) => unit = "width"; }; diff --git a/src/Webapi/Webapi__Dom.re b/src/Webapi/Webapi__Dom.re index 8d658660..56a8b9c5 100644 --- a/src/Webapi/Webapi__Dom.re +++ b/src/Webapi/Webapi__Dom.re @@ -67,10 +67,10 @@ module Window = Webapi__Dom__Window; include Webapi__Dom__Types; -[@bs.val] external window : Dom.window = "window"; -[@bs.val] external document : Dom.document = "document"; -[@bs.val] [@bs.scope "window"] external history : Dom.history = "history"; -[@bs.val] [@bs.scope "window"] external location : Dom.location = "location"; +[@val] external window : Dom.window = "window"; +[@val] external document : Dom.document = "document"; +[@val] [@scope "window"] external history : Dom.history = "history"; +[@val] [@scope "window"] external location : Dom.location = "location"; /* Unimplemented interfaces (aka. "The TODO list") diff --git a/src/Webapi/Webapi__File.re b/src/Webapi/Webapi__File.re index f63bdabc..08a819d4 100644 --- a/src/Webapi/Webapi__File.re +++ b/src/Webapi/Webapi__File.re @@ -7,10 +7,10 @@ include Webapi__Blob.Impl({type nonrec t = t}); [@text "{1 File class}"]; /** @since 0.18.0 */ -[@bs.get] external lastModified: t => float = ""; +[@get] external lastModified: t => float = ""; -// [@bs.new] external make: ... = "File"; +// [@new] external make: ... = "File"; -[@bs.get] external name: t => string = ""; +[@get] external name: t => string = ""; -[@bs.get] external preview: t => string = ""; +[@get] external preview: t => string = ""; diff --git a/src/Webapi/Webapi__Performance.re b/src/Webapi/Webapi__Performance.re index aa7d67d0..e2ab10c6 100644 --- a/src/Webapi/Webapi__Performance.re +++ b/src/Webapi/Webapi__Performance.re @@ -1,3 +1,3 @@ type t; -[@bs.send] external now : t => float = ""; +[@send] external now : t => float = ""; diff --git a/src/Webapi/Webapi__ReadableStream.re b/src/Webapi/Webapi__ReadableStream.re index 758e7b03..6ef4bd75 100644 --- a/src/Webapi/Webapi__ReadableStream.re +++ b/src/Webapi/Webapi__ReadableStream.re @@ -2,27 +2,28 @@ module type Reader = { type t; type closed; - [@bs.send] external closed: t => Js.Promise.t(closed) = ""; - [@bs.send] external cancel: t => Js.Promise.t(unit) = ""; - [@bs.send.pipe: t] external cancelWith: string => Js.Promise.t(string) = "cancel"; - [@bs.send] external releaseLock: t => unit = ""; + [@send] external closed: t => Js.Promise.t(closed); + [@send] external cancel: t => Js.Promise.t(unit); + [@send] external cancelWith: (t, string) => Js.Promise.t(string) = "cancel"; + [@send] external releaseLock: t => unit; }; module rec DefaultReader: { include Reader; - [@bs.send] external read: t => Js.Promise.t(Fetch__Iterator.Next.t(string)) = ""; + [@send] external read: t => Js.Promise.t(Fetch__Iterator.Next.t(string)); } = DefaultReader; module rec BYOBReader: { include Reader; - // [@bs.send.pipe: t] external read: view => Js.Promise.t(Fetch__Iterator.Next.t(string)) = "read"; + // [@send] external read: t => view => Js.Promise.t(Fetch__Iterator.Next.t(string)) = "read"; } = BYOBReader; type t = Fetch.readableStream; -[@bs.get] external locked: t => bool = ""; -[@bs.send] external cancel: t => Js.Promise.t(unit) = ""; -[@bs.send.pipe: t] external cancelWith: string => Js.Promise.t(string) = "cancel"; -[@bs.send] external getReader: t => DefaultReader.t = ""; -[@bs.send] external getReaderBYOB: (t, [@bs.as {json|{"mode": "byob"}|json}] _) => BYOBReader.t = "getReader"; -[@bs.send] external tee: t => (t, t) = ""; +[@get] external locked: t => bool; +[@send] external cancel: t => Js.Promise.t(unit); +[@send] external cancelWith: (t, string) => Js.Promise.t(string) = "cancel"; +[@send] external getReader: t => DefaultReader.t; +[@send] +external getReaderBYOB: (t, [@as {json|{"mode": "byob"}|json}] _) => BYOBReader.t = "getReader"; +[@send] external tee: t => (t, t); diff --git a/src/Webapi/Webapi__ResizeObserver.re b/src/Webapi/Webapi__ResizeObserver.re index 7ea6f104..96b16abd 100644 --- a/src/Webapi/Webapi__ResizeObserver.re +++ b/src/Webapi/Webapi__ResizeObserver.re @@ -2,12 +2,12 @@ module ResizeObserverEntry = Webapi__ResizeObserver__ResizeObserverEntry; type t; -[@bs.new] +[@new] external make: (array(ResizeObserverEntry.t) => unit) => t = "ResizeObserver"; -[@bs.new] +[@new] external makeWithObserver: ((array(ResizeObserverEntry.t), t) => unit) => t = "ResizeObserver"; -[@bs.send] external disconnect: t => unit = ""; -[@bs.send] external observe: (t, Dom.element) => unit = ""; -[@bs.send] external unobserve: (t, Dom.element) => unit = ""; +[@send] external disconnect: t => unit = ""; +[@send] external observe: (t, Dom.element) => unit = ""; +[@send] external unobserve: (t, Dom.element) => unit = ""; diff --git a/src/Webapi/Webapi__Url.re b/src/Webapi/Webapi__Url.re index e4690511..e292ea99 100644 --- a/src/Webapi/Webapi__Url.re +++ b/src/Webapi/Webapi__Url.re @@ -1,57 +1,56 @@ module URLSearchParams = { type t; - [@bs.new] external make: string => t = "URLSearchParams"; - [@bs.new] external makeWithDict: Js.Dict.t(string) => t = "URLSearchParams"; - [@bs.new] external makeWithArray: array((string, string)) => t = "URLSearchParams"; - [@bs.send.pipe : t] external append: (string, string) => unit = ""; - [@bs.send.pipe : t] external delete: string => unit = ""; - [@bs.send.pipe : t] external entries: Js.Array.array_like((string, string)) = ""; - [@bs.send.pipe : t] external forEach: ([@bs.uncurry] (string, string) => unit) => unit = ""; - [@bs.return nullable][@bs.send.pipe : t] external get: string => option(string) = ""; - [@bs.send.pipe : t] external getAll: string => array(string) = ""; - [@bs.send.pipe : t] external has: string => bool = ""; - [@bs.send.pipe : t] external keys: Js.Array.array_like(string) = ""; - [@bs.send.pipe : t] external set: (string, string) => unit = ""; - [@bs.send.pipe : t] external sort: unit = ""; - [@bs.send.pipe : t] external toString: string = ""; - [@bs.send.pipe : t] external values: Js.Array.array_like(string) = ""; + [@new] external make: string => t = "URLSearchParams"; + [@new] external makeWithDict: Js.Dict.t(string) => t = "URLSearchParams"; + [@new] external makeWithArray: array((string, string)) => t = "URLSearchParams"; + [@send] external append: (t, string, string) => unit; + [@send] external delete: (t, string) => unit; + [@send] external entries: t => Js.Array.array_like((string, string)); + [@send] external forEach: (t, [@uncurry] ((string, string) => unit)) => unit; + [@return nullable] [@send] external get: (t, string) => option(string); + [@send] external getAll: (t, string) => array(string); + [@send] external has: (t, string) => bool; + [@send] external keys: t => Js.Array.array_like(string); + [@send] external set: (t, string, string) => unit; + [@send] external sort: t => unit; + [@send] external toString: t => string; + [@send] external values: t => Js.Array.array_like(string); }; type t; -[@bs.new] external make: string => t = "URL"; +[@new] external make: string => t = "URL"; /** Deprecated, use [makeWith] instead. */ -[@deprecated "Use [makeWith] instead."] -[@bs.new] external makeWithBase: (string, string) => t = "URL"; +[@deprecated "Use [makeWith] instead."] [@new] +external makeWithBase: (string, string) => t = "URL"; -/** @since 0.19.0 */ -[@bs.new] external makeWith: (string, ~base: string) => t = "URL"; +/** @since 0.19.0 */ [@new] external makeWith: (string, ~base: string) => t = "URL"; -[@bs.get] external hash: t => string = ""; -[@bs.set] external setHash: (t, string) => unit = "hash"; -[@bs.get] external host: t => string = ""; -[@bs.set] external setHost: (t, string) => unit = "host"; -[@bs.get] external hostname: t => string = ""; -[@bs.set] external setHostname: (t, string) => unit = "hostname"; -[@bs.get] external href: t => string = ""; -[@bs.set] external setHref: (t, string) => unit = "href"; -[@bs.get] external origin: t => string = ""; -[@bs.get] external password: t => string = ""; -[@bs.set] external setPassword: (t, string) => unit = "password"; -[@bs.get] external pathname: t => string = ""; -[@bs.set] external setPathname: (t, string) => unit = "pathname"; -[@bs.get] external port: t => string = ""; -[@bs.set] external setPort: (t, string) => unit = "port"; -[@bs.get] external protocol: t => string = ""; -[@bs.set] external setProtocol: (t, string) => unit = "protocol"; -[@bs.get] external search: t => string = ""; -[@bs.set] external setSearch: (t, string) => unit = "search"; -[@bs.get] external searchParams: t => URLSearchParams.t = ""; -[@bs.get] external username: t => string = ""; -[@bs.set] external setUsername: (t, string) => unit = "username"; -[@bs.get] external toJson: t => string = ""; +[@get] external hash: t => string; +[@set] external setHash: (t, string) => unit = "hash"; +[@get] external host: t => string; +[@set] external setHost: (t, string) => unit = "host"; +[@get] external hostname: t => string; +[@set] external setHostname: (t, string) => unit = "hostname"; +[@get] external href: t => string; +[@set] external setHref: (t, string) => unit = "href"; +[@get] external origin: t => string; +[@get] external password: t => string; +[@set] external setPassword: (t, string) => unit = "password"; +[@get] external pathname: t => string; +[@set] external setPathname: (t, string) => unit = "pathname"; +[@get] external port: t => string; +[@set] external setPort: (t, string) => unit = "port"; +[@get] external protocol: t => string; +[@set] external setProtocol: (t, string) => unit = "protocol"; +[@get] external search: t => string; +[@set] external setSearch: (t, string) => unit = "search"; +[@get] external searchParams: t => URLSearchParams.t; +[@get] external username: t => string; +[@set] external setUsername: (t, string) => unit = "username"; +[@get] external toJson: t => string; -[@bs.val] [@bs.scope "URL"] external createObjectURL : Webapi__File.t => string = ""; -[@bs.val] [@bs.scope "URL"] external revokeObjectURL : string => unit = ""; +[@val] [@scope "URL"] external createObjectURL: Webapi__File.t => string; +[@val] [@scope "URL"] external revokeObjectURL: string => unit; diff --git a/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re b/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re index 06570f50..be6d2bb2 100644 --- a/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re +++ b/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re @@ -2,16 +2,16 @@ open Webapi.Canvas; open Webapi.Canvas.Canvas2d; open Webapi.Dom; -let canvasEl = Document.createElement("canvas", document); -let ctx = CanvasElement.getContext2d(canvasEl); +let canvasEl = document->Document.createElement("canvas"); +let ctx = canvasEl->CanvasElement.getContext2d; -ctx |> save; -ctx |> restore; +ctx->save; +ctx->restore; -ctx |> scale(~x=1., ~y=2.); -ctx |> rotate(2.); -ctx |> translate(~x=2., ~y=3.); -ctx |> transform(~m11=1., ~m12=2., ~m21=1., ~m22=1., ~dx=1., ~dy=1.); +ctx->scale(~x=1., ~y=2.); +ctx->rotate(2.); +ctx->translate(~x=2., ~y=3.); +ctx->transform(~m11=1., ~m12=2., ~m21=1., ~m22=1., ~dx=1., ~dy=1.); globalAlpha(ctx, 0.9); globalCompositeOperation(ctx, Composite.sourceOver); @@ -25,13 +25,13 @@ setStrokeStyle(ctx, String, "red"); setFillStyle(ctx, String, "red"); switch (fillStyle(ctx)) { -| (Gradient, g) => g |> addColorStop(0.0, "red") +| (Gradient, g) => g->addColorStop(0.0, "red") | (String, s) => Js.log(s) | (Pattern, _) => () }; switch (strokeStyle(ctx)) { -| (Gradient, g) => g |> addColorStop(1.2, "blue") +| (Gradient, g) => g->addColorStop(1.2, "blue") | (String, s) => Js.log(s) | (Pattern, _) => () }; @@ -41,34 +41,34 @@ shadowOffsetY(ctx, 1.); shadowBlur(ctx, 1.); shadowColor(ctx, "red"); -ctx |> beginPath; -ctx |> closePath; -ctx |> fill; -ctx |> stroke; -ctx |> clip; -ctx |> moveTo(~x=1., ~y=1.); -ctx |> lineTo(~x=1., ~y=2.); -ctx |> quadraticCurveTo(~cp1x=1., ~cp1y=1., ~x=1., ~y=1.); -ctx |> bezierCurveTo(~cp1x=1., ~cp1y=1., ~cp2x=2., ~cp2y=2., ~x=4., ~y=4.); -ctx |> arcTo(~x1=1., ~y1=1., ~x2=2., ~y2=2., ~r=4.); -ctx |> arc(~x=1., ~y=1., ~r=4., ~startAngle=1., ~endAngle=3., ~anticw=true); -ctx |> rect(~x=0., ~y=0., ~w=10., ~h=10.); -let _ = ctx |> isPointInPath(~x=0., ~y=0.); +ctx->beginPath; +ctx->closePath; +ctx->fill; +ctx->stroke; +ctx->clip; +ctx->moveTo(~x=1., ~y=1.); +ctx->lineTo(~x=1., ~y=2.); +ctx->quadraticCurveTo(~cp1x=1., ~cp1y=1., ~x=1., ~y=1.); +ctx->bezierCurveTo(~cp1x=1., ~cp1y=1., ~cp2x=2., ~cp2y=2., ~x=4., ~y=4.); +ctx->arcTo(~x1=1., ~y1=1., ~x2=2., ~y2=2., ~r=4.); +ctx->arc(~x=1., ~y=1., ~r=4., ~startAngle=1., ~endAngle=3., ~anticw=true); +ctx->rect(~x=0., ~y=0., ~w=10., ~h=10.); +let _ = ctx->isPointInPath(~x=0., ~y=0.); let linearGradient = ctx |> createLinearGradient(~x0=0.0, ~y0=0.0, ~x1=0.0, ~y1=0.0); setStrokeStyle(ctx, Gradient, linearGradient); let _ = ctx |> createRadialGradient(~x0=0.0, ~y0=0.0, ~x1=0.0, ~y1=0.0, ~r0=0.0, ~r1=0.0); -linearGradient |> addColorStop(0.0, "red"); +linearGradient->addColorStop(0.0, "red"); let _ = List.map( - createPattern(ctx, Document.createElement("img", document)), - [`noRepeat, `repeat, `repeatX, `repeatY] + ctx->createPattern(document->Document.createElement("img")), + [`noRepeat, `repeat, `repeatX, `repeatY], ); -let measureText = ctx |> measureText("foo"); +let measureText = ctx->measureText("foo"); let width = width(measureText); -ctx |> fillText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width); -ctx |> strokeText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width); +ctx->fillText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width); +ctx->strokeText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width); let imageData = createImageDataCoords(ctx, ~width=0.0, ~height=0.0); createImageDataFromImage(ctx, imageData); Image.width(imageData); @@ -76,14 +76,24 @@ Image.height(imageData); getImageData(ctx, ~sx=0.0, ~sy=0.0, ~sw=0.0, ~sh=0.0); let _: unit = putImageData(ctx, ~imageData, ~dx=0.0, ~dy=0.0); -let _: unit = putImageDataWithDirtyRect(ctx, ~imageData, ~dx=0.0, ~dy=0.0, ~dirtyX=0.0, ~dirtyY=0.0, ~dirtyWidth=0.0, ~dirtyHeight=0.0); +let _: unit = + putImageDataWithDirtyRect( + ctx, + ~imageData, + ~dx=0.0, + ~dy=0.0, + ~dirtyX=0.0, + ~dirtyY=0.0, + ~dirtyWidth=0.0, + ~dirtyHeight=0.0, + ); font(ctx, "10px Courier"); textAlign(ctx, "left"); textBaseline(ctx, "top"); -ctx |> fillText("hi", ~x=1., ~y=0.); -ctx |> strokeText("hi", ~x=1., ~y=0.); +ctx->fillText("hi", ~x=1., ~y=0.); +ctx->strokeText("hi", ~x=1., ~y=0.); -ctx |> fillRect(~x=1., ~y=0., ~w=10., ~h=10.); -ctx |> strokeRect(~x=1., ~y=0., ~w=10., ~h=10.); -ctx |> clearRect(~x=1., ~y=0., ~w=10., ~h=10.); +ctx->fillRect(~x=1., ~y=0., ~w=10., ~h=10.); +ctx->strokeRect(~x=1., ~y=0., ~w=10., ~h=10.); +ctx->clearRect(~x=1., ~y=0., ~w=10., ~h=10.); diff --git a/tests/Webapi/Dom/Webapi__Dom__Document__test.re b/tests/Webapi/Dom/Webapi__Dom__Document__test.re index 4df531d3..7bb6b819 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Document__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Document__test.re @@ -1,57 +1,67 @@ open Webapi.Dom; open Document; -let el = document |> createElement("strong"); +let el = document->createElement("strong"); -let _ = characterSet(document); -let _ = compatMode(document); -let _ = doctype(document); -let _ = documentElement(document); -let _ = documentURI(document); -let _ = hidden(document); -let _ = implementation(document); -let _ = lastStyleSheetSet(document); -let _ = pointerLockElement(document); -let _ = preferredStyleSheetSet(document); -let _ = scrollingElement(document); -let _ = selectedStyleSheetSet(document); +let _ = document->characterSet; +let _ = document->compatMode; +let _ = document->doctype; +let _ = document->documentElement; +let _ = document->documentURI; +let _ = document->hidden; +let _ = document->implementation; +let _ = document->lastStyleSheetSet; +let _ = document->pointerLockElement; +let _ = document->preferredStyleSheetSet; +let _ = document->scrollingElement; +let _ = document->selectedStyleSheetSet; let _ = setSelectedStyleSheetSet(document, "muh-stylesheet"); -let _ = styleSheets(document); -let _ = styleSheetSets(document); -let _ = visibilityState(document); +let _ = document->styleSheets; +let _ = document->styleSheetSets; +let _ = document->visibilityState; -let _ = adoptNode(el, document); -let _ = createAttribute("data-foo", document); -let _ = createAttributeNS("http://...", "foo", document); -let _ = createComment("witty comment", document); -let _ = createDocumentFragment(document); -let _ = createElement("div", document); -let _ = createElementWithOptions("div", [%bs.raw "{}"], document); /* I've no idea what this options object is supposed to be, even the spec doesn't seem to bother explaining it */ -let _ = createElementNS("http://...", "foo", document); -let _ = createElementNSWithOptions("http://...", "div", [%bs.raw "{}"], document); /* I've no idea what this options object is supposed to be, even the spec doesn't seem to bother explaining it */ -let _ = createEvent("MyCustomEvent", document); -let _ = createNodeIterator(el, document); -let _ = createNodeIteratorWithWhatToShow(el, WhatToShow._All, document); -let _ = createNodeIteratorWithWhatToShowFilter(el, WhatToShow.(many([_Element, _Attribute])), NodeFilter.make((_) => 0), document); -let _ = createRange(document); -let _ = createTextNode("Very reasonable!", document); -let _ = createTreeWalker(el, document); -let _ = createTreeWalkerWithWhatToShow(el, WhatToShow._All, document); -let _ = createTreeWalkerWithWhatToShowFilter(el, WhatToShow.(many([_Element, _Attribute])), NodeFilter.make((_) => 0), document); -let _ = elementFromPoint(0, 0, document); -let _ = elementsFromPoint(0, 0, document); -let _ = enableStyleSheetsForSet("my-stylesheet-set", document); -let _ = exitPointerLock(document); -let _ = getAnimations(document); -let _ = getElementsByClassName("lstlisting", document); -let _ = getElementsByTagName("code", document); -let _ = getElementsByTagNameNS("http://...", "foo", document); -let _ = importNode(el, document); -let _ = importNodeDeep(el, document); +let _ = document->adoptNode(el); +let _ = document->createAttribute("data-foo"); +let _ = document->createAttributeNS("http://...", "foo"); +let _ = document->createComment("witty comment"); +let _ = document->createDocumentFragment; +let _ = document->createElement("div"); +let _ = document->createElementWithOptions("div", [%bs.raw "{}"]); /* I've no idea what this options object is supposed to be, even the spec doesn't seem to bother explaining it */ +let _ = document->createElementNS("http://...", "foo"); +let _ = document->createElementNSWithOptions("http://...", "div", [%bs.raw "{}"]); /* I've no idea what this options object is supposed to be, even the spec doesn't seem to bother explaining it */ +let _ = document->createEvent("MyCustomEvent"); +let _ = document->createNodeIterator(el); +let _ = document->createNodeIteratorWithWhatToShow(el, WhatToShow._All); +let _ = + document->createNodeIteratorWithWhatToShowFilter( + el, + WhatToShow.(many([_Element, _Attribute])), + NodeFilter.make(_ => 0), + ); +let _ = document->createRange; +let _ = document->createTextNode("Very reasonable!"); +let _ = document->createTreeWalker(el); +let _ = document->createTreeWalkerWithWhatToShow(el, WhatToShow._All); +let _ = + document->createTreeWalkerWithWhatToShowFilter( + el, + WhatToShow.(many([_Element, _Attribute])), + NodeFilter.make(_ => 0), + ); +let _ = document->elementFromPoint(0, 0); +let _ = document->elementsFromPoint(0, 0); +let _ = document->enableStyleSheetsForSet("my-stylesheet-set"); +let _ = document->exitPointerLock; +let _ = document->getAnimations; +let _ = document->getElementsByClassName("lstlisting"); +let _ = document->getElementsByTagName("code"); +let _ = document->getElementsByTagNameNS("http://...", "foo"); +let _ = document->importNode(el); +let _ = document->importNodeDeep(el); /* TODO: These get dead code eliminated -let _ = registerElement(document, "my-component"); -let _ = registerElementWithOptions(document, "my-component", [%bs.raw "{}"]); -*/ -let _ = getElementById("root", document); -let _ = querySelector(".lstlisting", document); -let _ = querySelectorAll(".lstlisting", document); + let _ = registerElement(document, "my-component"); + let _ = registerElementWithOptions(document, "my-component", [%bs.raw "{}"]); + */ +let _ = document->getElementById("root"); +let _ = document->querySelector(".lstlisting"); +let _ = document->querySelectorAll(".lstlisting"); diff --git a/tests/Webapi/Dom/Webapi__Dom__DomStringMap__test.re b/tests/Webapi/Dom/Webapi__Dom__DomStringMap__test.re index 6719f654..8372cc3a 100644 --- a/tests/Webapi/Dom/Webapi__Dom__DomStringMap__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__DomStringMap__test.re @@ -3,14 +3,15 @@ open Webapi.Dom.DomStringMap; let dataset = document - |> Document.createElement("div") - |> Element.asHtmlElement - |> Belt.Option.map(_, HtmlElement.dataset); + ->Document.createElement("div") + ->Element.asHtmlElement + ->Belt.Option.map(_, HtmlElement.dataset); -let () = switch (dataset) { +let () = + switch (dataset) { | Some(dataset) => - set("fooKey", "barValue", dataset); - dataset |> get("fooKey") |> ignore; - unsafeDeleteKey("fooKey", dataset); + dataset->set("fooKey", "barValue"); + dataset->get("fooKey")->ignore; + dataset->unsafeDeleteKey("fooKey"); | None => () -}; + }; diff --git a/tests/Webapi/Dom/Webapi__Dom__DomTokenList__test.re b/tests/Webapi/Dom/Webapi__Dom__DomTokenList__test.re index 86269011..b96cc681 100644 --- a/tests/Webapi/Dom/Webapi__Dom__DomTokenList__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__DomTokenList__test.re @@ -1,23 +1,21 @@ open Webapi.Dom; open DomTokenList; -let tlist = - document |> Document.createElement("div") - |> Element.classList; +let tlist = document->Document.createElement("div")->Element.classList; -let _ = length(tlist); -let _ = item(3, tlist); +let _ = tlist->length; +let _ = tlist->item(3); -add("my-class", tlist); -addMany([|"my-class", "my-other-class"|], tlist); -let _ = contains("my-class", tlist); -forEach((item, _) => print_endline(item), tlist); -remove("my-class", tlist); -removeMany([|"my-class", "my-other-class"|], tlist); -replace("my-class", "my-other-class", tlist); -let _ = supports("my-class", tlist); -let _ = toggle("my-class", tlist); -let _ = toggleForced("my-class", tlist); -let _ = toString(tlist); -let _ = value(tlist); -let _ = setValue(tlist, "foo"); +tlist->add("my-class"); +tlist->addMany([|"my-class", "my-other-class"|]); +let _ = tlist->contains("my-class"); +tlist->forEach((item, _) => print_endline(item)); +tlist->remove("my-class"); +tlist->removeMany([|"my-class", "my-other-class"|]); +tlist->replace("my-class", "my-other-class"); +let _ = tlist->supports("my-class"); +let _ = tlist->toggle("my-class"); +let _ = tlist->toggleForced("my-class"); +let _ = tlist->toString; +let _ = tlist->value; +let _ = tlist->setValue("foo"); diff --git a/tests/Webapi/Dom/Webapi__Dom__DragEvent__test.re b/tests/Webapi/Dom/Webapi__Dom__DragEvent__test.re index 8770161f..e97b4ed4 100644 --- a/tests/Webapi/Dom/Webapi__Dom__DragEvent__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__DragEvent__test.re @@ -4,47 +4,47 @@ open DragEvent; let event = make("my-event"); /* Event */ -let _ = bubbles(event); -let _ = cancelable(event); -let _ = composed(event); -let _ = currentTarget(event); -let _ = defaultPrevented(event); -let _ = eventPhase(event); -let _ = target(event); -let _ = timeStamp(event); -let _ = type_(event); -let _ = isTrusted(event); +let _ = event->bubbles; +let _ = event->cancelable; +let _ = event->composed; +let _ = event->currentTarget; +let _ = event->defaultPrevented; +let _ = event->eventPhase; +let _ = event->target; +let _ = event->timeStamp; +let _ = event->type_; +let _ = event->isTrusted; -preventDefault(event); -stopImmediatePropagation(event); -stopPropagation(event); +event->preventDefault; +event->stopImmediatePropagation; +event->stopPropagation; /* UIEvent */ -let _ = detail(event); -let _ = view(event); +let _ = event->detail; +let _ = event->view; /* MouseEvent */ -let _ = altKey(event); -let _ = button(event); -let _ = buttons(event); -let _ = clientX(event); -let _ = clientY(event); -let _ = ctrlKey(event); -let _ = metaKey(event); -let _ = movementX(event); -let _ = movementY(event); -let _ = offsetX(event); -let _ = offsetY(event); -let _ = pageX(event); -let _ = pageY(event); -let _ = region(event); -let _ = relatedTarget(event); -let _ = screenX(event); -let _ = screenY(event); -let _ = shiftKey(event); -let _ = x(event); -let _ = y(event); -let _ = getModifierState(Alt, event); +let _ = event->altKey; +let _ = event->button; +let _ = event->buttons; +let _ = event->clientX; +let _ = event->clientY; +let _ = event->ctrlKey; +let _ = event->metaKey; +let _ = event->movementX; +let _ = event->movementY; +let _ = event->offsetX; +let _ = event->offsetY; +let _ = event->pageX; +let _ = event->pageY; +let _ = event->region; +let _ = event->relatedTarget; +let _ = event->screenX; +let _ = event->screenY; +let _ = event->shiftKey; +let _ = event->x; +let _ = event->y; +let _ = event->getModifierState(Alt); /* DragEvent */ -let _ = dataTransfer(event); +let _ = event->dataTransfer; diff --git a/tests/Webapi/Dom/Webapi__Dom__Element__test.re b/tests/Webapi/Dom/Webapi__Dom__Element__test.re index 33d82a5a..8ac74a31 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Element__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Element__test.re @@ -1,73 +1,73 @@ open Webapi.Dom; open Element; -let el = document |> Document.createElement("strong"); -let el2 = document |> Document.createElement("small"); +let el = document->Document.createElement("strong"); +let el2 = document->Document.createElement("small"); let event = PointerEvent.make("my-event"); -let _ = assignedSlot(el); -let _ = attributes(el); -let _ = classList(el); -let _ = className(el); -let _ = setClassName(el, "my-class-name"); -let _ = clientHeight(el); -let _ = clientLeft(el); -let _ = clientTop(el); -let _ = clientWidth(el); -let _ = id(el); -let _ = setId(el, "my-id"); -let _ = innerHTML(el); -let _ = setInnerHTML(el, "stuff"); -let _ = localName(el); -let _ = namespaceURI(el); -let _ = nextElementSibling(el); -let _ = outerHTML(el); -let _ = setOuterHTML(el, "stuff"); -let _ = prefix(el); -let _ = previousElementSibling(el); -let _ = scrollHeight(el); -let _ = scrollLeft(el); -let _ = setScrollLeft(el, 0.0); -let _ = scrollTop(el); -let _ = setScrollTop(el, 0.0); -let _ = scrollWidth(el); -let _ = shadowRoot(el); -let _ = slot(el); -let _ = setSlot(el, "stuff"); -let _ = tagName(el); +let _ = el->assignedSlot; +let _ = el->attributes; +let _ = el->classList; +let _ = el->className; +let _ = el->setClassName("my-class-name"); +let _ = el->clientHeight; +let _ = el->clientLeft; +let _ = el->clientTop; +let _ = el->clientWidth; +let _ = el->id; +let _ = el->setId("my-id"); +let _ = el->innerHTML; +let _ = el->setInnerHTML("stuff"); +let _ = el->localName; +let _ = el->namespaceURI; +let _ = el->nextElementSibling; +let _ = el->outerHTML; +let _ = el->setOuterHTML("stuff"); +let _ = el->prefix; +let _ = el->previousElementSibling; +let _ = el->scrollHeight; +let _ = el->scrollLeft; +let _ = el->setScrollLeft(0.0); +let _ = el->scrollTop; +let _ = el->setScrollTop(0.0); +let _ = el->scrollWidth; +let _ = el->shadowRoot; +let _ = el->slot; +let _ = el->setSlot("stuff"); +let _ = el->tagName; -let _ = attachShadow({"mode": "open"}, el); -let _ = attachShadowOpen(el); -let _ = attachShadowClosed(el); -let _ = animate({"transform": "translateT(0px)"}, {"duration": 1000}, el); -let _ = closest("input", el); -let _ = createShadowRoot(el); -let _ = getAttribute("href", el); -let _ = getAttributeNS("http://...", "foo", el); -let _ = getBoundingClientRect(el); -let _ = getClientRects(el); -let _ = getElementsByClassName("some-class-name", el); -let _ = getElementsByTagName("pre", el); -let _ = getElementsByTagNameNS("http://...", "td", el); -let _ = hasAttribute("data-my-value", el); -let _ = hasAttributeNS("http://...", "foo", el); -let _ = hasAttributes(el); -let _ = insertAdjacentElement(BeforeBegin, el2, el); -let _ = insertAdjacentHTML(AfterBegin, "text", el); -let _ = insertAdjacentText(AfterEnd, "text", el); -let _ = matches("input", el); -let _ = querySelector("input", el); -let _ = querySelectorAll("input", el); -let _ = releasePointerCapture(PointerEvent.pointerId(event), el); -let _ = remove(el); -let _ = removeAttribute("href", el); -let _ = removeAttributeNS("http://...", "foo", el); -let _ = requestFullscreen(el); -let _ = requestPointerLock(el); -let _ = scrollIntoView(el); -/*let _ = scrollIntoViewNoAlignToTop(el);*/ -let _ = scrollIntoViewNoAlignToTop(el); -let _ = scrollIntoViewWithOptions({"block": "end", "behavior": "smooth"}, el); -let _ = setAttribute("href", "http://...", el); -let _ = setAttributeNS("http://...", "foo", "bar", el); -let _ = setPointerCapture(PointerEvent.pointerId(event), el); +let _ = el->attachShadow({"mode": "open"}); +let _ = el->attachShadowOpen; +let _ = el->attachShadowClosed; +let _ = el->animate({"transform": "translateT(0px)"}, {"duration": 1000}); +let _ = el->closest("input"); +let _ = el->createShadowRoot; +let _ = el->getAttribute("href"); +let _ = el->getAttributeNS("http://...", "foo"); +let _ = el->getBoundingClientRect; +let _ = el->getClientRects; +let _ = el->getElementsByClassName("some-class-name"); +let _ = el->getElementsByTagName("pre"); +let _ = el->getElementsByTagNameNS("http://...", "td"); +let _ = el->hasAttribute("data-my-value"); +let _ = el->hasAttributeNS("http://...", "foo"); +let _ = el->hasAttributes; +let _ = el->insertAdjacentElement(BeforeBegin, el); +let _ = el->insertAdjacentHTML(AfterBegin, "text"); +let _ = el->insertAdjacentText(AfterEnd, "text"); +let _ = el->matches("input"); +let _ = el->querySelector("input"); +let _ = el->querySelectorAll("input"); +let _ = el->releasePointerCapture(PointerEvent.pointerId(event)); +let _ = el->remove; +let _ = el->removeAttribute("href"); +let _ = el->removeAttributeNS("http://...", "foo"); +let _ = el->requestFullscreen; +let _ = el->requestPointerLock; +let _ = el->scrollIntoView; +/*let _ el->= scrollIntoViewNoAlignToTop;*/ +let _ = el->scrollIntoViewNoAlignToTop; +let _ = el->scrollIntoViewWithOptions({"block": "end", "behavior": "smooth"}); +let _ = el->setAttribute("href", "http://..."); +let _ = el->setAttributeNS("http://...", "foo", "bar"); +let _ = el->setPointerCapture(PointerEvent.pointerId(event)); diff --git a/tests/Webapi/Dom/Webapi__Dom__EventTarget__test.re b/tests/Webapi/Dom/Webapi__Dom__EventTarget__test.re index 37d9c07f..6036253b 100644 --- a/tests/Webapi/Dom/Webapi__Dom__EventTarget__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__EventTarget__test.re @@ -1,20 +1,30 @@ open Webapi.Dom; open EventTarget; -let target = - document |> Document.createElement("strong") - |> Element.asEventTarget; +let target = document->Document.createElement("strong")->Element.asEventTarget; let event = Event.make("my-event"); -let handleClick = (_) => print_endline("asd"); +let handleClick = _ => print_endline("asd"); -addEventListener("click", handleClick, target); -addEventListenerWithOptions("click",handleClick, {"passive": true, "once": true, "capture": false}, target); -addEventListenerUseCapture("click", handleClick, target); -removeEventListener("click", handleClick, target); -removeEventListenerWithOptions("click", handleClick, {"passive": true, "capture": false}, target); -removeEventListenerUseCapture("click", handleClick, target); -let _ = dispatchEvent(event, target); +target->addEventListener("click", handleClick); +target->addEventListenerWithOptions( + "click", + handleClick, + {"passive": true, "once": true, "capture": false}, +); +target->addEventListenerUseCapture("click", handleClick); +target->removeEventListener("click", handleClick); +target->removeEventListenerWithOptions( + "click", + handleClick, + {"passive": true, "capture": false}, +); +target->removeEventListenerUseCapture("click", handleClick); +let _ = target->dispatchEvent(event); /* https://github.com/reasonml-community/bs-webapi-incubator/issues/103 */ -let customEvent = CustomEvent.makeWithOptions("custom-event", {"detail": {"test": "test"}}); -dispatchEvent(customEvent, target); +let customEvent = CustomEvent.makeWithOptions("custom-event", { + "detail": { + "test": "test", + }, + }); +target->dispatchEvent(customEvent); diff --git a/tests/Webapi/Dom/Webapi__Dom__GlobalEventHandlers__test.re b/tests/Webapi/Dom/Webapi__Dom__GlobalEventHandlers__test.re index ac2b14fb..2c9bf895 100644 --- a/tests/Webapi/Dom/Webapi__Dom__GlobalEventHandlers__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__GlobalEventHandlers__test.re @@ -1,33 +1,61 @@ open Webapi.Dom; -let handleSelection = (_) => print_endline("change"); - -let elm = document |> Document.createElement("strong"); - -Element.addSelectionChangeEventListenerWithOptions(handleSelection, {"passive": true, "once": true, "capture": false}, elm); -Element.addSelectionChangeEventListenerUseCapture(handleSelection, elm); -Element.removeSelectionChangeEventListener(handleSelection, elm); -Element.removeSelectionChangeEventListenerWithOptions(handleSelection, {"passive": true, "capture": false}, elm); -Element.removeSelectionChangeEventListenerUseCapture(handleSelection, elm); - -let htmlElm = document |> Document.createElement("strong") |> HtmlElement.ofElement |> TestHelpers.unsafelyUnwrapOption; - -HtmlElement.addSelectionChangeEventListenerWithOptions(handleSelection, {"passive": true, "once": true, "capture": false}, htmlElm); -HtmlElement.addSelectionChangeEventListenerUseCapture(handleSelection, htmlElm); -HtmlElement.removeSelectionChangeEventListener(handleSelection, htmlElm); -HtmlElement.removeSelectionChangeEventListenerWithOptions(handleSelection, {"passive": true, "capture": false}, htmlElm); -HtmlElement.removeSelectionChangeEventListenerUseCapture(handleSelection, htmlElm); - -let htmlDoc = document |> Document.asHtmlDocument |> TestHelpers.unsafelyUnwrapOption; - -HtmlDocument.addSelectionChangeEventListenerWithOptions(handleSelection, {"passive": true, "once": true, "capture": false}, htmlDoc); -HtmlDocument.addSelectionChangeEventListenerUseCapture(handleSelection, htmlDoc); -HtmlDocument.removeSelectionChangeEventListener(handleSelection, htmlDoc); -HtmlDocument.removeSelectionChangeEventListenerWithOptions(handleSelection, {"passive": true, "capture": false}, htmlDoc); -HtmlDocument.removeSelectionChangeEventListenerUseCapture(handleSelection, htmlDoc); - -Window.addSelectionChangeEventListenerWithOptions(handleSelection, {"passive": true, "once": true, "capture": false}, window); -Window.addSelectionChangeEventListenerUseCapture(handleSelection, window); -Window.removeSelectionChangeEventListener(handleSelection, window); -Window.removeSelectionChangeEventListenerWithOptions(handleSelection, {"passive": true, "capture": false}, window); -Window.removeSelectionChangeEventListenerUseCapture(handleSelection, window); +let handleSelection = _ => print_endline("change"); + +let elm = document->Document.createElement("strong"); + +elm->Element.addSelectionChangeEventListenerWithOptions( + handleSelection, + {"passive": true, "once": true, "capture": false}, +); +elm->Element.addSelectionChangeEventListenerUseCapture(handleSelection); +elm->Element.removeSelectionChangeEventListener(handleSelection); +elm->Element.removeSelectionChangeEventListenerWithOptions( + handleSelection, + {"passive": true, "capture": false}, +); +elm->Element.removeSelectionChangeEventListenerUseCapture(handleSelection); + +let htmlElm = + document + ->Document.createElement("strong") + ->HtmlElement.ofElement + ->TestHelpers.unsafelyUnwrapOption; + +htmlElm->HtmlElement.addSelectionChangeEventListenerWithOptions( + handleSelection, + {"passive": true, "once": true, "capture": false}, +); +htmlElm->HtmlElement.addSelectionChangeEventListenerUseCapture(handleSelection); +htmlElm->HtmlElement.removeSelectionChangeEventListener(handleSelection); +htmlElm->HtmlElement.removeSelectionChangeEventListenerWithOptions( + handleSelection, + {"passive": true, "capture": false}, +); +htmlElm->HtmlElement.removeSelectionChangeEventListenerUseCapture(handleSelection); + +let htmlDoc = document->Document.asHtmlDocument->TestHelpers.unsafelyUnwrapOption; + +htmlDoc->HtmlDocument.addSelectionChangeEventListenerWithOptions( + handleSelection, + {"passive": true, "once": true, "capture": false}, +); +htmlDoc->HtmlDocument.addSelectionChangeEventListenerUseCapture(handleSelection); +htmlDoc->HtmlDocument.removeSelectionChangeEventListener(handleSelection); +htmlDoc->HtmlDocument.removeSelectionChangeEventListenerWithOptions( + handleSelection, + {"passive": true, "capture": false}, +); +htmlDoc->HtmlDocument.removeSelectionChangeEventListenerUseCapture(handleSelection); + +window->Window.addSelectionChangeEventListenerWithOptions( + handleSelection, + {"passive": true, "once": true, "capture": false}, +); +window->Window.addSelectionChangeEventListenerUseCapture(handleSelection); +window->Window.removeSelectionChangeEventListener(handleSelection); +window->Window.removeSelectionChangeEventListenerWithOptions( + handleSelection, + {"passive": true, "capture": false}, +); +window->Window.removeSelectionChangeEventListenerUseCapture(handleSelection); diff --git a/tests/Webapi/Dom/Webapi__Dom__History__test.re b/tests/Webapi/Dom/Webapi__Dom__History__test.re index bb9be35a..4f127829 100644 --- a/tests/Webapi/Dom/Webapi__Dom__History__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__History__test.re @@ -1,13 +1,13 @@ open Webapi.Dom; open History; -let _ = length(history); -let _ = scrollRestoration(history); -let _ = setScrollRestoration(history, true); -let _ = state(history); +let _ = history->length; +let _ = history->scrollRestoration; +let _ = history->setScrollRestoration(true); +let _ = history->state; -back(history); -forward(history); -go((-2), history); -pushState(state(history), "My title", "http://...", history); -replaceState(state(history), "My title", "http://...", history); +history->back; +history->forward; +history->go(-2); +history->pushState(history->state, "My title", "http://..."); +history->replaceState(history->state, "My title", "http://..."); diff --git a/tests/Webapi/Dom/Webapi__Dom__HtmlDocument__test.re b/tests/Webapi/Dom/Webapi__Dom__HtmlDocument__test.re index ff8a1dc7..ba8d3665 100644 --- a/tests/Webapi/Dom/Webapi__Dom__HtmlDocument__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__HtmlDocument__test.re @@ -1,48 +1,46 @@ open Webapi.Dom; open! HtmlDocument; -let el = document |> Document.createElement("strong"); -let htmlDocument = - document |> Document.asHtmlDocument - |> TestHelpers.unsafelyUnwrapOption; +let el = document->Document.createElement("strong"); +let htmlDocument = document->Document.asHtmlDocument->TestHelpers.unsafelyUnwrapOption; -let _ = activeElement(htmlDocument); -let _ = body(htmlDocument); -let _ = setBody(htmlDocument, el); -let _ = cookie(htmlDocument); -let _ = setCookie(htmlDocument, "foo=bar;reason=ml"); -let _ = defaultView(htmlDocument); -let _ = designMode(htmlDocument); -let _ = setDesignMode(htmlDocument, On); -let _ = dir(htmlDocument); -let _ = setDir(htmlDocument, Ltr); -let _ = domain(htmlDocument); -let _ = setDomain(htmlDocument, "reason.ml"); -let _ = embeds(htmlDocument); -let _ = forms(htmlDocument); -let _ = head(htmlDocument); -let _ = images(htmlDocument); -let _ = lastModified(htmlDocument); -let _ = links(htmlDocument); -let _ = location(htmlDocument); -let _ = setLocation(htmlDocument, "http://reason.ml"); -let _ = plugins(htmlDocument); -let _ = readyState(htmlDocument); -let _ = referrer(htmlDocument); -let _ = scripts(htmlDocument); -let _ = title(htmlDocument); -let _ = setTitle(htmlDocument, "Reason: Rapid Expressive Systems Programming."); -let _ = url(htmlDocument); +let _ = htmlDocument->activeElement; +let _ = htmlDocument->body; +let _ = htmlDocument->setBody(el); +let _ = htmlDocument->cookie; +let _ = htmlDocument->setCookie("foo=bar;reason=ml"); +let _ = htmlDocument->defaultView; +let _ = htmlDocument->designMode; +let _ = htmlDocument->setDesignMode(On); +let _ = htmlDocument->dir; +let _ = htmlDocument->setDir(Ltr); +let _ = htmlDocument->domain; +let _ = htmlDocument->setDomain("reason.ml"); +let _ = htmlDocument->embeds; +let _ = htmlDocument->forms; +let _ = htmlDocument->head; +let _ = htmlDocument->images; +let _ = htmlDocument->lastModified; +let _ = htmlDocument->links; +let _ = htmlDocument->location; +let _ = htmlDocument->setLocation("http://reason.ml"); +let _ = htmlDocument->plugins; +let _ = htmlDocument->readyState; +let _ = htmlDocument->referrer; +let _ = htmlDocument->scripts; +let _ = htmlDocument->title; +let _ = htmlDocument->setTitle("Reason: Rapid Expressive Systems Programming."); +let _ = htmlDocument->url; -close(htmlDocument); -let _ = execCommand("copy", false, None, htmlDocument); -let _ = getElementsByName("angry-joe", htmlDocument); -let _ = getSelection(htmlDocument); -let _ = hasFocus(htmlDocument); -open_(htmlDocument); -let _ = queryCommandEnabled("copy", htmlDocument); -let _ = queryCommandIndeterm("cut", htmlDocument); -let _ = queryCommandSupported("paste", htmlDocument); -let _ = queryCommandValue("fontName", htmlDocument); -write("Hello World!", htmlDocument); -writeln("Hello Newline!", htmlDocument); +htmlDocument->close; +let _ = htmlDocument->execCommand("copy", false, None); +let _ = htmlDocument->getElementsByName("angry-joe"); +let _ = htmlDocument->getSelection; +let _ = htmlDocument->hasFocus; +htmlDocument->open_; +let _ = htmlDocument->queryCommandEnabled("copy"); +let _ = htmlDocument->queryCommandIndeterm("cut"); +let _ = htmlDocument->queryCommandSupported("paste"); +let _ = htmlDocument->queryCommandValue("fontName"); +htmlDocument->write("Hello World!"); +htmlDocument->writeln("Hello Newline!"); diff --git a/tests/Webapi/Dom/Webapi__Dom__HtmlElement__test.re b/tests/Webapi/Dom/Webapi__Dom__HtmlElement__test.re index 587cb9e4..881bc1da 100644 --- a/tests/Webapi/Dom/Webapi__Dom__HtmlElement__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__HtmlElement__test.re @@ -2,59 +2,61 @@ open Webapi.Dom; open HtmlElement; let el = - document |> Document.createElement("strong") - |> Element.asHtmlElement - |> TestHelpers.unsafelyUnwrapOption; + document + ->Document.createElement("strong") + ->Element.asHtmlElement + ->TestHelpers.unsafelyUnwrapOption; let el2 = - document |> Document.createElement("small") - |> Element.asHtmlElement - |> TestHelpers.unsafelyUnwrapOption; -let event = document |> Document.createEvent("my-event"); + document + ->Document.createElement("small") + ->Element.asHtmlElement + ->TestHelpers.unsafelyUnwrapOption; +let event = document->Document.createEvent("my-event"); -let _ = accessKey(el); -let _ = setAccessKey(el, ""); -let _ = accessKeyLabel(el); -let _ = contentEditable(el); -let _ = setContentEditable(el, Inherit); -let _ = isContentEditable(el); -let _ = contextMenu(el); -let _ = setContextMenu(el, el2); -let _ = dataset(el); -let _ = dir(el); -let _ = setDir(el, Rtl); -let _ = draggable(el); -let _ = setDraggable(el, true); -let _ = dropzone(el); -let _ = hidden(el); -let _ = setHidden(el, true); -let _ = itemScope(el); -let _ = setItemScope(el, true); -let _ = itemType(el); -let _ = itemId(el); -let _ = setItemId(el, "my-id"); -let _ = itemRef(el); -let _ = itemProp(el); -let _ = itemValue(el); -let _ = setItemValue(el, [%bs.raw "{}"]); -let _ = lang(el); -let _ = setLang(el, "en"); -let _ = offsetHeight(el); -let _ = offsetLeft(el); -let _ = offsetParent(el); -let _ = offsetTop(el); -let _ = offsetWidth(el); -let _ = spellcheck(el); -let _ = setSpellcheck(el, true); -let _ = style(el); +let _ = el->accessKey; +let _ = el->setAccessKey(""); +let _ = el->accessKeyLabel; +let _ = el->contentEditable; +let _ = el->setContentEditable(Inherit); +let _ = el->isContentEditable; +let _ = el->contextMenu; +let _ = el->setContextMenu(el2); +let _ = el->dataset; +let _ = el->dir; +let _ = el->setDir(Rtl); +let _ = el->draggable; +let _ = el->setDraggable(true); +let _ = el->dropzone; +let _ = el->hidden; +let _ = el->setHidden(true); +let _ = el->itemScope; +let _ = el->setItemScope(true); +let _ = el->itemType; +let _ = el->itemId; +let _ = el->setItemId("my-id"); +let _ = el->itemRef; +let _ = el->itemProp; +let _ = el->itemValue; +let _ = el->setItemValue([%bs.raw "{}"]); +let _ = el->lang; +let _ = el->setLang("en"); +let _ = el->offsetHeight; +let _ = el->offsetLeft; +let _ = el->offsetParent; +let _ = el->offsetTop; +let _ = el->offsetWidth; +let _ = el->spellcheck; +let _ = el->setSpellcheck(true); +let _ = el->style; /* let _ = setStyle el CSSStyleDeclaration.t; /* TODO: No way to make a CSSStyleDeclaration at the moment */*/ -let _ = tabIndex(el); -let _ = setTabIndex(el, 42); -let _ = title(el); -let _ = setTitle(el, "hovertext!"); -let _ = translate(el); -let _ = setTranslate(el, true); +let _ = el->tabIndex; +let _ = el->setTabIndex(42); +let _ = el->title; +let _ = el->setTitle("hovertext!"); +let _ = el->translate; +let _ = el->setTranslate(true); -blur(el); -click(el); -focus(el); -forceSpellCheck(el); +el->blur; +el->click; +el->focus; +el->forceSpellCheck; diff --git a/tests/Webapi/Dom/Webapi__Dom__KeyboardEvent__test.re b/tests/Webapi/Dom/Webapi__Dom__KeyboardEvent__test.re index 2168d53a..d134dd87 100644 --- a/tests/Webapi/Dom/Webapi__Dom__KeyboardEvent__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__KeyboardEvent__test.re @@ -4,34 +4,34 @@ open! KeyboardEvent; let event = make("my-event"); /* Event */ -let _ = bubbles(event); -let _ = cancelable(event); -let _ = composed(event); -let _ = currentTarget(event); -let _ = defaultPrevented(event); -let _ = eventPhase(event); -let _ = target(event); -let _ = timeStamp(event); -let _ = type_(event); -let _ = isTrusted(event); +let _ = event->bubbles; +let _ = event->cancelable; +let _ = event->composed; +let _ = event->currentTarget; +let _ = event->defaultPrevented; +let _ = event->eventPhase; +let _ = event->target; +let _ = event->timeStamp; +let _ = event->type_; +let _ = event->isTrusted; -preventDefault(event); -stopImmediatePropagation(event); -stopPropagation(event); +event->preventDefault; +event->stopImmediatePropagation; +event->stopPropagation; /* UIEvent */ -let _ = detail(event); -let _ = view(event); +let _ = event->detail; +let _ = event->view; /* KeyboardEvent */ -let _ = altKey(event); -let _ = code(event); -let _ = ctrlKey(event); -let _ = isComposing(event); -let _ = key(event); -let _ = locale(event); -let _ = location(event); -let _ = metaKey(event); -let _ = repeat(event); -let _ = shiftKey(event); -let _ = getModifierState(Alt, event); +let _ = event->altKey; +let _ = event->code; +let _ = event->ctrlKey; +let _ = event->isComposing; +let _ = event->key; +let _ = event->locale; +let _ = event->location; +let _ = event->metaKey; +let _ = event->repeat; +let _ = event->shiftKey; +let _ = event->getModifierState(Alt); diff --git a/tests/Webapi/Dom/Webapi__Dom__Location__test.re b/tests/Webapi/Dom/Webapi__Dom__Location__test.re index d64e4731..f0b45a2c 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Location__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Location__test.re @@ -1,30 +1,30 @@ open Webapi.Dom; open Location; -let _ = href(location); -let _ = setHref(location, "http://reason.ml"); -let _ = protocol(location); -let _ = setProtocol(location, "https"); -let _ = host(location); -let _ = setHost(location, "reason.ml"); -let _ = hostname(location); -let _ = setHostname(location, "reason.ml"); -let _ = port(location); -let _ = setPort(location, "443"); -let _ = pathname(location); -let _ = setPathname(location, "/reason/tools.html"); -let _ = search(location); -let _ = setSearch(location, "q=reasonml"); -let _ = hash(location); -let _ = setHash(location, "merlin-atom"); -let _ = username(location); -let _ = setUsername(location, "alonzo.church"); -let _ = password(location); -let _ = setPassword(location, "lambda-the-ultimate"); -let _ = origin(location); +let _ = location->href; +let _ = location->setHref("http://reason.ml"); +let _ = location->protocol; +let _ = location->setProtocol("https"); +let _ = location->host; +let _ = location->setHost("reason.ml"); +let _ = location->hostname; +let _ = location->setHostname("reason.ml"); +let _ = location->port; +let _ = location->setPort("443"); +let _ = location->pathname; +let _ = location->setPathname("/reason/tools.html"); +let _ = location->search; +let _ = location->setSearch("q=reasonml"); +let _ = location->hash; +let _ = location->setHash("merlin-atom"); +let _ = location->username; +let _ = location->setUsername("alonzo.church"); +let _ = location->password; +let _ = location->setPassword("lambda-the-ultimate"); +let _ = location->origin; -assign("http://reason.ml", location); -reload(location); -reloadWithForce(location); -replace("http://reason.ml", location); -let _ = toString(location); +location->assign("http://reason.ml"); +location->reload; +location->reloadWithForce; +location->replace("http://reason.ml"); +let _ = location->toString; diff --git a/tests/Webapi/Dom/Webapi__Dom__MouseEvent__test.re b/tests/Webapi/Dom/Webapi__Dom__MouseEvent__test.re index 71b04fd3..11d41be4 100644 --- a/tests/Webapi/Dom/Webapi__Dom__MouseEvent__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__MouseEvent__test.re @@ -4,44 +4,44 @@ open MouseEvent; let event = make("my-event"); /* Event */ -let _ = bubbles(event); -let _ = cancelable(event); -let _ = composed(event); -let _ = currentTarget(event); -let _ = defaultPrevented(event); -let _ = eventPhase(event); -let _ = target(event); -let _ = timeStamp(event); -let _ = type_(event); -let _ = isTrusted(event); +let _ = event->bubbles; +let _ = event->cancelable; +let _ = event->composed; +let _ = event->currentTarget; +let _ = event->defaultPrevented; +let _ = event->eventPhase; +let _ = event->target; +let _ = event->timeStamp; +let _ = event->type_; +let _ = event->isTrusted; -preventDefault(event); -stopImmediatePropagation(event); -stopPropagation(event); +event->preventDefault; +event->stopImmediatePropagation; +event->stopPropagation; /* UIEvent */ -let _ = detail(event); -let _ = view(event); +let _ = event->detail; +let _ = event->view; /* MouseEvent */ -let _ = altKey(event); -let _ = button(event); -let _ = buttons(event); -let _ = clientX(event); -let _ = clientY(event); -let _ = ctrlKey(event); -let _ = metaKey(event); -let _ = movementX(event); -let _ = movementY(event); -let _ = offsetX(event); -let _ = offsetY(event); -let _ = pageX(event); -let _ = pageY(event); -let _ = region(event); -let _ = relatedTarget(event); -let _ = screenX(event); -let _ = screenY(event); -let _ = shiftKey(event); -let _ = x(event); -let _ = y(event); -let _ = getModifierState(Alt, event); +let _ = event->altKey; +let _ = event->button; +let _ = event->buttons; +let _ = event->clientX; +let _ = event->clientY; +let _ = event->ctrlKey; +let _ = event->metaKey; +let _ = event->movementX; +let _ = event->movementY; +let _ = event->offsetX; +let _ = event->offsetY; +let _ = event->pageX; +let _ = event->pageY; +let _ = event->region; +let _ = event->relatedTarget; +let _ = event->screenX; +let _ = event->screenY; +let _ = event->shiftKey; +let _ = event->x; +let _ = event->y; +let _ = event->getModifierState(Alt); diff --git a/tests/Webapi/Dom/Webapi__Dom__NodeList__test.re b/tests/Webapi/Dom/Webapi__Dom__NodeList__test.re index 29a6f572..8d8a907e 100644 --- a/tests/Webapi/Dom/Webapi__Dom__NodeList__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__NodeList__test.re @@ -1,6 +1,6 @@ open Webapi.Dom; open NodeList; -let items = document |> Document.querySelectorAll(".item"); +let items = document->Document.querySelectorAll(".item"); -forEach((item, _) => Js.log(item), items); +items->forEach((item, _) => Js.log(item)); diff --git a/tests/Webapi/Dom/Webapi__Dom__Node__test.re b/tests/Webapi/Dom/Webapi__Dom__Node__test.re index 5d1a9130..863dc74d 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Node__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Node__test.re @@ -1,46 +1,46 @@ open Webapi.Dom; open Node; -let node = document |> Document.createElement("strong") |> Element.rootNode; -let node2 = document |> Document.createElement("small") |> Element.rootNode; -let node3 = document |> Document.createElement("small") |> Element.rootNode; +let node = document->Document.createElement("strong")->Element.rootNode; +let node2 = document->Document.createElement("small")->Element.rootNode; +let node3 = document->Document.createElement("small")->Element.rootNode; -let _ = childNodes(node); -let _ = firstChild(node); -let _ = lastChild(node); -let _ = nextSibling(node); -let _ = nodeName(node); -let _ = nodeType(node); -let _ = nodeValue(node); -let _ = setNodeValue(node, Js.Null.return("foo")); +let _ = node->childNodes; +let _ = node->firstChild; +let _ = node->lastChild; +let _ = node->nextSibling; +let _ = node->nodeName; +let _ = node->nodeType; +let _ = node->nodeValue; +let _ = node->setNodeValue(Js.Null.return("foo")); /* Not supported yet -let _ = setNodeValue(node, "foo"); -let _ = clearNodeValue(node); -*/ -let _ = ownerDocument(node); -let _ = parentNode(node); -let _ = parentElement(node); -let _ = previousSibling(node); -let _ = rootNode(node); -let _ = textContent(node); -let _ = setTextContent(node, "foo"); + let _ = node->setNodeValue("foo"); + let _ = node->clearNodeValue; + */ +let _ = node->ownerDocument; +let _ = node->parentNode; +let _ = node->parentElement; +let _ = node->previousSibling; +let _ = node->rootNode; +let _ = node->textContent; +let _ = node->setTextContent("foo"); -let _ = appendChild(node2, node); -let _ = cloneNode(node); -let _ = cloneNodeDeep(node); -let _ = compareDocumentPosition(node2, node); -let _ = contains(node2, node); -let _ = getRootNode(node); -let _ = getRootNodeComposed(node); -let _ = hasChildNodes(node); -let _ = insertBefore(node2, node3, node); -/***let _ = insertBefore(node2, None, node);*/ -let _ = isDefaultNamespace("http://...", node); -let _ = isEqualNode(node2, node); -let _ = isSameNode(node2, node); -let _ = lookupPrefix(node); -let _ = lookupNamespaceURI("https://...", node); -let _ = lookupDefaultNamespaceURI(node); -let _ = normalize(node); -let _ = removeChild(node2, node); -let _ = replaceChild(node3, node2, node); +let _ = node->appendChild(node2); +let _ = node->cloneNode; +let _ = node->cloneNodeDeep; +let _ = node->compareDocumentPosition(node2); +let _ = node->contains(node2); +let _ = node->getRootNode; +let _ = node->getRootNodeComposed; +let _ = node->hasChildNodes; +let _ = node->insertBefore(node2, node3); +/***let _ node->= insertBefore(node2, None);*/ +let _ = node->isDefaultNamespace("http://..."); +let _ = node->isEqualNode(node2); +let _ = node->isSameNode(node2); +let _ = node->lookupPrefix; +let _ = node->lookupNamespaceURI("https://..."); +let _ = node->lookupDefaultNamespaceURI; +let _ = node->normalize; +let _ = node->removeChild(node2); +let _ = node->replaceChild(node3, node2); diff --git a/tests/Webapi/Dom/Webapi__Dom__PointerEvent__test.re b/tests/Webapi/Dom/Webapi__Dom__PointerEvent__test.re index 676df6ac..059207b2 100644 --- a/tests/Webapi/Dom/Webapi__Dom__PointerEvent__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__PointerEvent__test.re @@ -4,54 +4,54 @@ open PointerEvent; let event = make("my-event"); /* Event */ -let _ = bubbles(event); -let _ = cancelable(event); -let _ = composed(event); -let _ = currentTarget(event); -let _ = defaultPrevented(event); -let _ = eventPhase(event); -let _ = target(event); -let _ = timeStamp(event); -let _ = type_(event); -let _ = isTrusted(event); +let _ = event->bubbles; +let _ = event->cancelable; +let _ = event->composed; +let _ = event->currentTarget; +let _ = event->defaultPrevented; +let _ = event->eventPhase; +let _ = event->target; +let _ = event->timeStamp; +let _ = event->type_; +let _ = event->isTrusted; -preventDefault(event); -stopImmediatePropagation(event); -stopPropagation(event); +event->preventDefault; +event->stopImmediatePropagation; +event->stopPropagation; /* UIEvent */ -let _ = detail(event); -let _ = view(event); +let _ = event->detail; +let _ = event->view; /* MouseEvent */ -let _ = altKey(event); -let _ = button(event); -let _ = buttons(event); -let _ = clientX(event); -let _ = clientY(event); -let _ = ctrlKey(event); -let _ = metaKey(event); -let _ = movementX(event); -let _ = movementY(event); -let _ = offsetX(event); -let _ = offsetY(event); -let _ = pageX(event); -let _ = pageY(event); -let _ = region(event); -let _ = relatedTarget(event); -let _ = screenX(event); -let _ = screenY(event); -let _ = shiftKey(event); -let _ = x(event); -let _ = y(event); -let _ = getModifierState(Alt, event); +let _ = event->altKey; +let _ = event->button; +let _ = event->buttons; +let _ = event->clientX; +let _ = event->clientY; +let _ = event->ctrlKey; +let _ = event->metaKey; +let _ = event->movementX; +let _ = event->movementY; +let _ = event->offsetX; +let _ = event->offsetY; +let _ = event->pageX; +let _ = event->pageY; +let _ = event->region; +let _ = event->relatedTarget; +let _ = event->screenX; +let _ = event->screenY; +let _ = event->shiftKey; +let _ = event->x; +let _ = event->y; +let _ = event->getModifierState(Alt); /* PointerEvent */ -let _ = pointerId(event); -let _ = width(event); -let _ = height(event); -let _ = pressure(event); -let _ = tiltX(event); -let _ = tiltY(event); -let _ = pointerType(event); -let _ = isPrimary(event); +let _ = event->pointerId; +let _ = event->width; +let _ = event->height; +let _ = event->pressure; +let _ = event->tiltX; +let _ = event->tiltY; +let _ = event->pointerType; +let _ = event->isPrimary; diff --git a/tests/Webapi/Dom/Webapi__Dom__Range__test.re b/tests/Webapi/Dom/Webapi__Dom__Range__test.re index e705039d..9c21cffb 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Range__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Range__test.re @@ -1,39 +1,39 @@ open Webapi.Dom; open Range; -let node = document |> Document.createElement("strong"); +let node = document->Document.createElement("strong"); let range = make(); -let _ = collapsed(range); -let _ = commonAncestorContainer(range); -let _ = endContainer(range); -let _ = endOffset(range); -let _ = startContainer(range); -let _ = startOffset(range); +let _ = range->collapsed; +let _ = range->commonAncestorContainer; +let _ = range->endContainer; +let _ = range->endOffset; +let _ = range->startContainer; +let _ = range->startOffset; -setStart(node, 0, range); -setEnd(node, 0, range); -setStartBefore(node, range); -setStartAfter(node, range); -setEndBefore(node, range); -setEndAfter(node, range); -selectNode(node, range); -selectNodeContents(node, range); -collapse(range); -collapseToStart(range); -let _ = cloneContents(range); -deleteContents(range); -let _ = extractContents(range); -insertNode(node, range); -surroundContents(node, range); -let _ = compareBoundaryPoints(0, range, range); -let _ = cloneRange(range); -detach(range); -let _ = toString(range); -let _ = comparePoint(node, 0, range); -let _ = createContextualFragment("stuff", range); -let _ = getBoundingClientRect(range); -let _ = getClientRects(range); -let _ = intersectsNode(node, range); -let _ = isPointInRange(node, 0, range); +range->setStart(node, 0); +range->setEnd(node, 0); +range->setStartBefore(node); +range->setStartAfter(node); +range->setEndBefore(node); +range->setEndAfter(node); +range->selectNode(node); +range->selectNodeContents(node); +range->collapse; +range->collapseToStart; +let _ = range->cloneContents; +range->deleteContents; +let _ = range->extractContents; +range->insertNode(node); +range->surroundContents(node); +let _ = range->compareBoundaryPoints(0, range); +let _ = range->cloneRange; +range->detach; +let _ = range->toString; +let _ = range->comparePoint(node, 0); +let _ = range->createContextualFragment("stuff"); +let _ = range->getBoundingClientRect; +let _ = range->getClientRects; +let _ = range->intersectsNode(node); +let _ = range->isPointInRange(node, 0); diff --git a/tests/Webapi/Dom/Webapi__Dom__Selection__test.re b/tests/Webapi/Dom/Webapi__Dom__Selection__test.re index 5050ed1d..7d19d993 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Selection__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Selection__test.re @@ -1,32 +1,30 @@ open Webapi.Dom; open Selection; -let node = document |> Document.createElement("strong"); +let node = document->Document.createElement("strong"); let sel = - document |> Document.asHtmlDocument - |> TestHelpers.unsafelyUnwrapOption - |> HtmlDocument.getSelection; + document->Document.asHtmlDocument->TestHelpers.unsafelyUnwrapOption->HtmlDocument.getSelection; let range = Range.make(); -let _ = anchorNode(sel); -let _ = anchorOffset(sel); -let _ = focusNode(sel); -let _ = focusOffset(sel); -let _ = isCollapsed(sel); -let _ = rangeCount(sel); -let _ = getRangeAt(0, sel); +let _ = sel->anchorNode; +let _ = sel->anchorOffset; +let _ = sel->focusNode; +let _ = sel->focusOffset; +let _ = sel->isCollapsed; +let _ = sel->rangeCount; +let _ = sel->getRangeAt(0); -collapse(node, 0, sel); -extend(node, 0, sel); -collapseToStart(sel); -collapseToEnd(sel); -selectAllChildren(node, sel); -addRange(range, sel); -removeRange(range, sel); -removeAllRanges(sel); -deleteFromDocument(sel); -setBaseAndExtent(node, 0, node, 0, sel); -let _ = toString(sel); -let _ = containsNode(node, sel); -let _ = containsNodePartly(node, sel); +sel->collapse(node, 0); +sel->extend(node, 0); +sel->collapseToStart; +sel->collapseToEnd; +sel->selectAllChildren(node); +sel->addRange(range); +sel->removeRange(range); +sel->removeAllRanges; +sel->deleteFromDocument; +sel->setBaseAndExtent(node, 0, node, 0); +let _ = sel->toString; +let _ = sel->containsNode(node); +let _ = sel->containsNodePartly(node); diff --git a/tests/Webapi/Dom/Webapi__Dom__Text__test.re b/tests/Webapi/Dom/Webapi__Dom__Text__test.re index 602106e0..af248c7f 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Text__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Text__test.re @@ -1,7 +1,5 @@ open Webapi.Dom; -let node = - document |> Document.createTextNode("text") - |> Text.asNode; +let node = document->Document.createTextNode("text")->Text.asNode; let text = Text.ofNode(node); diff --git a/tests/Webapi/Dom/Webapi__Dom__Window__test.re b/tests/Webapi/Dom/Webapi__Dom__Window__test.re index 57d495d5..6c6839cb 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Window__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Window__test.re @@ -1,8 +1,8 @@ open Webapi.Dom; -let el = document |> Document.createElement("strong"); -let event = document |> Document.createEvent("my-event"); -let handleClick = (_) => print_endline("asd"); +let el = document->Document.createElement("strong"); +let event = document->Document.createEvent("my-event"); +let handleClick = _ => print_endline("asd"); let _ = Window.console(window); let _ = Window.crypto(window); @@ -45,30 +45,30 @@ let _ = Window.toolbar(window); let _ = Window.top(window); let _ = Window.window(window); -Window.alert("hello!", window); +window->Window.alert("hello!"); Window.blur(window); -let idleId = Window.requestIdleCallback((_) => (), window); /* out of order */ -Window.cancelIdleCallback(idleId, window); +let idleId = window->Window.requestIdleCallback(_ => ()); /* out of order */ +window->Window.cancelIdleCallback(idleId); Window.close(window); -let _ = Window.confirm("is ok?", window); +let _ = window->Window.confirm("is ok?"); Window.focus(window); -let _ = Window.getComputedStyle(el, window); -let _ = Window.getComputedStyleWithPseudoElement(el, "hover", window); +let _ = window->Window.getComputedStyle(el); +let _ = window->Window.getComputedStyleWithPseudoElement(el, "hover"); let _ = Window.getSelection(window); -let _ = Window.matchMedia("max-height: 400", window); -let _ = Window.moveBy(10, (-10), window); -let _ = Window.moveTo(120, 300, window); -let _ = Window.open_(~url="http://...", ~name="my window", ~features="menubar=yes", window); -let _ = Window.open_(~url="http://...", ~name="my window", window); -Window.postMessage("my message", "*", window) /* Currently no way to make transferables */; /*Window.postMessageWithTransfers "my message" "*" transfers window;*/ +let _ = window->Window.matchMedia("max-height: 400"); +let _ = window->Window.moveBy(10, -10); +let _ = window->Window.moveTo(120, 300); +let _ = window->Window.open_(~url="http://...", ~name="my window", ~features="menubar=yes"); +let _ = window->Window.open_(~url="http://...", ~name="my window"); +window->Window.postMessage("my message", "*"); Window.print(window); -let _ = Window.prompt("type you password, please?", window); -let _ = Window.promptWithDefault("type password or use this?", "password", window); -let _ = Window.requestIdleCallbackWithOptions((_) => (), {"timeout": 1000}, window); -let _ = Window.resizeBy(10, (-10), window); -let _ = Window.resizeTo(120, 300, window); -let _ = Window.scroll(0.0, 0.0, window); -let _ = Window.scrollBy(10.0, (-10.0), window); -let _ = Window.scrollTo(120.5, 300.3, window); +let _ = window->Window.prompt("type you password, please?"); +let _ = window->Window.promptWithDefault("type password or use this?", "password"); +let _ = window->Window.requestIdleCallbackWithOptions(_ => (), {"timeout": 1000}); +let _ = window->Window.resizeBy(10, -10); +let _ = window->Window.resizeTo(120, 300); +let _ = window->Window.scroll(0.0, 0.0); +let _ = window->Window.scrollBy(10.0, -10.0); +let _ = window->Window.scrollTo(120.5, 300.3); Window.stop(window); Window.setOnLoad(window, () => print_endline("load")); diff --git a/tests/Webapi/Webapi__Blob__test.re b/tests/Webapi/Webapi__Blob__test.re index cd42b4f6..c7d7fdbc 100644 --- a/tests/Webapi/Webapi__Blob__test.re +++ b/tests/Webapi/Webapi__Blob__test.re @@ -1,20 +1,19 @@ open Webapi.Blob; -let test_arrayBuffer = blob => blob |> arrayBuffer |> Js.Promise.then_(buffer => - buffer - |> Js.Typed_array.ArrayBuffer.byteLength - |> Js.log - |> Js.Promise.resolve); +let test_arrayBuffer = blob => + blob + |> arrayBuffer + |> Js.Promise.then_(buffer => + buffer |> Js.Typed_array.ArrayBuffer.byteLength |> Js.log |> Js.Promise.resolve + ); let test_size = blob => blob |> size |> Js.log; -let test_slice = blob => test_size(slice(~start=0, blob)); +let test_slice = blob => test_size(blob->slice(~start=0, ())); let test_stream = blob => blob |> stream; -let test_text = blob => blob |> text |> Js.Promise.then_(string => - string - |> Js.log - |> Js.Promise.resolve); +let test_text = blob => + blob |> text |> Js.Promise.then_(string => string |> Js.log |> Js.Promise.resolve); let test_type = blob => blob |> type_ |> Js.log; diff --git a/tests/Webapi/Webapi__ReadableStream__test.re b/tests/Webapi/Webapi__ReadableStream__test.re index b07d51fd..7861bb9e 100644 --- a/tests/Webapi/Webapi__ReadableStream__test.re +++ b/tests/Webapi/Webapi__ReadableStream__test.re @@ -15,7 +15,7 @@ module DefaultReader__test = { let test_cancelWith = reader => reader - |> cancelWith("reason") + -> cancelWith("reason") |> Js.Promise.then_(reason => reason |> Js.log @@ -37,7 +37,7 @@ let test_locked = stream => locked(stream); let test_cancel = stream => cancel(stream); -let test_cancelWith = stream => cancelWith("reason", stream); +let test_cancelWith = stream => stream->cancelWith("reason"); let test_getReader = stream => getReader(stream); diff --git a/tests/Webapi/Webapi__ResizeObserver__test.re b/tests/Webapi/Webapi__ResizeObserver__test.re index fb839bba..e634848a 100644 --- a/tests/Webapi/Webapi__ResizeObserver__test.re +++ b/tests/Webapi/Webapi__ResizeObserver__test.re @@ -1,13 +1,14 @@ -let el = Webapi.Dom.document |> Webapi.Dom.Document.createElement("strong"); +let el = Webapi.Dom.document->Webapi.Dom.Document.createElement("strong"); -let handler = (entries) => { +let handler = entries => { let entry = entries[0]; - let _: Dom.domRect = Webapi.ResizeObserver.ResizeObserverEntry.contentRect(entry); - let _: Dom.element = Webapi.ResizeObserver.ResizeObserverEntry.target(entry); -} + let _: Dom.domRect = entry->Webapi.ResizeObserver.ResizeObserverEntry.contentRect; + let _: Dom.element = entry->Webapi.ResizeObserver.ResizeObserverEntry.target; + (); +}; let observer = Webapi.ResizeObserver.make(handler); -Webapi.ResizeObserver.observe(observer, el); -Webapi.ResizeObserver.unobserve(observer, el); -Webapi.ResizeObserver.disconnect(observer); +observer->Webapi.ResizeObserver.observe(el); +observer->Webapi.ResizeObserver.unobserve(el); +observer->Webapi.ResizeObserver.disconnect; diff --git a/tests/Webapi/Webapi__Url__test.re b/tests/Webapi/Webapi__Url__test.re index 73befaec..c91020a7 100644 --- a/tests/Webapi/Webapi__Url__test.re +++ b/tests/Webapi/Webapi__Url__test.re @@ -1,6 +1,6 @@ open Webapi.Url; let params = URLSearchParams.make("key1=value1&key2=value2"); -URLSearchParams.forEach(Js.log2, params); +params->URLSearchParams.forEach(Js.log2); let test_entries = params => params |> URLSearchParams.entries |> Js.Array.from; Js.log(test_entries(params)); From 784a1349b592f1ed810c178875bb01a16c759143 Mon Sep 17 00:00:00 2001 From: Andrew Herron Date: Mon, 31 May 2021 13:17:00 +1000 Subject: [PATCH 2/7] TINY-7416: Reformat everything --- src/Webapi.re | 7 +- src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re | 192 +- src/Webapi/Canvas/Webapi__Canvas__WebGl.re | 54 +- src/Webapi/Dom/Webapi__Dom__AnimationEvent.re | 14 +- src/Webapi/Dom/Webapi__Dom__Attr.re | 22 +- .../Dom/Webapi__Dom__BeforeUnloadEvent.re | 10 +- src/Webapi/Dom/Webapi__Dom__CdataSection.re | 24 +- src/Webapi/Dom/Webapi__Dom__CharacterData.re | 34 +- src/Webapi/Dom/Webapi__Dom__ChildNode.re | 2 +- src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re | 10 +- src/Webapi/Dom/Webapi__Dom__CloseEvent.re | 14 +- src/Webapi/Dom/Webapi__Dom__Comment.re | 24 +- .../Dom/Webapi__Dom__CompositionEvent.re | 14 +- .../Dom/Webapi__Dom__CssStyleDeclaration.re | 264 +- src/Webapi/Dom/Webapi__Dom__CustomEvent.re | 8 +- src/Webapi/Dom/Webapi__Dom__Document.re | 156 +- .../Dom/Webapi__Dom__DocumentFragment.re | 16 +- src/Webapi/Dom/Webapi__Dom__DocumentType.re | 18 +- .../Dom/Webapi__Dom__DomImplementation.re | 30 +- src/Webapi/Dom/Webapi__Dom__DomRect.re | 18 +- src/Webapi/Dom/Webapi__Dom__DomStringMap.re | 9 +- src/Webapi/Dom/Webapi__Dom__DomTokenList.re | 30 +- src/Webapi/Dom/Webapi__Dom__DragEvent.re | 18 +- src/Webapi/Dom/Webapi__Dom__Element.re | 3 +- src/Webapi/Dom/Webapi__Dom__ErrorEvent.re | 18 +- src/Webapi/Dom/Webapi__Dom__Event.re | 97 +- src/Webapi/Dom/Webapi__Dom__EventTarget.re | 2208 ++++++++++++++--- src/Webapi/Dom/Webapi__Dom__FocusEvent.re | 14 +- .../Dom/Webapi__Dom__GlobalEventHandlers.re | 51 +- src/Webapi/Dom/Webapi__Dom__History.re | 18 +- src/Webapi/Dom/Webapi__Dom__HtmlCollection.re | 9 +- src/Webapi/Dom/Webapi__Dom__HtmlDocument.re | 14 +- src/Webapi/Dom/Webapi__Dom__HtmlElement.re | 158 +- .../Dom/Webapi__Dom__HtmlFormElement.re | 69 +- .../Dom/Webapi__Dom__HtmlImageElement.re | 77 +- .../Dom/Webapi__Dom__HtmlInputElement.re | 3 +- .../Dom/Webapi__Dom__IdbVersionChangeEvent.re | 12 +- src/Webapi/Dom/Webapi__Dom__Image.re | 13 +- src/Webapi/Dom/Webapi__Dom__InputEvent.re | 16 +- src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re | 34 +- src/Webapi/Dom/Webapi__Dom__Location.re | 52 +- .../Dom/Webapi__Dom__MutationObserver.re | 8 +- src/Webapi/Dom/Webapi__Dom__MutationRecord.re | 18 +- src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re | 18 +- src/Webapi/Dom/Webapi__Dom__Node.re | 94 +- src/Webapi/Dom/Webapi__Dom__NodeIterator.re | 16 +- src/Webapi/Dom/Webapi__Dom__NodeList.re | 8 +- .../Webapi__Dom__NonDocumentTypeChildNode.re | 4 +- .../Dom/Webapi__Dom__NonElementParentNode.re | 2 +- .../Dom/Webapi__Dom__PageTransitionEvent.re | 10 +- src/Webapi/Dom/Webapi__Dom__ParentNode.re | 12 +- src/Webapi/Dom/Webapi__Dom__PointerEvent.re | 34 +- src/Webapi/Dom/Webapi__Dom__PopStateEvent.re | 10 +- .../Dom/Webapi__Dom__ProcessingInstruction.re | 18 +- src/Webapi/Dom/Webapi__Dom__ProgressEvent.re | 14 +- src/Webapi/Dom/Webapi__Dom__Range.re | 20 +- src/Webapi/Dom/Webapi__Dom__RelatedEvent.re | 10 +- src/Webapi/Dom/Webapi__Dom__Selection.re | 42 +- src/Webapi/Dom/Webapi__Dom__ShadowRoot.re | 22 +- src/Webapi/Dom/Webapi__Dom__Slotable.re | 2 +- src/Webapi/Dom/Webapi__Dom__StorageEvent.re | 18 +- src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re | 22 +- src/Webapi/Dom/Webapi__Dom__Text.re | 38 +- src/Webapi/Dom/Webapi__Dom__TimeEvent.re | 12 +- src/Webapi/Dom/Webapi__Dom__TouchEvent.re | 30 +- src/Webapi/Dom/Webapi__Dom__TrackEvent.re | 10 +- .../Dom/Webapi__Dom__TransitionEvent.re | 14 +- src/Webapi/Dom/Webapi__Dom__TreeWalker.re | 24 +- src/Webapi/Dom/Webapi__Dom__Types.re | 7 +- src/Webapi/Dom/Webapi__Dom__UiEvent.re | 16 +- src/Webapi/Dom/Webapi__Dom__ValidityState.re | 22 +- .../Dom/Webapi__Dom__WebGlContextEvent.re | 10 +- src/Webapi/Dom/Webapi__Dom__WheelEvent.re | 28 +- src/Webapi/Dom/Webapi__Dom__Window.re | 167 +- ...pi__ResizeObserver__ResizeObserverEntry.re | 4 +- src/Webapi/Webapi__Base64.re | 4 +- src/Webapi/Webapi__Canvas.re | 12 +- src/Webapi/Webapi__Dom.re | 9 +- src/Webapi/Webapi__File.re | 11 +- src/Webapi/Webapi__Performance.re | 2 +- src/Webapi/Webapi__ResizeObserver.re | 12 +- .../Canvas/Webapi__Canvas__Canvas2d__test.re | 4 +- .../Dom/Webapi__Dom__HtmlFormElement__test.re | 2 +- tests/Webapi/Webapi__Blob__test.re | 13 +- tests/Webapi/Webapi__File__test.re | 6 +- tests/Webapi/Webapi__Performace__test.re | 5 +- tests/Webapi/Webapi__ReadableStream__test.re | 27 +- tests/Webapi/Webapi__Url__test.re | 2 +- tests/testHelpers.re | 5 +- 89 files changed, 3336 insertions(+), 1416 deletions(-) diff --git a/src/Webapi.re b/src/Webapi.re index aab2ab05..deb97416 100644 --- a/src/Webapi.re +++ b/src/Webapi.re @@ -31,6 +31,7 @@ module Url = Webapi__Url; type rafId; -[@val] external requestAnimationFrame : (float => unit) => unit = ""; -[@val] external requestCancellableAnimationFrame : (float => unit) => rafId = "requestAnimationFrame"; -[@val] external cancelAnimationFrame : rafId => unit = ""; +[@val] external requestAnimationFrame: (float => unit) => unit; +[@val] +external requestCancellableAnimationFrame: (float => unit) => rafId = "requestAnimationFrame"; +[@val] external cancelAnimationFrame: rafId => unit; diff --git a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re index a1db0ad8..56cb21be 100644 --- a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re +++ b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re @@ -78,131 +78,152 @@ type style(_) = | Pattern: style(pattern); /* 2d Canvas API, following https://simon.html5.org/dump/html5-canvas-cheat-sheet.html */ -[@send] external save: t => unit = ""; -[@send] external restore: t => unit = ""; +[@send] external save: t => unit; +[@send] external restore: t => unit; /* Transformation */ -[@send] external scale: (t, ~x: float, ~y: float) => unit = ""; -[@send] external rotate: t => float => unit = ""; -[@send] external translate: (t, ~x: float, ~y: float) => unit = ""; -[@send] external transform: (t, ~m11: float, ~m12: float, ~m21: float, ~m22: float, ~dx: float, ~dy: float) => unit = ""; -[@send] external setTransform: (t, ~m11: float, ~m12: float, ~m21: float, ~m22: float, ~dx: float, ~dy: float) => unit = ""; +[@send] external scale: (t, ~x: float, ~y: float) => unit; +[@send] external rotate: (t, float) => unit; +[@send] external translate: (t, ~x: float, ~y: float) => unit; +[@send] +external transform: + (t, ~m11: float, ~m12: float, ~m21: float, ~m22: float, ~dx: float, ~dy: float) => unit; +[@send] +external setTransform: + (t, ~m11: float, ~m12: float, ~m21: float, ~m22: float, ~dx: float, ~dy: float) => unit; /* Compositing */ -[@set] external globalAlpha : (t, float) => unit = ""; -[@set] external globalCompositeOperation : (t, Composite.t) => unit = ""; +[@set] external globalAlpha: (t, float) => unit; +[@set] external globalCompositeOperation: (t, Composite.t) => unit; /* Line Styles */ -[@set] external lineWidth : (t, float) => unit = ""; -[@set] external lineCap : (t, LineCap.t) => unit = ""; -[@set] external lineJoin : (t, LineJoin.t) => unit = ""; -[@set] external miterLimit : (t, float) => unit = ""; +[@set] external lineWidth: (t, float) => unit; +[@set] external lineCap: (t, LineCap.t) => unit; +[@set] external lineJoin: (t, LineJoin.t) => unit; +[@set] external miterLimit: (t, float) => unit; /* Colors, Styles, and Shadows */ -[@set] external setFillStyle : (t, 'a) => unit = "fillStyle"; -[@set] external setStrokeStyle : (t, 'a) => unit = "strokeStyle"; +[@set] external setFillStyle: (t, 'a) => unit = "fillStyle"; +[@set] external setStrokeStyle: (t, 'a) => unit = "strokeStyle"; /* in re unused warnings awaiting release of https://github.com/bloomberg/bucklescript/issues/1656 to just use [@@bs.set] directly with an ignored (style a) */ -let setStrokeStyle = (type a, ctx: t, _: style(a), v: a) => - setStrokeStyle(ctx, v); +let setStrokeStyle = (type a, ctx: t, _: style(a), v: a) => setStrokeStyle(ctx, v); -let setFillStyle = (type a, ctx: t, _: style(a), v: a) => - setFillStyle(ctx, v); +let setFillStyle = (type a, ctx: t, _: style(a), v: a) => setFillStyle(ctx, v); -let reifyStyle = (type a, x: 'a) : (style(a), a) => { - let isCanvasGradient: 'a => bool = [%raw {| +let reifyStyle = (type a, x: 'a): (style(a), a) => { + let isCanvasGradient: 'a => bool = [%raw + {| function(x) { return x instanceof CanvasGradient; } - |}]; + |} + ]; - let isCanvasPattern: 'a => bool = [%raw {| + let isCanvasPattern: 'a => bool = [%raw + {| function(x) { return x instanceof CanvasPattern; } - |}]; + |} + ]; ( - if (Js.typeof(x) == "string") Obj.magic(String) - else if (isCanvasGradient(x)) Obj.magic(Gradient) - else if (isCanvasPattern(x)) Obj.magic(Pattern) - else invalid_arg( - "Unknown canvas style kind. Known values are: String, CanvasGradient, CanvasPattern"), - Obj.magic(x) + if (Js.typeof(x) == "string") { + Obj.magic(String); + } else if (isCanvasGradient(x)) { + Obj.magic(Gradient); + } else if (isCanvasPattern(x)) { + Obj.magic(Pattern); + } else { + invalid_arg( + "Unknown canvas style kind. Known values are: String, CanvasGradient, CanvasPattern", + ); + }, + Obj.magic(x), ); }; -[@get] external fillStyle : t => 'a = ""; -[@get] external strokeStyle : t => 'a = ""; +[@get] external fillStyle: t => 'a; +[@get] external strokeStyle: t => 'a; -let fillStyle = (ctx: t) => - ctx |> fillStyle |> reifyStyle; +let fillStyle = (ctx: t) => ctx->fillStyle->reifyStyle; -let strokeStyle = (ctx: t) => - ctx |> strokeStyle |> reifyStyle; +let strokeStyle = (ctx: t) => ctx->strokeStyle->reifyStyle; -[@set] external shadowOffsetX : (t, float) => unit = ""; -[@set] external shadowOffsetY : (t, float) => unit = ""; -[@set] external shadowBlur : (t, float) => unit = ""; -[@set] external shadowColor : (t, string) => unit = ""; +[@set] external shadowOffsetX: (t, float) => unit; +[@set] external shadowOffsetY: (t, float) => unit; +[@set] external shadowBlur: (t, float) => unit; +[@set] external shadowColor: (t, string) => unit; /* Gradients */ -[@send] external createLinearGradient: (t, ~x0: float, ~y0: float, ~x1: float, ~y1: float) => gradient = ""; -[@send] external createRadialGradient: (t, ~x0: float, ~y0: float, ~x1: float, ~y1: float, ~r0: float, ~r1: float) => gradient = ""; -[@send] external addColorStop: (gradient, float, string) => unit = ""; -[@val] external createPattern : ( +[@send] +external createLinearGradient: (t, ~x0: float, ~y0: float, ~x1: float, ~y1: float) => gradient; +[@send] +external createRadialGradient: + (t, ~x0: float, ~y0: float, ~x1: float, ~y1: float, ~r0: float, ~r1: float) => gradient; +[@send] external addColorStop: (gradient, float, string) => unit; +[@val] +external createPattern: + ( t, Dom.element, [@string] [ | `repeat - [@as "repeat-x"] | `repeatX - [@as "repeat-y"] | `repeatY - [@as "no-repeat"] | `noRepeat + | [@as "repeat-x"] `repeatX + | [@as "repeat-y"] `repeatY + | [@as "no-repeat"] `noRepeat ] - ) - => pattern = ""; + ) => + pattern; /* Paths */ -[@send] external beginPath: t => unit = ""; -[@send] external closePath: t => unit = ""; -[@send] external fill: t => unit = ""; -[@send] external stroke: t => unit = ""; -[@send] external clip: t => unit = ""; -[@send] external moveTo: (t, ~x: float, ~y: float) => unit = ""; -[@send] external lineTo: (t, ~x: float, ~y: float) => unit = ""; -[@send] external quadraticCurveTo: (t, ~cp1x: float, ~cp1y: float, ~x: float, ~y: float) => unit = ""; -[@send] external bezierCurveTo: (t, ~cp1x: float, ~cp1y: float, ~cp2x: float, ~cp2y: float, ~x: float, ~y: float) => unit = ""; -[@send] external arcTo: (t, ~x1: float, ~y1: float, ~x2: float, ~y2: float, ~r: float) => unit = ""; -[@send] external arc: (t, ~x: float, ~y: float, ~r: float, ~startAngle: float, ~endAngle: float, ~anticw: bool) => unit = ""; -[@send] external rect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; -[@send] external isPointInPath: (t, ~x: float, ~y: float) => bool = ""; +[@send] external beginPath: t => unit; +[@send] external closePath: t => unit; +[@send] external fill: t => unit; +[@send] external stroke: t => unit; +[@send] external clip: t => unit; +[@send] external moveTo: (t, ~x: float, ~y: float) => unit; +[@send] external lineTo: (t, ~x: float, ~y: float) => unit; +[@send] external quadraticCurveTo: (t, ~cp1x: float, ~cp1y: float, ~x: float, ~y: float) => unit; +[@send] +external bezierCurveTo: + (t, ~cp1x: float, ~cp1y: float, ~cp2x: float, ~cp2y: float, ~x: float, ~y: float) => unit; +[@send] external arcTo: (t, ~x1: float, ~y1: float, ~x2: float, ~y2: float, ~r: float) => unit; +[@send] +external arc: + (t, ~x: float, ~y: float, ~r: float, ~startAngle: float, ~endAngle: float, ~anticw: bool) => unit; +[@send] external rect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit; +[@send] external isPointInPath: (t, ~x: float, ~y: float) => bool; /* Text */ -[@set] external font : (t, string) => unit = ""; -[@set] external textAlign : (t, string) => unit = ""; -[@set] external textBaseline : (t, string) => unit = ""; -[@send] external fillText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?) => unit = ""; -[@send] external strokeText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?) => unit = ""; -[@send] external measureText: t => string => measureText = ""; -[@get] external width : measureText => float = ""; +[@set] external font: (t, string) => unit; +[@set] external textAlign: (t, string) => unit; +[@set] external textBaseline: (t, string) => unit; +[@send] external fillText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?) => unit; +[@send] external strokeText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?) => unit; +[@send] external measureText: (t, string) => measureText; +[@get] external width: measureText => float; /* Rectangles */ -[@send] external fillRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; -[@send] external strokeRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; -[@send] external clearRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit = ""; +[@send] external fillRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit; +[@send] external strokeRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit; +[@send] external clearRect: (t, ~x: float, ~y: float, ~w: float, ~h: float) => unit; -[@send] external createImageDataCoords : (t, ~width: float, ~height: float) => Webapi__Dom__Image.t = "createImageData"; -[@send] external createImageDataFromImage : (t, Webapi__Dom__Image.t) => Webapi__Dom__Image.t = "createImageData"; +[@send] +external createImageDataCoords: (t, ~width: float, ~height: float) => Webapi__Dom__Image.t = + "createImageData"; +[@send] +external createImageDataFromImage: (t, Webapi__Dom__Image.t) => Webapi__Dom__Image.t = + "createImageData"; -[@send] external getImageData : (t, ~sx: float, ~sy: float, ~sw: float, ~sh: float) => Webapi__Dom__Image.t = ""; +[@send] +external getImageData: (t, ~sx: float, ~sy: float, ~sw: float, ~sh: float) => Webapi__Dom__Image.t; -[@send] external putImageData : ( - t, - ~imageData: Webapi__Dom__Image.t, - ~dx: float, - ~dy: float - ) - => unit = ""; +[@send] +external putImageData: (t, ~imageData: Webapi__Dom__Image.t, ~dx: float, ~dy: float) => unit; -[@send] external putImageDataWithDirtyRect : ( +[@send] +external putImageDataWithDirtyRect: + ( t, ~imageData: Webapi__Dom__Image.t, ~dx: float, @@ -211,5 +232,6 @@ let strokeStyle = (ctx: t) => ~dirtyY: float, ~dirtyWidth: float, ~dirtyHeight: float - ) - => unit = "putImageData"; + ) => + unit = + "putImageData"; diff --git a/src/Webapi/Canvas/Webapi__Canvas__WebGl.re b/src/Webapi/Canvas/Webapi__Canvas__WebGl.re index bb85861e..7dbba4a8 100644 --- a/src/Webapi/Canvas/Webapi__Canvas__WebGl.re +++ b/src/Webapi/Canvas/Webapi__Canvas__WebGl.re @@ -66,40 +66,42 @@ let _STATIC_DRAW: int = 35044; let _DYNAMIC_DRAW: int = 35048; /* void clear(GLbitfield mask); */ -[@send] external clear : (glT, int) => unit = "clear"; +[@send] external clear: (glT, int) => unit = "clear"; /* void clearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); */ -[@send] external clearColor : (glT, float, float, float, float) => unit = "clearColor"; +[@send] external clearColor: (glT, float, float, float, float) => unit = "clearColor"; /* void enable(GLenum cap); */ -[@send] external enable : (glT, int) => unit = "enable"; +[@send] external enable: (glT, int) => unit = "enable"; /* void disable(GLenum cap); */ -[@send] external disable : (glT, int) => unit = "disable"; +[@send] external disable: (glT, int) => unit = "disable"; /* void blendFunc(GLenum sfactor, GLenum dfactor); */ -[@send] external blendFunc : (glT, int, int) => unit = "blendFunc"; +[@send] external blendFunc: (glT, int, int) => unit = "blendFunc"; /* void cullFace(GLenum mode); */ -[@send] external cullFace : (glT, int) => unit = "cullFace"; -[@send] external createBuffer : glT => bufferT = "createBuffer"; -[@send] external deleteBuffer : (glT, bufferT) => unit = "deleteBuffer"; -[@send] external bindBuffer : (glT, int, bufferT) => unit = "bindBuffer"; -[@send] external bufferData : (glT, int, Js.Typed_array.Uint16Array.t, int) => unit = "bufferData"; -[@send] external bufferFloatData : (glT, int, Js.Typed_array.Float32Array.t, int) => unit = "bufferData"; -[@send] external createProgram : glT => programT = "createProgram"; -[@send] external linkProgram : (glT, programT) => unit = "linkProgram"; -[@send] external useProgram : (glT, programT) => unit = "useProgram"; -[@send] external getProgramInfoLog : (glT, programT) => string = "getProgramInfoLog"; -[@send] external bindAttribLocation : (glT, programT, int, string) => unit = "bindAttribLocation"; -[@send] external createShader : (glT, int) => shaderT = "createShader"; -[@send] external shaderSource : (glT, shaderT, string) => unit = "shaderSource"; -[@send] external compileShader : (glT, shaderT) => unit = "compileShader"; -[@send] external attachShader : (glT, programT, shaderT) => unit = "attachShader"; -[@send] external getShaderInfoLog : (glT, shaderT) => string = "getShaderInfoLog"; +[@send] external cullFace: (glT, int) => unit = "cullFace"; +[@send] external createBuffer: glT => bufferT = "createBuffer"; +[@send] external deleteBuffer: (glT, bufferT) => unit = "deleteBuffer"; +[@send] external bindBuffer: (glT, int, bufferT) => unit = "bindBuffer"; +[@send] external bufferData: (glT, int, Js.Typed_array.Uint16Array.t, int) => unit = "bufferData"; +[@send] +external bufferFloatData: (glT, int, Js.Typed_array.Float32Array.t, int) => unit = "bufferData"; +[@send] external createProgram: glT => programT = "createProgram"; +[@send] external linkProgram: (glT, programT) => unit = "linkProgram"; +[@send] external useProgram: (glT, programT) => unit = "useProgram"; +[@send] external getProgramInfoLog: (glT, programT) => string = "getProgramInfoLog"; +[@send] external bindAttribLocation: (glT, programT, int, string) => unit = "bindAttribLocation"; +[@send] external createShader: (glT, int) => shaderT = "createShader"; +[@send] external shaderSource: (glT, shaderT, string) => unit = "shaderSource"; +[@send] external compileShader: (glT, shaderT) => unit = "compileShader"; +[@send] external attachShader: (glT, programT, shaderT) => unit = "attachShader"; +[@send] external getShaderInfoLog: (glT, shaderT) => string = "getShaderInfoLog"; /* void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset); */ -[@send] external drawElements : (glT, int, int, int, int) => unit = "drawElements"; +[@send] external drawElements: (glT, int, int, int, int) => unit = "drawElements"; /* void enableVertexAttribArray(GLuint index); */ -[@send] external enableVertexAttribArray : (glT, int) => unit = "enableVertexAttribArray"; +[@send] external enableVertexAttribArray: (glT, int) => unit = "enableVertexAttribArray"; /* void vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); */ -[@send] external vertexAttribPointer : (glT, int, int, int, bool, int, int) => unit = "vertexAttribPointer"; +[@send] +external vertexAttribPointer: (glT, int, int, int, bool, int, int) => unit = "vertexAttribPointer"; /* GLint gl.getAttribLocation(program, name); */ -[@send] external getAttribLocation : (glT, programT, string) => int = "getAttribLocation"; +[@send] external getAttribLocation: (glT, programT, string) => int = "getAttribLocation"; /* void gl.drawArrays(mode, first, count); */ -[@send] external drawArrays : (glT, int, int, int) => unit = "drawArrays"; +[@send] external drawArrays: (glT, int, int, int) => unit = "drawArrays"; diff --git a/src/Webapi/Dom/Webapi__Dom__AnimationEvent.re b/src/Webapi/Dom/Webapi__Dom__AnimationEvent.re index 18b6e425..c21e8057 100644 --- a/src/Webapi/Dom/Webapi__Dom__AnimationEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__AnimationEvent.re @@ -1,10 +1,12 @@ type t = Dom.animationEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "AnimationEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "AnimationEvent"; +[@new] external make: string => t = "AnimationEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "AnimationEvent"; -[@get] external animationName : t => string = ""; -[@get] external elapsedTime : t => float = ""; -[@get] external pseudoElement : t => string /* enum-ish */ = ""; +[@get] external animationName: t => string; +[@get] external elapsedTime: t => float; +[@get] external pseudoElement: t => string /* enum-ish */; diff --git a/src/Webapi/Dom/Webapi__Dom__Attr.re b/src/Webapi/Dom/Webapi__Dom__Attr.re index 85cb3e05..87bbffc9 100644 --- a/src/Webapi/Dom/Webapi__Dom__Attr.re +++ b/src/Webapi/Dom/Webapi__Dom__Attr.re @@ -1,12 +1,16 @@ type t = Dom.attr; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); -[@get] external namespaceURI : t => string = ""; -[@get] external prefix : t => string = ""; -[@get] external localName : t => string = ""; -[@get] external name : t => string = ""; -[@get] external value : t => string = ""; -[@get] [@return nullable] external ownerElement : t => option(Dom.element) = ""; -[@get] external specified : t => bool = ""; /* useless; always returns true (exact wording from spec) */ +[@get] external namespaceURI: t => string; +[@get] external prefix: t => string; +[@get] external localName: t => string; +[@get] external name: t => string; +[@get] external value: t => string; +[@get] [@return nullable] external ownerElement: t => option(Dom.element); +[@get] external specified: t => bool; /* useless; always returns true (exact wording from spec) */ diff --git a/src/Webapi/Dom/Webapi__Dom__BeforeUnloadEvent.re b/src/Webapi/Dom/Webapi__Dom__BeforeUnloadEvent.re index fa96d62c..d804a900 100644 --- a/src/Webapi/Dom/Webapi__Dom__BeforeUnloadEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__BeforeUnloadEvent.re @@ -1,8 +1,10 @@ type t = Dom.beforeUnloadEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "BeforeUnloadEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "BeforeUnloadEvent"; +[@new] external make: string => t = "BeforeUnloadEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "BeforeUnloadEvent"; -[@get] external returnValue : t => string = ""; +[@get] external returnValue: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__CdataSection.re b/src/Webapi/Dom/Webapi__Dom__CdataSection.re index 232cb8b7..99135822 100644 --- a/src/Webapi/Dom/Webapi__Dom__CdataSection.re +++ b/src/Webapi/Dom/Webapi__Dom__CdataSection.re @@ -1,8 +1,20 @@ type t = Dom.cdataSection; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__CharacterData.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonDocumentTypeChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__Slotable.Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__CharacterData.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonDocumentTypeChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Slotable.Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__CharacterData.re b/src/Webapi/Dom/Webapi__Dom__CharacterData.re index 3058abe1..4af39454 100644 --- a/src/Webapi/Dom/Webapi__Dom__CharacterData.re +++ b/src/Webapi/Dom/Webapi__Dom__CharacterData.re @@ -1,18 +1,28 @@ module Impl = (T: {type t;}) => { - [@get] external data : T.t => string = ""; - [@get] external length : T.t => int = ""; + [@get] external data: T.t => string; + [@get] external length: T.t => int; - [@send] external substringData: (T.t, ~offset: int, ~count: int) => string = ""; - [@send] external appendData: T.t => string => unit = ""; - [@send] external insertData: (T.t, ~offset: int, string) => unit = ""; - [@send] external deleteData: (T.t, ~offset: int, ~count: int) => unit = ""; - [@send] external replaceData: (T.t, ~offset: int, ~count: int, string) => unit = ""; + [@send] external substringData: (T.t, ~offset: int, ~count: int) => string; + [@send] external appendData: (T.t, string) => unit; + [@send] external insertData: (T.t, ~offset: int, string) => unit; + [@send] external deleteData: (T.t, ~offset: int, ~count: int) => unit; + [@send] external replaceData: (T.t, ~offset: int, ~count: int, string) => unit; }; type t = Dom.characterData; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonDocumentTypeChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); \ No newline at end of file +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonDocumentTypeChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ChildNode.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__ChildNode.re b/src/Webapi/Dom/Webapi__Dom__ChildNode.re index 6bdf9d8f..f78ad4e4 100644 --- a/src/Webapi/Dom/Webapi__Dom__ChildNode.re +++ b/src/Webapi/Dom/Webapi__Dom__ChildNode.re @@ -1,4 +1,4 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@send] external remove: T.t => unit = ""; + [@send] external remove: T.t => unit; }; diff --git a/src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re b/src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re index 47a6932c..141dcb95 100644 --- a/src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__ClipboardEvent.re @@ -1,8 +1,10 @@ type t = Dom.clipboardEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "ClipboardEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "ClipboardEvent"; +[@new] external make: string => t = "ClipboardEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "ClipboardEvent"; -[@get] external clipboardData : t => Dom.dataTransfer = ""; +[@get] external clipboardData: t => Dom.dataTransfer; diff --git a/src/Webapi/Dom/Webapi__Dom__CloseEvent.re b/src/Webapi/Dom/Webapi__Dom__CloseEvent.re index 6daf2493..18fade1d 100644 --- a/src/Webapi/Dom/Webapi__Dom__CloseEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__CloseEvent.re @@ -1,10 +1,12 @@ type t = Dom.closeEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "CloseEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "CloseEvent"; +[@new] external make: string => t = "CloseEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "CloseEvent"; -[@get] external wasClean : t => bool = ""; -[@get] external code : t => int = ""; -[@get] external reason : t => string = ""; +[@get] external wasClean: t => bool; +[@get] external code: t => int; +[@get] external reason: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__Comment.re b/src/Webapi/Dom/Webapi__Dom__Comment.re index fce2cbc2..2a7e337f 100644 --- a/src/Webapi/Dom/Webapi__Dom__Comment.re +++ b/src/Webapi/Dom/Webapi__Dom__Comment.re @@ -1,8 +1,20 @@ type t = Dom.comment; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__CharacterData.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonDocumentTypeChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__Slotable.Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__CharacterData.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonDocumentTypeChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Slotable.Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__CompositionEvent.re b/src/Webapi/Dom/Webapi__Dom__CompositionEvent.re index 40957315..1c10680b 100644 --- a/src/Webapi/Dom/Webapi__Dom__CompositionEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__CompositionEvent.re @@ -1,9 +1,13 @@ type t = Dom.compositionEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "CompositionEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "CompositionEvent"; +[@new] external make: string => t = "CompositionEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "CompositionEvent"; -[@get] external data : t => string = ""; +[@get] external data: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__CssStyleDeclaration.re b/src/Webapi/Dom/Webapi__Dom__CssStyleDeclaration.re index 3535b235..1936bfbb 100644 --- a/src/Webapi/Dom/Webapi__Dom__CssStyleDeclaration.re +++ b/src/Webapi/Dom/Webapi__Dom__CssStyleDeclaration.re @@ -1,138 +1,138 @@ type t = Dom.cssStyleDeclaration; type cssRule; /* TODO: Move to Webapi__Dom */ -[@get] external cssText : t => string = ""; -[@set] external setCssText : (t, string) => unit = "cssText"; -[@get] external length : t => int = ""; -[@get] external parentRule : t => cssRule = ""; +[@get] external cssText: t => string; +[@set] external setCssText: (t, string) => unit = "cssText"; +[@get] external length: t => int; +[@get] external parentRule: t => cssRule; -[@send] external getPropertyPriority: t => string => string = ""; -[@send] external getPropertyValue: t => string => string = ""; -[@send] external item: t => int => string = ""; -[@send] external removeProperty: t => string => string = ""; -[@send] external setProperty: (t, string, string, string) => unit = ""; -[@send] external setPropertyValue : (t, string, string) => unit = ""; +[@send] external getPropertyPriority: (t, string) => string; +[@send] external getPropertyValue: (t, string) => string; +[@send] external item: (t, int) => string; +[@send] external removeProperty: (t, string) => string; +[@send] external setProperty: (t, string, string, string) => unit; +[@send] external setPropertyValue: (t, string, string) => unit; /* CSS2Properties */ -[@get] external azimuth : t => string = ""; -[@get] external background : t => string = ""; -[@get] external backgroundAttachment : t => string = ""; -[@get] external backgroundColor : t => string = ""; -[@get] external backgroundImage : t => string = ""; -[@get] external backgroundPosition : t => string = ""; -[@get] external backgroundRepeat : t => string = ""; -[@get] external border : t => string = ""; -[@get] external borderCollapse : t => string = ""; -[@get] external borderColor : t => string = ""; -[@get] external borderSpacing : t => string = ""; -[@get] external borderStyle : t => string = ""; -[@get] external borderTop : t => string = ""; -[@get] external borderRight : t => string = ""; -[@get] external borderBottom : t => string = ""; -[@get] external borderLeft : t => string = ""; -[@get] external borderTopColor : t => string = ""; -[@get] external borderRightColor : t => string = ""; -[@get] external borderBottomColor : t => string = ""; -[@get] external borderLeftColor : t => string = ""; -[@get] external borderTopStyle : t => string = ""; -[@get] external borderRightStyle : t => string = ""; -[@get] external borderBottomStyle : t => string = ""; -[@get] external borderLeftStyle : t => string = ""; -[@get] external borderTopWidth : t => string = ""; -[@get] external borderRightWidth : t => string = ""; -[@get] external borderBottomWidth : t => string = ""; -[@get] external borderLeftWidth : t => string = ""; -[@get] external borderWidth : t => string = ""; -[@get] external bottom : t => string = ""; -[@get] external captionSide : t => string = ""; -[@get] external clear : t => string = ""; -[@get] external clip : t => string = ""; -[@get] external color : t => string = ""; -[@get] external content : t => string = ""; -[@get] external counterIncrement : t => string = ""; -[@get] external counterReset : t => string = ""; -[@get] external cue : t => string = ""; -[@get] external cueAfter : t => string = ""; -[@get] external cueBefore : t => string = ""; -[@get] external cursor : t => string = ""; -[@get] external direction : t => string = ""; -[@get] external display : t => string = ""; -[@get] external elevation : t => string = ""; -[@get] external emptyCells : t => string = ""; -[@get] external cssFloat : t => string = ""; -[@get] external font : t => string = ""; -[@get] external fontFamily : t => string = ""; -[@get] external fontSize : t => string = ""; -[@get] external fontSizeAdjust : t => string = ""; -[@get] external fontStretch : t => string = ""; -[@get] external fontStyle : t => string = ""; -[@get] external fontVariant : t => string = ""; -[@get] external fontWeight : t => string = ""; -[@get] external height : t => string = ""; -[@get] external left : t => string = ""; -[@get] external letterSpacing : t => string = ""; -[@get] external lineHeight : t => string = ""; -[@get] external listStyle : t => string = ""; -[@get] external listStyleImage : t => string = ""; -[@get] external listStylePosition : t => string = ""; -[@get] external listStyleType : t => string = ""; -[@get] external margin : t => string = ""; -[@get] external marginTop : t => string = ""; -[@get] external marginRight : t => string = ""; -[@get] external marginBottom : t => string = ""; -[@get] external marginLeft : t => string = ""; -[@get] external markerOffset : t => string = ""; -[@get] external marks : t => string = ""; -[@get] external maxHeight : t => string = ""; -[@get] external maxWidth : t => string = ""; -[@get] external minHeight : t => string = ""; -[@get] external minWidth : t => string = ""; -[@get] external orphans : t => string = ""; -[@get] external outline : t => string = ""; -[@get] external outlineColor : t => string = ""; -[@get] external outlineStyle : t => string = ""; -[@get] external outlineWidth : t => string = ""; -[@get] external overflow : t => string = ""; -[@get] external padding : t => string = ""; -[@get] external paddingTop : t => string = ""; -[@get] external paddingRight : t => string = ""; -[@get] external paddingBottom : t => string = ""; -[@get] external paddingLeft : t => string = ""; -[@get] external page : t => string = ""; -[@get] external pageBreakAfter : t => string = ""; -[@get] external pageBreakBefore : t => string = ""; -[@get] external pageBreakInside : t => string = ""; -[@get] external pause : t => string = ""; -[@get] external pauseAfter : t => string = ""; -[@get] external pauseBefore : t => string = ""; -[@get] external pitch : t => string = ""; -[@get] external pitchRange : t => string = ""; -[@get] external playDuring : t => string = ""; -[@get] external position : t => string = ""; -[@get] external quotes : t => string = ""; -[@get] external richness : t => string = ""; -[@get] external right : t => string = ""; -[@get] external size : t => string = ""; -[@get] external speak : t => string = ""; -[@get] external speakHeader : t => string = ""; -[@get] external speakNumeral : t => string = ""; -[@get] external speakPunctuation : t => string = ""; -[@get] external speechRate : t => string = ""; -[@get] external stress : t => string = ""; -[@get] external tableLayout : t => string = ""; -[@get] external textAlign : t => string = ""; -[@get] external textDecoration : t => string = ""; -[@get] external textIndent : t => string = ""; -[@get] external textShadow : t => string = ""; -[@get] external textTransform : t => string = ""; -[@get] external top : t => string = ""; -[@get] external unicodeBidi : t => string = ""; -[@get] external verticalAlign : t => string = ""; -[@get] external visibility : t => string = ""; -[@get] external voiceFamily : t => string = ""; -[@get] external volume : t => string = ""; -[@get] external whiteSpace : t => string = ""; -[@get] external widows : t => string = ""; -[@get] external width : t => string = ""; -[@get] external wordSpacing : t => string = ""; -[@get] external zIndex : t => string = ""; \ No newline at end of file +[@get] external azimuth: t => string; +[@get] external background: t => string; +[@get] external backgroundAttachment: t => string; +[@get] external backgroundColor: t => string; +[@get] external backgroundImage: t => string; +[@get] external backgroundPosition: t => string; +[@get] external backgroundRepeat: t => string; +[@get] external border: t => string; +[@get] external borderCollapse: t => string; +[@get] external borderColor: t => string; +[@get] external borderSpacing: t => string; +[@get] external borderStyle: t => string; +[@get] external borderTop: t => string; +[@get] external borderRight: t => string; +[@get] external borderBottom: t => string; +[@get] external borderLeft: t => string; +[@get] external borderTopColor: t => string; +[@get] external borderRightColor: t => string; +[@get] external borderBottomColor: t => string; +[@get] external borderLeftColor: t => string; +[@get] external borderTopStyle: t => string; +[@get] external borderRightStyle: t => string; +[@get] external borderBottomStyle: t => string; +[@get] external borderLeftStyle: t => string; +[@get] external borderTopWidth: t => string; +[@get] external borderRightWidth: t => string; +[@get] external borderBottomWidth: t => string; +[@get] external borderLeftWidth: t => string; +[@get] external borderWidth: t => string; +[@get] external bottom: t => string; +[@get] external captionSide: t => string; +[@get] external clear: t => string; +[@get] external clip: t => string; +[@get] external color: t => string; +[@get] external content: t => string; +[@get] external counterIncrement: t => string; +[@get] external counterReset: t => string; +[@get] external cue: t => string; +[@get] external cueAfter: t => string; +[@get] external cueBefore: t => string; +[@get] external cursor: t => string; +[@get] external direction: t => string; +[@get] external display: t => string; +[@get] external elevation: t => string; +[@get] external emptyCells: t => string; +[@get] external cssFloat: t => string; +[@get] external font: t => string; +[@get] external fontFamily: t => string; +[@get] external fontSize: t => string; +[@get] external fontSizeAdjust: t => string; +[@get] external fontStretch: t => string; +[@get] external fontStyle: t => string; +[@get] external fontVariant: t => string; +[@get] external fontWeight: t => string; +[@get] external height: t => string; +[@get] external left: t => string; +[@get] external letterSpacing: t => string; +[@get] external lineHeight: t => string; +[@get] external listStyle: t => string; +[@get] external listStyleImage: t => string; +[@get] external listStylePosition: t => string; +[@get] external listStyleType: t => string; +[@get] external margin: t => string; +[@get] external marginTop: t => string; +[@get] external marginRight: t => string; +[@get] external marginBottom: t => string; +[@get] external marginLeft: t => string; +[@get] external markerOffset: t => string; +[@get] external marks: t => string; +[@get] external maxHeight: t => string; +[@get] external maxWidth: t => string; +[@get] external minHeight: t => string; +[@get] external minWidth: t => string; +[@get] external orphans: t => string; +[@get] external outline: t => string; +[@get] external outlineColor: t => string; +[@get] external outlineStyle: t => string; +[@get] external outlineWidth: t => string; +[@get] external overflow: t => string; +[@get] external padding: t => string; +[@get] external paddingTop: t => string; +[@get] external paddingRight: t => string; +[@get] external paddingBottom: t => string; +[@get] external paddingLeft: t => string; +[@get] external page: t => string; +[@get] external pageBreakAfter: t => string; +[@get] external pageBreakBefore: t => string; +[@get] external pageBreakInside: t => string; +[@get] external pause: t => string; +[@get] external pauseAfter: t => string; +[@get] external pauseBefore: t => string; +[@get] external pitch: t => string; +[@get] external pitchRange: t => string; +[@get] external playDuring: t => string; +[@get] external position: t => string; +[@get] external quotes: t => string; +[@get] external richness: t => string; +[@get] external right: t => string; +[@get] external size: t => string; +[@get] external speak: t => string; +[@get] external speakHeader: t => string; +[@get] external speakNumeral: t => string; +[@get] external speakPunctuation: t => string; +[@get] external speechRate: t => string; +[@get] external stress: t => string; +[@get] external tableLayout: t => string; +[@get] external textAlign: t => string; +[@get] external textDecoration: t => string; +[@get] external textIndent: t => string; +[@get] external textShadow: t => string; +[@get] external textTransform: t => string; +[@get] external top: t => string; +[@get] external unicodeBidi: t => string; +[@get] external verticalAlign: t => string; +[@get] external visibility: t => string; +[@get] external voiceFamily: t => string; +[@get] external volume: t => string; +[@get] external whiteSpace: t => string; +[@get] external widows: t => string; +[@get] external width: t => string; +[@get] external wordSpacing: t => string; +[@get] external zIndex: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__CustomEvent.re b/src/Webapi/Dom/Webapi__Dom__CustomEvent.re index aebbf837..44f951d8 100644 --- a/src/Webapi/Dom/Webapi__Dom__CustomEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__CustomEvent.re @@ -1,6 +1,8 @@ type t = Dom.customEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "CustomEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "CustomEvent"; +[@new] external make: string => t = "CustomEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "CustomEvent"; diff --git a/src/Webapi/Dom/Webapi__Dom__Document.re b/src/Webapi/Dom/Webapi__Dom__Document.re index beb0f597..61d027a0 100644 --- a/src/Webapi/Dom/Webapi__Dom__Document.re +++ b/src/Webapi/Dom/Webapi__Dom__Document.re @@ -1,7 +1,8 @@ module Impl = (T: {type t;}) => { - external asDocument : T.t => Dom.document = "%identity"; + external asDocument: T.t => Dom.document = "%identity"; - let asHtmlDocument: T.t => option(Dom.htmlDocument) = [%raw {| + let asHtmlDocument: T.t => option(Dom.htmlDocument) = [%raw + {| function(document) { var defaultView = document.defaultView; @@ -13,81 +14,110 @@ module Impl = (T: {type t;}) => { } } } - |}]; + |} + ]; /** Unsafe cast, use [ashtmlDocument] instead */ - external unsafeAsHtmlDocument : T.t => Dom.htmlDocument = "%identity"; + external unsafeAsHtmlDocument: T.t => Dom.htmlDocument = "%identity"; - let ofNode = (node: Dom.node) : option(T.t) => - Webapi__Dom__Node.nodeType(node) == Webapi__Dom__Types.Document ? - Some(Obj.magic(node)) : - None; + let ofNode = (node: Dom.node): option(T.t) => + Webapi__Dom__Node.nodeType(node) == Webapi__Dom__Types.Document + ? Some(Obj.magic(node)) : None; - [@get] external characterSet : T.t => string = ""; - [@get] external compatMode : T.t => string /* compatMode enum */ = ""; /* experimental */ + [@get] external characterSet: T.t => string; + [@get] external compatMode: T.t => string /* compatMode enum */; /* experimental */ let compatMode: T.t => Webapi__Dom__Types.compatMode = - (self) => Webapi__Dom__Types.decodeCompatMode(compatMode(self)); - [@get] external doctype : T.t => Dom.documentType = ""; - [@get] external documentElement : T.t => Dom.element = ""; - [@get] external documentURI : T.t => string = ""; - [@get] external hidden : T.t => bool = ""; - [@get] external implementation : T.t => Dom.domImplementation = ""; - [@get] external lastStyleSheetSet : T.t => string = ""; - [@get] [@return nullable] external pointerLockElement : T.t => option(Dom.element) = ""; /* experimental */ + self => Webapi__Dom__Types.decodeCompatMode(compatMode(self)); + [@get] external doctype: T.t => Dom.documentType; + [@get] external documentElement: T.t => Dom.element; + [@get] external documentURI: T.t => string; + [@get] external hidden: T.t => bool; + [@get] external implementation: T.t => Dom.domImplementation; + [@get] external lastStyleSheetSet: T.t => string; + [@get] [@return nullable] external pointerLockElement: T.t => option(Dom.element); /* experimental */ - [@get] external preferredStyleSheetSet : T.t => string = ""; - [@get] [@return nullable] external scrollingElement : T.t => option(Dom.element) = ""; - [@get] external selectedStyleSheetSet : T.t => string = ""; - [@set] external setSelectedStyleSheetSet : (T.t, string) => unit = "selectedStyleSheetSet"; - [@get] external styleSheets : T.t => array(Dom.cssStyleSheet) = ""; /* return StyleSheetList, not array */ - [@get] external styleSheetSets : T.t => array(string) = ""; - [@get] external visibilityState : T.t => string /* visibilityState enum */ = ""; + [@get] external preferredStyleSheetSet: T.t => string; + [@get] [@return nullable] external scrollingElement: T.t => option(Dom.element); + [@get] external selectedStyleSheetSet: T.t => string; + [@set] external setSelectedStyleSheetSet: (T.t, string) => unit = "selectedStyleSheetSet"; + [@get] external styleSheets: T.t => array(Dom.cssStyleSheet); /* return StyleSheetList, not array */ + [@get] external styleSheetSets: T.t => array(string); + [@get] external visibilityState: T.t => string /* visibilityState enum */; let visibilityState: T.t => Webapi__Dom__Types.visibilityState = - (self) => Webapi__Dom__Types.decodeVisibilityState(visibilityState(self)); + self => Webapi__Dom__Types.decodeVisibilityState(visibilityState(self)); - [@send] external adoptNode: T.t => Dom.element_like('a) => Dom.element_like('a) = ""; - [@send] external createAttribute: T.t => string => Dom.attr = ""; - [@send] external createAttributeNS: (T.t, string, string) => Dom.attr = ""; - [@send] external createComment: T.t => string => Dom.comment = ""; - [@send] external createDocumentFragment: T.t => Dom.documentFragment = ""; - [@send] external createElement: T.t => string => Dom.element = ""; - [@send] external createElementWithOptions: (T.t, string, Js.t({..})) => Dom.element = "createElement"; /* not widely supported */ - [@send] external createElementNS: (T.t, string, string) => Dom.element = ""; - [@send] external createElementNSWithOptions: (T.t, string, string, Js.t({..})) => Dom.element = "createElementNS"; /* not widely supported */ - [@send] external createEvent: T.t => string /* large enum */ => Dom.event = ""; /* discouraged (but not deprecated) in favor of Event constructors */ - [@send] external createNodeIterator: T.t => Dom.node_like('a) => Dom.nodeIterator = ""; - [@send] external createNodeIteratorWithWhatToShow: (T.t, Dom.node_like('a), Webapi__Dom__Types.WhatToShow.t) => Dom.nodeIterator = "createNodeIterator"; - [@send] external createNodeIteratorWithWhatToShowFilter: (T.t, Dom.node_like('a), Webapi__Dom__Types.WhatToShow.t, Dom.nodeFilter) => Dom.nodeIterator = "createNodeIterator"; /* createProcessingInstruction */ - [@send] external createRange: T.t => Dom.range = ""; - [@send] external createTextNode: T.t => string => Dom.text = ""; - [@send] external createTreeWalker: T.t => Dom.element_like('a) => Dom.treeWalker = ""; - [@send] external createTreeWalkerWithWhatToShow: (T.t, Dom.element_like('a), Webapi__Dom__Types.WhatToShow.t) => Dom.treeWalker = "createTreeWalker"; - [@send] external createTreeWalkerWithWhatToShowFilter: (T.t, Dom.element_like('a), Webapi__Dom__Types.WhatToShow.t, Dom.nodeFilter) => Dom.treeWalker = "createTreeWalker"; - [@send] external elementFromPoint: (T.t, int, int) => Dom.element = ""; /* experimental, but widely supported */ - [@send] external elementsFromPoint: (T.t, int, int) => array(Dom.element) = ""; /* experimental */ - [@send] external enableStyleSheetsForSet: T.t => string => unit = ""; - [@send] external exitPointerLock: T.t => unit = ""; /* experimental */ - [@send] external getAnimations: T.t => array(Dom.animation) = ""; /* experimental */ - [@send] external getElementsByClassName: T.t => string => Dom.htmlCollection = ""; - [@send] external getElementsByTagName: T.t => string => Dom.htmlCollection = ""; - [@send] external getElementsByTagNameNS: (T.t, string, string) => Dom.htmlCollection = ""; - [@send] external importNode: T.t => Dom.element_like('a) => Dom.element_like('a) = ""; - [@send] external importNodeDeep: (T.t, Dom.element_like('a), [@as {json|true|json}] _) => Dom.element_like('a) = "importNode"; - [@send] external registerElement: (T.t, string, unit) => Dom.element = ""; /* experimental and deprecated in favor of customElements.define() */ - [@send] external registerElementWithOptions: (T.t, string, Js.t({..}), unit) => Dom.element = "registerElement"; /* experimental and deprecated in favor of customElements.define() */ + [@send] external adoptNode: (T.t, Dom.element_like('a)) => Dom.element_like('a); + [@send] external createAttribute: (T.t, string) => Dom.attr; + [@send] external createAttributeNS: (T.t, string, string) => Dom.attr; + [@send] external createComment: (T.t, string) => Dom.comment; + [@send] external createDocumentFragment: T.t => Dom.documentFragment; + [@send] external createElement: (T.t, string) => Dom.element; + [@send] + external createElementWithOptions: (T.t, string, Js.t({..})) => Dom.element = "createElement"; /* not widely supported */ + [@send] external createElementNS: (T.t, string, string) => Dom.element; + [@send] + external createElementNSWithOptions: (T.t, string, string, Js.t({..})) => Dom.element = + "createElementNS"; /* not widely supported */ + [@send] external createEvent: (T.t, string /* large enum */) => Dom.event; /* discouraged (but not deprecated) in favor of Event constructors */ + [@send] external createNodeIterator: (T.t, Dom.node_like('a)) => Dom.nodeIterator; + [@send] + external createNodeIteratorWithWhatToShow: + (T.t, Dom.node_like('a), Webapi__Dom__Types.WhatToShow.t) => Dom.nodeIterator = + "createNodeIterator"; + [@send] + external createNodeIteratorWithWhatToShowFilter: + (T.t, Dom.node_like('a), Webapi__Dom__Types.WhatToShow.t, Dom.nodeFilter) => Dom.nodeIterator = + "createNodeIterator"; /* createProcessingInstruction */ + [@send] external createRange: T.t => Dom.range; + [@send] external createTextNode: (T.t, string) => Dom.text; + [@send] external createTreeWalker: (T.t, Dom.element_like('a)) => Dom.treeWalker; + [@send] + external createTreeWalkerWithWhatToShow: + (T.t, Dom.element_like('a), Webapi__Dom__Types.WhatToShow.t) => Dom.treeWalker = + "createTreeWalker"; + [@send] + external createTreeWalkerWithWhatToShowFilter: + (T.t, Dom.element_like('a), Webapi__Dom__Types.WhatToShow.t, Dom.nodeFilter) => Dom.treeWalker = + "createTreeWalker"; + [@send] external elementFromPoint: (T.t, int, int) => Dom.element; /* experimental, but widely supported */ + [@send] external elementsFromPoint: (T.t, int, int) => array(Dom.element); /* experimental */ + [@send] external enableStyleSheetsForSet: (T.t, string) => unit; + [@send] external exitPointerLock: T.t => unit; /* experimental */ + [@send] external getAnimations: T.t => array(Dom.animation); /* experimental */ + [@send] external getElementsByClassName: (T.t, string) => Dom.htmlCollection; + [@send] external getElementsByTagName: (T.t, string) => Dom.htmlCollection; + [@send] external getElementsByTagNameNS: (T.t, string, string) => Dom.htmlCollection; + [@send] external importNode: (T.t, Dom.element_like('a)) => Dom.element_like('a); + [@send] + external importNodeDeep: + (T.t, Dom.element_like('a), [@as {json|true|json}] _) => Dom.element_like('a) = + "importNode"; + [@send] external registerElement: (T.t, string, unit) => Dom.element; /* experimental and deprecated in favor of customElements.define() */ + [@send] + external registerElementWithOptions: (T.t, string, Js.t({..}), unit) => Dom.element = + "registerElement"; /* experimental and deprecated in favor of customElements.define() */ - /** XPath stuff */ + /** XPath stuff */; /* createExpression */ /* createNSResolver */ /* evaluate */ - /* GlobalEventHandlers interface */ }; type t = Dom.document; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonElementParentNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ParentNode.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonElementParentNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ParentNode.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__DocumentFragment.re b/src/Webapi/Dom/Webapi__Dom__DocumentFragment.re index 3a858091..2222ec67 100644 --- a/src/Webapi/Dom/Webapi__Dom__DocumentFragment.re +++ b/src/Webapi/Dom/Webapi__Dom__DocumentFragment.re @@ -1,6 +1,14 @@ type t = Dom.documentFragment; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonElementParentNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ParentNode.Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonElementParentNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ParentNode.Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__DocumentType.re b/src/Webapi/Dom/Webapi__Dom__DocumentType.re index 17ccd252..49e25d48 100644 --- a/src/Webapi/Dom/Webapi__Dom__DocumentType.re +++ b/src/Webapi/Dom/Webapi__Dom__DocumentType.re @@ -1,9 +1,15 @@ type t = Dom.documentType; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ChildNode.Impl({ + type nonrec t = t; +}); -[@get] external name : t => string = ""; -[@get] external publicId : t => string = ""; -[@get] external systemId : t => string = ""; +[@get] external name: t => string; +[@get] external publicId: t => string; +[@get] external systemId: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__DomImplementation.re b/src/Webapi/Dom/Webapi__Dom__DomImplementation.re index cad02504..b9f17b6e 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomImplementation.re +++ b/src/Webapi/Dom/Webapi__Dom__DomImplementation.re @@ -1,9 +1,25 @@ type t = Dom.domImplementation; -[@send] external createDocumentType: (t, ~qualifiedName: string, ~publicId: string, ~systemId: string) => Dom.documentType = ""; -[@send] external createDocument: (t, Js.null(string), string, Js.null(Dom.documentType)) => Dom.xmlDocument = ""; -let createDocument = (impl, ~namespace: option(string)=?, ~qualifiedName: string, ~docType: option(Dom.documentType)=?, ()) => - impl->createDocument(Js.Null.fromOption(namespace), qualifiedName, Js.Null.fromOption(docType)); -[@send] external createHTMLDocument: t => Dom.htmlDocument = ""; -[@send] external createHTMLDocumentWithTitle: t => string => Dom.htmlDocument = "createHTMLDocument"; -[@send] external hasFeature: t => bool = ""; /* useless; always returns true (this is exact wording from the actual spec) */ +[@send] +external createDocumentType: + (t, ~qualifiedName: string, ~publicId: string, ~systemId: string) => Dom.documentType; +[@send] +external createDocument: + (t, Js.null(string), string, Js.null(Dom.documentType)) => Dom.xmlDocument; +let createDocument = + ( + impl, + ~namespace: option(string)=?, + ~qualifiedName: string, + ~docType: option(Dom.documentType)=?, + (), + ) => + impl->createDocument( + Js.Null.fromOption(namespace), + qualifiedName, + Js.Null.fromOption(docType), + ); +[@send] external createHTMLDocument: t => Dom.htmlDocument; +[@send] +external createHTMLDocumentWithTitle: (t, string) => Dom.htmlDocument = "createHTMLDocument"; +[@send] external hasFeature: t => bool; /* useless; always returns true (this is exact wording from the actual spec) */ diff --git a/src/Webapi/Dom/Webapi__Dom__DomRect.re b/src/Webapi/Dom/Webapi__Dom__DomRect.re index 701b2e93..973741f1 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomRect.re +++ b/src/Webapi/Dom/Webapi__Dom__DomRect.re @@ -1,12 +1,12 @@ type t = Dom.domRect; -[@new] external make : (~x: float, ~y: float, ~width: float, ~height: float) => t = "DOMRect"; /* experimental */ +[@new] external make: (~x: float, ~y: float, ~width: float, ~height: float) => t = "DOMRect"; /* experimental */ -[@get] external top : t => float = ""; -[@get] external bottom : t => float = ""; -[@get] external left : t => float = ""; -[@get] external right : t => float = ""; -[@get] external height : t => float = ""; -[@get] external width : t => float = ""; -[@get] external x : t => float = ""; -[@get] external y : t => float = ""; +[@get] external top: t => float; +[@get] external bottom: t => float; +[@get] external left: t => float; +[@get] external right: t => float; +[@get] external height: t => float; +[@get] external width: t => float; +[@get] external x: t => float; +[@get] external y: t => float; diff --git a/src/Webapi/Dom/Webapi__Dom__DomStringMap.re b/src/Webapi/Dom/Webapi__Dom__DomStringMap.re index 89a6f0bd..c102c0cf 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomStringMap.re +++ b/src/Webapi/Dom/Webapi__Dom__DomStringMap.re @@ -2,9 +2,6 @@ type t = Dom.domStringMap; type key = string; -[@get_index] [@return nullable] -external get: (t, key) => option(string) = ""; -[@set_index] external set: (t, key, string) => unit = ""; -let unsafeDeleteKey: (t, key) => unit = [%raw - "function(map, key) { delete map[key] }" -]; +[@get_index] [@return nullable] external get: (t, key) => option(string); +[@set_index] external set: (t, key, string) => unit; +let unsafeDeleteKey: (t, key) => unit = [%raw "function(map, key) { delete map[key] }"]; diff --git a/src/Webapi/Dom/Webapi__Dom__DomTokenList.re b/src/Webapi/Dom/Webapi__Dom__DomTokenList.re index cd1fdd31..f761a8aa 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomTokenList.re +++ b/src/Webapi/Dom/Webapi__Dom__DomTokenList.re @@ -1,22 +1,22 @@ type t = Dom.domTokenList; -[@get] external length : t => int = ""; +[@get] external length: t => int; -[@send] [@return nullable] external item: t => int => option(string) = ""; -[@send] external add: t => string => unit = ""; -[@send] [@splice] external addMany: t => array(string) => unit = "add"; -[@send] external contains: t => string => bool = "contains"; +[@send] [@return nullable] external item: (t, int) => option(string); +[@send] external add: (t, string) => unit; +[@send] [@splice] external addMany: (t, array(string)) => unit = "add"; +[@send] external contains: (t, string) => bool = "contains"; /* entries: iterator API, should have language support */ -[@send] external forEach: (t, (string, int) => unit) => unit = ""; +[@send] external forEach: (t, (string, int) => unit) => unit; /* keys: iterator API, should have language support */ -[@send] external remove: t => string => unit = ""; -[@send] [@splice] external removeMany: t => array(string) => unit = "remove"; -[@send] external replace: (t, string, string) => unit = ""; /* experimental */ -[@send] external supports: t => string => bool = ""; /* experimental, Content Management Level 1 */ -[@send] external toggle: t => string => bool = ""; -[@send] external toggleForced: (t, string, [@as {json|true|json}] _) => bool = "toggle"; -[@send] external toString: t => string = ""; +[@send] external remove: (t, string) => unit; +[@send] [@splice] external removeMany: (t, array(string)) => unit = "remove"; +[@send] external replace: (t, string, string) => unit; /* experimental */ +[@send] external supports: (t, string) => bool; /* experimental, Content Management Level 1 */ +[@send] external toggle: (t, string) => bool; +[@send] external toggleForced: (t, string, [@as {json|true|json}] _) => bool = "toggle"; +[@send] external toString: t => string; /* values: iterator API, should have language support */ -[@get] external value : t => string = ""; /* experimental, from being merged with domSettableTokenList */ -[@set] external setValue : (t, string) => unit = "value"; /* experimental, from being merged with domSettableTokenList */ +[@get] external value: t => string; /* experimental, from being merged with domSettableTokenList */ +[@set] external setValue: (t, string) => unit = "value"; /* experimental, from being merged with domSettableTokenList */ diff --git a/src/Webapi/Dom/Webapi__Dom__DragEvent.re b/src/Webapi/Dom/Webapi__Dom__DragEvent.re index 1ca22256..8725ac94 100644 --- a/src/Webapi/Dom/Webapi__Dom__DragEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__DragEvent.re @@ -1,10 +1,16 @@ type t = Dom.dragEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -include Webapi__Dom__MouseEvent.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__MouseEvent.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "DragEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "DragEvent"; +[@new] external make: string => t = "DragEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "DragEvent"; -[@get] external dataTransfer : t => Dom.dataTransfer = ""; +[@get] external dataTransfer: t => Dom.dataTransfer; diff --git a/src/Webapi/Dom/Webapi__Dom__Element.re b/src/Webapi/Dom/Webapi__Dom__Element.re index 19f0926f..7507fc02 100644 --- a/src/Webapi/Dom/Webapi__Dom__Element.re +++ b/src/Webapi/Dom/Webapi__Dom__Element.re @@ -99,8 +99,7 @@ module Impl = (T: {type t;}) => { [@send] external requestPointerLock: T.t => unit; /* experimental */ [@send] external scrollIntoView: T.t => unit; /* experimental, but widely supported */ [@send] - external scrollIntoViewNoAlignToTop: (T.t, [@as {json|true|json}] _) => unit = - "scrollIntoView"; /* experimental, but widely supported */ + external scrollIntoViewNoAlignToTop: (T.t, [@as {json|true|json}] _) => unit = "scrollIntoView"; /* experimental, but widely supported */ [@send] external scrollIntoViewWithOptions: ( diff --git a/src/Webapi/Dom/Webapi__Dom__ErrorEvent.re b/src/Webapi/Dom/Webapi__Dom__ErrorEvent.re index 5d2c2ccf..6b02890e 100644 --- a/src/Webapi/Dom/Webapi__Dom__ErrorEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__ErrorEvent.re @@ -1,12 +1,14 @@ type t = Dom.errorEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "ErrorEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "ErrorEvent"; +[@new] external make: string => t = "ErrorEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "ErrorEvent"; -[@get] external message : t => string = ""; -[@get] external filename : t => string = ""; -[@get] external lineno : t => int = ""; -[@get] external colno : t => int = ""; -[@get] external error : t => Js.t({..}) = ""; +[@get] external message: t => string; +[@get] external filename: t => string; +[@get] external lineno: t => int; +[@get] external colno: t => int; +[@get] external error: t => Js.t({..}); diff --git a/src/Webapi/Dom/Webapi__Dom__Event.re b/src/Webapi/Dom/Webapi__Dom__Event.re index e77c9cb2..0018f45b 100644 --- a/src/Webapi/Dom/Webapi__Dom__Event.re +++ b/src/Webapi/Dom/Webapi__Dom__Event.re @@ -1,57 +1,58 @@ module Impl = (T: {type t;}) => { - [@get] external bubbles : T.t => bool = ""; - [@get] external cancelable : T.t => bool = ""; - [@get] external composed : T.t => bool = ""; - [@get] external currentTarget : T.t => Dom.eventTarget = ""; - [@get] external defaultPrevented : T.t => bool = ""; - [@get] external eventPhase : T.t => int /* eventPhase enum */ = ""; + [@get] external bubbles: T.t => bool; + [@get] external cancelable: T.t => bool; + [@get] external composed: T.t => bool; + [@get] external currentTarget: T.t => Dom.eventTarget; + [@get] external defaultPrevented: T.t => bool; + [@get] external eventPhase: T.t => int /* eventPhase enum */; let eventPhase: T.t => Webapi__Dom__Types.EventPhase.t = - (self) => Webapi__Dom__Types.EventPhase.decode(eventPhase(self)); + self => Webapi__Dom__Types.EventPhase.decode(eventPhase(self)); - [@get] external target : T.t => Dom.eventTarget = ""; - [@get] external timeStamp : T.t => float = ""; - [@get] external type_ : T.t => string = "type"; - [@get] external isTrusted : T.t => bool = ""; + [@get] external target: T.t => Dom.eventTarget; + [@get] external timeStamp: T.t => float; + [@get] external type_: T.t => string = "type"; + [@get] external isTrusted: T.t => bool; - [@send] external preventDefault: T.t => unit = ""; - [@send] external stopImmediatePropagation: T.t => unit = ""; - [@send] external stopPropagation: T.t => unit = ""; + [@send] external preventDefault: T.t => unit; + [@send] external stopImmediatePropagation: T.t => unit; + [@send] external stopPropagation: T.t => unit; }; type t = Dom.event; -include Impl({ type nonrec t = t; }); - -[@new] external make : string => t = "Event"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "Event"; - - -/* - Unimplemented Event interfaces - - AudioProcessingEvent /* deprecated */ - BeforeInputEvent /* experimental? Looks like it might just be an InputEvent */ - BlobEvent /* experimental, MediaStream recording */ - CSSFontFaceLoadEvent /* experimental - https://www.w3.org/TR/css-font-loading-3/#dom-cssfontfaceloadevent */ - DeviceLightEvent /* experimenta, Ambient Light */ - DeviceMotionEvent /* experimental, Device Orientation */ - DeviceOrientationEvent /* experimental, Device Orientation */ - DeviceProximityEvent /* experimental, Device Orientation */ - DOMTransactionEvent /* very experimental - https://dvcs.w3.org/hg/undomanager/raw-file/tip/undomanager.html#the-domtransactionevent-interface */ - EditingBeforeInputEvent /* deprecated? - https://dvcs.w3.org/hg/editing/raw-file/57abe6d3cb60/editing.html#editingbeforeinputevent */ - FetchEvent /* experimental, Service Workers */ - GamepadEvent /* experimental, Gamepad */ - HashChangeEvent /* https://www.w3.org/TR/html51/browsers.html#the-hashchangeevent-interface */ - MediaStreamEvent /* experimental, WebRTC */ - MessageEvent /* experimental, Websocket/WebRTC */ - MutationEvent /* deprecated */ - OfflineAudioCompletionEvent /* experimental, Web Audio */ - RTCDataChannelEvent /* experimental, WebRTC */ - RTCIdentityErrorEventA /* experimental, WebRTC */ - RTCIdentityEvent /* experimental, WebRTC */ - RTCPeerConnectionIceEvent /* experimental, WebRTC */ - SensorEvent /* deprecated? */ - SVGEvent /* deprecated */ - UserProximityEvent /* experimental, Proximity Events */ -*/ +include Impl({ + type nonrec t = t; +}); + +[@new] external make: string => t = "Event"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "Event"; + +/* + Unimplemented Event interfaces + + AudioProcessingEvent /* deprecated */ + BeforeInputEvent /* experimental? Looks like it might just be an InputEvent */ + BlobEvent /* experimental, MediaStream recording */ + CSSFontFaceLoadEvent /* experimental - https://www.w3.org/TR/css-font-loading-3/#dom-cssfontfaceloadevent */ + DeviceLightEvent /* experimenta, Ambient Light */ + DeviceMotionEvent /* experimental, Device Orientation */ + DeviceOrientationEvent /* experimental, Device Orientation */ + DeviceProximityEvent /* experimental, Device Orientation */ + DOMTransactionEvent /* very experimental - https://dvcs.w3.org/hg/undomanager/raw-file/tip/undomanager.html#the-domtransactionevent-interface */ + EditingBeforeInputEvent /* deprecated? - https://dvcs.w3.org/hg/editing/raw-file/57abe6d3cb60/editing.html#editingbeforeinputevent */ + FetchEvent /* experimental, Service Workers */ + GamepadEvent /* experimental, Gamepad */ + HashChangeEvent /* https://www.w3.org/TR/html51/browsers.html#the-hashchangeevent-interface */ + MediaStreamEvent /* experimental, WebRTC */ + MessageEvent /* experimental, Websocket/WebRTC */ + MutationEvent /* deprecated */ + OfflineAudioCompletionEvent /* experimental, Web Audio */ + RTCDataChannelEvent /* experimental, WebRTC */ + RTCIdentityErrorEventA /* experimental, WebRTC */ + RTCIdentityEvent /* experimental, WebRTC */ + RTCPeerConnectionIceEvent /* experimental, WebRTC */ + SensorEvent /* deprecated? */ + SVGEvent /* deprecated */ + UserProximityEvent /* experimental, Proximity Events */ + */ diff --git a/src/Webapi/Dom/Webapi__Dom__EventTarget.re b/src/Webapi/Dom/Webapi__Dom__EventTarget.re index 783ba019..edec60ec 100644 --- a/src/Webapi/Dom/Webapi__Dom__EventTarget.re +++ b/src/Webapi/Dom/Webapi__Dom__EventTarget.re @@ -1,335 +1,1949 @@ module Impl = (T: {type t;}) => { - external asEventTarget : T.t => Dom.eventTarget = "%identity"; + external asEventTarget: T.t => Dom.eventTarget = "%identity"; - [@send] external addEventListener: (T.t, string, Dom.event => unit) => unit = ""; - [@send] external addEventListenerWithOptions: (T.t, string, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addEventListenerUseCapture: (T.t, string, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeEventListener: (T.t, string, Dom.event => unit) => unit = ""; - [@send] external removeEventListenerWithOptions: (T.t, string, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeEventListenerUseCapture: (T.t, string, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - [@send] external dispatchEvent: T.t => Dom.event_like('a) => bool = ""; + [@send] external addEventListener: (T.t, string, Dom.event => unit) => unit; + [@send] + external addEventListenerWithOptions: + ( + T.t, + string, + Dom.event => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addEventListenerUseCapture: + (T.t, string, Dom.event => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] external removeEventListener: (T.t, string, Dom.event => unit) => unit; + [@send] + external removeEventListenerWithOptions: + ( + T.t, + string, + Dom.event => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeEventListenerUseCapture: + (T.t, string, Dom.event => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + [@send] external dispatchEvent: (T.t, Dom.event_like('a)) => bool; /** * non-standard event-specific functions */ + [@send] + /* UI */ + external addLoadEventListener: (T.t, [@as "load"] _, Dom.event => unit) => unit = + "addEventListener"; + [@send] + external addLoadEventListenerWithOptions: + ( + T.t, + [@as "load"] _, + Dom.event => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addLoadEventListenerUseCapture: + (T.t, [@as "load"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeLoadEventListener: (T.t, [@as "load"] _, Dom.event => unit) => unit = + "removeEventListener"; + [@send] + external removeLoadEventListenerWithOptions: + ( + T.t, + [@as "load"] _, + Dom.event => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeLoadEventListenerUseCapture: + (T.t, [@as "load"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; - /* UI */ - - [@send] external addLoadEventListener: (T.t, [@as "load"] _, Dom.event => unit) => unit = "addEventListener"; - [@send] external addLoadEventListenerWithOptions: (T.t, [@as "load"] _, Dom.event => unit,{. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addLoadEventListenerUseCapture: (T.t, [@as "load"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeLoadEventListener: (T.t, [@as "load"] _, Dom.event => unit) => unit= "removeEventListener"; - [@send] external removeLoadEventListenerWithOptions: (T.t, [@as "load"] _, Dom.event => unit, {. "capture": bool, "passive": bool})=> unit = "removeEventListener"; /* not widely supported */ - [@send] external removeLoadEventListenerUseCapture: (T.t, [@as "load"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addUnloadEventListener: (T.t, [@as "unload"] _, Dom.event => unit) => unit = "addEventListener"; - [@send] external addUnloadEventListenerWithOptions: (T.t, [@as "unload"] _, Dom.event=> unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addUnloadEventListenerUseCapture: (T.t, [@as "unload"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeUnloadEventListener: (T.t, [@as "unload"] _, Dom.event => unit) => unit = "removeEventListener"; - [@send] external removeUnloadEventListenerWithOptions: (T.t, [@as "unload"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeUnloadEventListenerUseCapture: (T.t, [@as "unload"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addAbortEventListener: (T.t, [@as "abort"] _, Dom.event => unit) => unit = "addEventListener"; - [@send] external addAbortEventListenerWithOptions: (T.t, [@as "abort"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addAbortEventListenerUseCapture: (T.t, [@as "abort"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeAbortEventListener: (T.t, [@as "abort"] _, Dom.event => unit) => unit = "removeEventListener"; - [@send] external removeAbortEventListenerWithOptions: (T.t, [@as "abort"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeAbortEventListenerUseCapture: (T.t, [@as "abort"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addErrorEventListener: (T.t, [@as "error"] _, Dom.event => unit) => unit = "addEventListener"; - [@send] external addErrorEventListenerWithOptions: (T.t, [@as "error"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addErrorEventListenerUseCapture: (T.t, [@as "error"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeErrorEventListener: (T.t, [@as "error"] _, Dom.event => unit) => unit = "removeEventListener"; - [@send] external removeErrorEventListenerWithOptions: (T.t, [@as "error"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeErrorEventListenerUseCapture: (T.t, [@as "error"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addSelectEventListener: (T.t, [@as "select"] _, Dom.event => unit) => unit = "addEventListener"; - [@send] external addSelectEventListenerWithOptions: (T.t, [@as "select"] _, Dom.event => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addSelectEventListenerUseCapture: (T.t, [@as "select"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeSelectEventListener: (T.t, [@as "select"] _, Dom.event => unit) => unit = "removeEventListener"; - [@send] external removeSelectEventListenerWithOptions: (T.t, [@as "select"] _, Dom.event => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeSelectEventListenerUseCapture: (T.t, [@as "select"] _, Dom.event =>unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addUnloadEventListener: (T.t, [@as "unload"] _, Dom.event => unit) => unit = + "addEventListener"; + [@send] + external addUnloadEventListenerWithOptions: + ( + T.t, + [@as "unload"] _, + Dom.event => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addUnloadEventListenerUseCapture: + (T.t, [@as "unload"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeUnloadEventListener: (T.t, [@as "unload"] _, Dom.event => unit) => unit = + "removeEventListener"; + [@send] + external removeUnloadEventListenerWithOptions: + ( + T.t, + [@as "unload"] _, + Dom.event => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeUnloadEventListenerUseCapture: + (T.t, [@as "unload"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addAbortEventListener: (T.t, [@as "abort"] _, Dom.event => unit) => unit = + "addEventListener"; + [@send] + external addAbortEventListenerWithOptions: + ( + T.t, + [@as "abort"] _, + Dom.event => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addAbortEventListenerUseCapture: + (T.t, [@as "abort"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeAbortEventListener: (T.t, [@as "abort"] _, Dom.event => unit) => unit = + "removeEventListener"; + [@send] + external removeAbortEventListenerWithOptions: + ( + T.t, + [@as "abort"] _, + Dom.event => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeAbortEventListenerUseCapture: + (T.t, [@as "abort"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addErrorEventListener: (T.t, [@as "error"] _, Dom.event => unit) => unit = + "addEventListener"; + [@send] + external addErrorEventListenerWithOptions: + ( + T.t, + [@as "error"] _, + Dom.event => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addErrorEventListenerUseCapture: + (T.t, [@as "error"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeErrorEventListener: (T.t, [@as "error"] _, Dom.event => unit) => unit = + "removeEventListener"; + [@send] + external removeErrorEventListenerWithOptions: + ( + T.t, + [@as "error"] _, + Dom.event => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeErrorEventListenerUseCapture: + (T.t, [@as "error"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addSelectEventListener: (T.t, [@as "select"] _, Dom.event => unit) => unit = + "addEventListener"; + [@send] + external addSelectEventListenerWithOptions: + ( + T.t, + [@as "select"] _, + Dom.event => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addSelectEventListenerUseCapture: + (T.t, [@as "select"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeSelectEventListener: (T.t, [@as "select"] _, Dom.event => unit) => unit = + "removeEventListener"; + [@send] + external removeSelectEventListenerWithOptions: + ( + T.t, + [@as "select"] _, + Dom.event => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeSelectEventListenerUseCapture: + (T.t, [@as "select"] _, Dom.event => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Focus */ - [@send] external addBlurEventListener: (T.t, [@as "blur"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@send] external addBlurEventListenerWithOptions: (T.t, [@as "blur"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addBlurEventListenerUseCapture: (T.t, [@as "blur"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeBlurEventListener: (T.t, [@as "blur"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@send] external removeBlurEventListenerWithOptions: (T.t, [@as "blur"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeBlurEventListenerUseCapture: (T.t, [@as "blur"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addFocusEventListener: (T.t, [@as "focus"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@send] external addFocusEventListenerWithOptions: (T.t, [@as "focus"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool,"passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addFocusEventListenerUseCapture: (T.t, [@as "focus"] _, Dom.focusEvent =>unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeFocusEventListener: (T.t, [@as "focus"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@send] external removeFocusEventListenerWithOptions: (T.t, [@as "focus"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeFocusEventListenerUseCapture: (T.t, [@as "focus"] _, Dom.focusEvent=> unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addFocusInEventListener: (T.t, [@as "focusin"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@send] external addFocusInEventListenerWithOptions: (T.t, [@as "focusin"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addFocusInEventListenerUseCapture: (T.t, [@as "focusin"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeFocusInEventListener: (T.t, [@as "focusin"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@send] external removeFocusInEventListenerWithOptions: (T.t, [@as "focusin"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeFocusInEventListenerUseCapture: (T.t, [@as "focusin"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addFocusOutEventListener: (T.t, [@as "focusout"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@send] external addFocusOutEventListenerWithOptions: (T.t, [@as "focusout"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addFocusOutEventListenerUseCapture: (T.t, [@as "focusout"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeFocusOutEventListener: (T.t, [@as "focusout"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@send] external removeFocusOutEventListenerWithOptions: (T.t, [@as "focusout"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeFocusOutEventListenerUseCapture: (T.t, [@as "focusout"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addBlurEventListener: (T.t, [@as "blur"] _, Dom.focusEvent => unit) => unit = + "addEventListener"; + [@send] + external addBlurEventListenerWithOptions: + ( + T.t, + [@as "blur"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addBlurEventListenerUseCapture: + (T.t, [@as "blur"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeBlurEventListener: (T.t, [@as "blur"] _, Dom.focusEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeBlurEventListenerWithOptions: + ( + T.t, + [@as "blur"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeBlurEventListenerUseCapture: + (T.t, [@as "blur"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addFocusEventListener: (T.t, [@as "focus"] _, Dom.focusEvent => unit) => unit = + "addEventListener"; + [@send] + external addFocusEventListenerWithOptions: + ( + T.t, + [@as "focus"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addFocusEventListenerUseCapture: + (T.t, [@as "focus"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeFocusEventListener: (T.t, [@as "focus"] _, Dom.focusEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeFocusEventListenerWithOptions: + ( + T.t, + [@as "focus"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeFocusEventListenerUseCapture: + (T.t, [@as "focus"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addFocusInEventListener: (T.t, [@as "focusin"] _, Dom.focusEvent => unit) => unit = + "addEventListener"; + [@send] + external addFocusInEventListenerWithOptions: + ( + T.t, + [@as "focusin"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addFocusInEventListenerUseCapture: + (T.t, [@as "focusin"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeFocusInEventListener: (T.t, [@as "focusin"] _, Dom.focusEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeFocusInEventListenerWithOptions: + ( + T.t, + [@as "focusin"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeFocusInEventListenerUseCapture: + (T.t, [@as "focusin"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addFocusOutEventListener: (T.t, [@as "focusout"] _, Dom.focusEvent => unit) => unit = + "addEventListener"; + [@send] + external addFocusOutEventListenerWithOptions: + ( + T.t, + [@as "focusout"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addFocusOutEventListenerUseCapture: + (T.t, [@as "focusout"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeFocusOutEventListener: (T.t, [@as "focusout"] _, Dom.focusEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeFocusOutEventListenerWithOptions: + ( + T.t, + [@as "focusout"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeFocusOutEventListenerUseCapture: + (T.t, [@as "focusout"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Mouse */ - [@send] external addClickEventListener: (T.t, [@as "click"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@send] external addClickEventListenerWithOptions: (T.t, [@as "click"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addClickEventListenerUseCapture: (T.t, [@as "click"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeClickEventListener: (T.t, [@as "click"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@send] external removeClickEventListenerWithOptions: (T.t, [@as "click"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeClickEventListenerUseCapture: (T.t, [@as "click"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addDblClickEventListener: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@send] external addDblClickEventListenerWithOptions: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDblClickEventListenerUseCapture: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDblClickEventListener: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@send] external removeDblClickEventListenerWithOptions: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDblClickEventListenerUseCapture: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addMouseDownEventListener: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@send] external addMouseDownEventListenerWithOptions: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addMouseDownEventListenerUseCapture: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeMouseDownEventListener: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@send] external removeMouseDownEventListenerWithOptions: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeMouseDownEventListenerUseCapture: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addMouseEnterEventListener: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@send] external addMouseEnterEventListenerWithOptions: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addMouseEnterEventListenerUseCapture: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeMouseEnterEventListener: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@send] external removeMouseEnterEventListenerWithOptions: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeMouseEnterEventListenerUseCapture: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addMouseMoveEventListener: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@send] external addMouseMoveEventListenerWithOptions: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addMouseMoveEventListenerUseCapture: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeMouseMoveEventListener: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@send] external removeMouseMoveEventListenerWithOptions: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeMouseMoveEventListenerUseCapture: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addMouseOutEventListener: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@send] external addMouseOutEventListenerWithOptions: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addMouseOutEventListenerUseCapture: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeMouseOutEventListener: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@send] external removeMouseOutEventListenerWithOptions: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeMouseOutEventListenerUseCapture: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addMouseOverEventListener: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@send] external addMouseOverEventListenerWithOptions: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addMouseOverEventListenerUseCapture: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeMouseOverEventListener: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@send] external removeMouseOverEventListenerWithOptions: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeMouseOverEventListenerUseCapture: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addMouseUpEventListener: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit) => unit = "addEventListener"; - [@send] external addMouseUpEventListenerWithOptions: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addMouseUpEventListenerUseCapture: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeMouseUpEventListener: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit) => unit = "removeEventListener"; - [@send] external removeMouseUpEventListenerWithOptions: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeMouseUpEventListenerUseCapture: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addClickEventListener: (T.t, [@as "click"] _, Dom.mouseEvent => unit) => unit = + "addEventListener"; + [@send] + external addClickEventListenerWithOptions: + ( + T.t, + [@as "click"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addClickEventListenerUseCapture: + (T.t, [@as "click"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeClickEventListener: (T.t, [@as "click"] _, Dom.mouseEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeClickEventListenerWithOptions: + ( + T.t, + [@as "click"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeClickEventListenerUseCapture: + (T.t, [@as "click"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addDblClickEventListener: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit) => unit = + "addEventListener"; + [@send] + external addDblClickEventListenerWithOptions: + ( + T.t, + [@as "dblclick"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDblClickEventListenerUseCapture: + (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDblClickEventListener: (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDblClickEventListenerWithOptions: + ( + T.t, + [@as "dblclick"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDblClickEventListenerUseCapture: + (T.t, [@as "dblclick"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addMouseDownEventListener: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit) => unit = + "addEventListener"; + [@send] + external addMouseDownEventListenerWithOptions: + ( + T.t, + [@as "mousedown"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addMouseDownEventListenerUseCapture: + (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeMouseDownEventListener: (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeMouseDownEventListenerWithOptions: + ( + T.t, + [@as "mousedown"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeMouseDownEventListenerUseCapture: + (T.t, [@as "mousedown"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addMouseEnterEventListener: (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit) => unit = + "addEventListener"; + [@send] + external addMouseEnterEventListenerWithOptions: + ( + T.t, + [@as "mouseenter"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addMouseEnterEventListenerUseCapture: + (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeMouseEnterEventListener: + (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeMouseEnterEventListenerWithOptions: + ( + T.t, + [@as "mouseenter"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeMouseEnterEventListenerUseCapture: + (T.t, [@as "mouseenter"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addMouseMoveEventListener: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit) => unit = + "addEventListener"; + [@send] + external addMouseMoveEventListenerWithOptions: + ( + T.t, + [@as "mousemove"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addMouseMoveEventListenerUseCapture: + (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeMouseMoveEventListener: (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeMouseMoveEventListenerWithOptions: + ( + T.t, + [@as "mousemove"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeMouseMoveEventListenerUseCapture: + (T.t, [@as "mousemove"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addMouseOutEventListener: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit) => unit = + "addEventListener"; + [@send] + external addMouseOutEventListenerWithOptions: + ( + T.t, + [@as "mouseout"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addMouseOutEventListenerUseCapture: + (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeMouseOutEventListener: (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeMouseOutEventListenerWithOptions: + ( + T.t, + [@as "mouseout"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeMouseOutEventListenerUseCapture: + (T.t, [@as "mouseout"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addMouseOverEventListener: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit) => unit = + "addEventListener"; + [@send] + external addMouseOverEventListenerWithOptions: + ( + T.t, + [@as "mouseover"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addMouseOverEventListenerUseCapture: + (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeMouseOverEventListener: (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeMouseOverEventListenerWithOptions: + ( + T.t, + [@as "mouseover"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeMouseOverEventListenerUseCapture: + (T.t, [@as "mouseover"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addMouseUpEventListener: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit) => unit = + "addEventListener"; + [@send] + external addMouseUpEventListenerWithOptions: + ( + T.t, + [@as "mouseup"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addMouseUpEventListenerUseCapture: + (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeMouseUpEventListener: (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeMouseUpEventListenerWithOptions: + ( + T.t, + [@as "mouseup"] _, + Dom.mouseEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeMouseUpEventListenerUseCapture: + (T.t, [@as "mouseup"] _, Dom.mouseEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Wheel */ - [@send] external addWheelEventListener: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit) => unit = "addEventListener"; - [@send] external addWheelEventListenerWithOptions: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addWheelEventListenerUseCapture: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeWheelEventListener: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit) => unit = "removeEventListener"; - [@send] external removeWheelEventListenerWithOptions: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeWheelEventListenerUseCapture: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addWheelEventListener: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit) => unit = + "addEventListener"; + [@send] + external addWheelEventListenerWithOptions: + ( + T.t, + [@as "wheel"] _, + Dom.wheelEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addWheelEventListenerUseCapture: + (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeWheelEventListener: (T.t, [@as "wheel"] _, Dom.wheelEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeWheelEventListenerWithOptions: + ( + T.t, + [@as "wheel"] _, + Dom.wheelEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeWheelEventListenerUseCapture: + (T.t, [@as "wheel"] _, Dom.wheelEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Input */ - [@send] external addBeforeInputEventListener: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit) => unit = "addEventListener"; - [@send] external addBeforeInputEventListenerWithOptions: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addBeforeInputEventListenerUseCapture: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeBeforeInputEventListener: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit) => unit = "removeEventListener"; - [@send] external removeBeforeInputEventListenerWithOptions: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeBeforeInputEventListenerUseCapture: (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addBeforeInputEventListener: + (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit) => unit = + "addEventListener"; + [@send] + external addBeforeInputEventListenerWithOptions: + ( + T.t, + [@as "beforeinput"] _, + Dom.inputEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addBeforeInputEventListenerUseCapture: + (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeBeforeInputEventListener: + (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeBeforeInputEventListenerWithOptions: + ( + T.t, + [@as "beforeinput"] _, + Dom.inputEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeBeforeInputEventListenerUseCapture: + (T.t, [@as "beforeinput"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; - [@send] external addInputEventListener: (T.t, [@as "input"] _, Dom.inputEvent => unit) => unit = "addEventListener"; - [@send] external addInputEventListenerWithOptions: (T.t, [@as "input"] _, Dom.inputEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addInputEventListenerUseCapture: (T.t, [@as "input"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeInputEventListener: (T.t, [@as "input"] _, Dom.inputEvent => unit) => unit = "removeEventListener"; - [@send] external removeInputEventListenerWithOptions: (T.t, [@as "input"] _, Dom.inputEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeInputEventListenerUseCapture: (T.t, [@as "input"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addInputEventListener: (T.t, [@as "input"] _, Dom.inputEvent => unit) => unit = + "addEventListener"; + [@send] + external addInputEventListenerWithOptions: + ( + T.t, + [@as "input"] _, + Dom.inputEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addInputEventListenerUseCapture: + (T.t, [@as "input"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeInputEventListener: (T.t, [@as "input"] _, Dom.inputEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeInputEventListenerWithOptions: + ( + T.t, + [@as "input"] _, + Dom.inputEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeInputEventListenerUseCapture: + (T.t, [@as "input"] _, Dom.inputEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Keyboard */ - [@send] external addKeyDownEventListener: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; - [@send] external addKeyDownEventListenerWithOptions: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addKeyDownEventListenerUseCapture: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeKeyDownEventListener: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; - [@send] external removeKeyDownEventListenerWithOptions: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeKeyDownEventListenerUseCapture: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addKeyUpEventListener: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; - [@send] external addKeyUpEventListenerWithOptions: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addKeyUpEventListenerUseCapture: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeKeyUpEventListener: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; - [@send] external removeKeyUpEventListenerWithOptions: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeKeyUpEventListenerUseCapture: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addKeyPressEventListener: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit) => unit = "addEventListener"; - [@send] external addKeyPressEventListenerWithOptions: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addKeyPressEventListenerUseCapture: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeKeyPressEventListener: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit) => unit = "removeEventListener"; - [@send] external removeKeyPressEventListenerWithOptions: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeKeyPressEventListenerUseCapture: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addKeyDownEventListener: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit) => unit = + "addEventListener"; + [@send] + external addKeyDownEventListenerWithOptions: + ( + T.t, + [@as "keydown"] _, + Dom.keyboardEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addKeyDownEventListenerUseCapture: + (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeKeyDownEventListener: (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeKeyDownEventListenerWithOptions: + ( + T.t, + [@as "keydown"] _, + Dom.keyboardEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeKeyDownEventListenerUseCapture: + (T.t, [@as "keydown"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addKeyUpEventListener: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit) => unit = + "addEventListener"; + [@send] + external addKeyUpEventListenerWithOptions: + ( + T.t, + [@as "keyup"] _, + Dom.keyboardEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addKeyUpEventListenerUseCapture: + (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeKeyUpEventListener: (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeKeyUpEventListenerWithOptions: + ( + T.t, + [@as "keyup"] _, + Dom.keyboardEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeKeyUpEventListenerUseCapture: + (T.t, [@as "keyup"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addKeyPressEventListener: (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit) => unit = + "addEventListener"; + [@send] + external addKeyPressEventListenerWithOptions: + ( + T.t, + [@as "keypress"] _, + Dom.keyboardEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addKeyPressEventListenerUseCapture: + (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeKeyPressEventListener: + (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeKeyPressEventListenerWithOptions: + ( + T.t, + [@as "keypress"] _, + Dom.keyboardEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeKeyPressEventListenerUseCapture: + (T.t, [@as "keypress"] _, Dom.keyboardEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Composition */ - [@send] external addCompositionStartEventListener: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; - [@send] external addCompositionStartEventListenerWithOptions: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addCompositionStartEventListenerUseCapture: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeCompositionStartEventListener: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; - [@send] external removeCompositionStartEventListenerWithOptions: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeCompositionStartEventListenerUseCapture: (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addCompositionUpdateEventListener: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; - [@send] external addCompositionUpdateEventListenerWithOptions: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addCompositionUpdateEventListenerUseCapture: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeCompositionUpdateEventListener: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; - [@send] external removeCompositionUpdateEventListenerWithOptions: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeCompositionUpdateEventListenerUseCapture: (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addCompositionEndEventListener: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit) => unit = "addEventListener"; - [@send] external addCompositionEndEventListenerWithOptions: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addCompositionEndEventListenerUseCapture: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeCompositionEndEventListener: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit) => unit = "removeEventListener"; - [@send] external removeCompositionEndEventListenerWithOptions: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeCompositionEndEventListenerUseCapture: (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addCompositionStartEventListener: + (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit) => unit = + "addEventListener"; + [@send] + external addCompositionStartEventListenerWithOptions: + ( + T.t, + [@as "compositionstart"] _, + Dom.compositionEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addCompositionStartEventListenerUseCapture: + (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => + unit = + "addEventListener"; + [@send] + external removeCompositionStartEventListener: + (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeCompositionStartEventListenerWithOptions: + ( + T.t, + [@as "compositionstart"] _, + Dom.compositionEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeCompositionStartEventListenerUseCapture: + (T.t, [@as "compositionstart"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => + unit = + "removeEventListener"; + + [@send] + external addCompositionUpdateEventListener: + (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit) => unit = + "addEventListener"; + [@send] + external addCompositionUpdateEventListenerWithOptions: + ( + T.t, + [@as "compositionupdate"] _, + Dom.compositionEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addCompositionUpdateEventListenerUseCapture: + (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => + unit = + "addEventListener"; + [@send] + external removeCompositionUpdateEventListener: + (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeCompositionUpdateEventListenerWithOptions: + ( + T.t, + [@as "compositionupdate"] _, + Dom.compositionEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeCompositionUpdateEventListenerUseCapture: + (T.t, [@as "compositionupdate"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => + unit = + "removeEventListener"; + + [@send] + external addCompositionEndEventListener: + (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit) => unit = + "addEventListener"; + [@send] + external addCompositionEndEventListenerWithOptions: + ( + T.t, + [@as "compositionend"] _, + Dom.compositionEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addCompositionEndEventListenerUseCapture: + (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeCompositionEndEventListener: + (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeCompositionEndEventListenerWithOptions: + ( + T.t, + [@as "compositionend"] _, + Dom.compositionEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeCompositionEndEventListenerUseCapture: + (T.t, [@as "compositionend"] _, Dom.compositionEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Drag */ - [@send] external addDragEventListener: (T.t, [@as "drag"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@send] external addDragEventListenerWithOptions: (T.t, [@as "drag"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDragEventListenerUseCapture: (T.t, [@as "drag"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDragEventListener: (T.t, [@as "drag"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@send] external removeDragEventListenerWithOptions: (T.t, [@as "drag"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDragEventListenerUseCapture: (T.t, [@as "drag"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addDragEndEventListener: (T.t, [@as "dragend"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@send] external addDragEndEventListenerWithOptions: (T.t, [@as "dragend"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDragEndEventListenerUseCapture: (T.t, [@as "dragend"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDragEndEventListener: (T.t, [@as "dragend"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@send] external removeDragEndEventListenerWithOptions: (T.t, [@as "dragend"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDragEndEventListenerUseCapture: (T.t, [@as "dragend"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addDragEnterEventListener: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@send] external addDragEnterEventListenerWithOptions: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDragEnterEventListenerUseCapture: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDragEnterEventListener: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@send] external removeDragEnterEventListenerWithOptions: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDragEnterEventListenerUseCapture: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addDragExitEventListener: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@send] external addDragExitEventListenerWithOptions: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDragExitEventListenerUseCapture: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDragExitEventListener: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@send] external removeDragExitEventListenerWithOptions: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDragExitEventListenerUseCapture: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addDragLeaveEventListener: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@send] external addDragLeaveEventListenerWithOptions: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDragLeaveEventListenerUseCapture: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDragLeaveEventListener: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@send] external removeDragLeaveEventListenerWithOptions: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDragLeaveEventListenerUseCapture: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addDragOverEventListener: (T.t, [@as "dragover"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@send] external addDragOverEventListenerWithOptions: (T.t, [@as "dragover"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDragOverEventListenerUseCapture: (T.t, [@as "dragover"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDragOverEventListener: (T.t, [@as "dragover"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@send] external removeDragOverEventListenerWithOptions: (T.t, [@as "dragover"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDragOverEventListenerUseCapture: (T.t, [@as "dragover"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addDragStartEventListener: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@send] external addDragStartEventListenerWithOptions: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDragStartEventListenerUseCapture: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDragStartEventListener: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@send] external removeDragStartEventListenerWithOptions: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDragStartEventListenerUseCapture: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addDropEventListener: (T.t, [@as "drop"] _, Dom.dragEvent => unit) => unit = "addEventListener"; - [@send] external addDropEventListenerWithOptions: (T.t, [@as "drop"] _, Dom.dragEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addDropEventListenerUseCapture: (T.t, [@as "drop"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeDropEventListener: (T.t, [@as "drop"] _, Dom.dragEvent => unit) => unit = "removeEventListener"; - [@send] external removeDropEventListenerWithOptions: (T.t, [@as "drop"] _, Dom.dragEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeDropEventListenerUseCapture: (T.t, [@as "drop"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addDragEventListener: (T.t, [@as "drag"] _, Dom.dragEvent => unit) => unit = + "addEventListener"; + [@send] + external addDragEventListenerWithOptions: + ( + T.t, + [@as "drag"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDragEventListenerUseCapture: + (T.t, [@as "drag"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDragEventListener: (T.t, [@as "drag"] _, Dom.dragEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDragEventListenerWithOptions: + ( + T.t, + [@as "drag"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDragEventListenerUseCapture: + (T.t, [@as "drag"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addDragEndEventListener: (T.t, [@as "dragend"] _, Dom.dragEvent => unit) => unit = + "addEventListener"; + [@send] + external addDragEndEventListenerWithOptions: + ( + T.t, + [@as "dragend"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDragEndEventListenerUseCapture: + (T.t, [@as "dragend"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDragEndEventListener: (T.t, [@as "dragend"] _, Dom.dragEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDragEndEventListenerWithOptions: + ( + T.t, + [@as "dragend"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDragEndEventListenerUseCapture: + (T.t, [@as "dragend"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addDragEnterEventListener: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit) => unit = + "addEventListener"; + [@send] + external addDragEnterEventListenerWithOptions: + ( + T.t, + [@as "dragenter"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDragEnterEventListenerUseCapture: + (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDragEnterEventListener: (T.t, [@as "dragenter"] _, Dom.dragEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDragEnterEventListenerWithOptions: + ( + T.t, + [@as "dragenter"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDragEnterEventListenerUseCapture: + (T.t, [@as "dragenter"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addDragExitEventListener: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit) => unit = + "addEventListener"; + [@send] + external addDragExitEventListenerWithOptions: + ( + T.t, + [@as "dragexit"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDragExitEventListenerUseCapture: + (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDragExitEventListener: (T.t, [@as "dragexit"] _, Dom.dragEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDragExitEventListenerWithOptions: + ( + T.t, + [@as "dragexit"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDragExitEventListenerUseCapture: + (T.t, [@as "dragexit"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addDragLeaveEventListener: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit) => unit = + "addEventListener"; + [@send] + external addDragLeaveEventListenerWithOptions: + ( + T.t, + [@as "dragleave"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDragLeaveEventListenerUseCapture: + (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDragLeaveEventListener: (T.t, [@as "dragleave"] _, Dom.dragEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDragLeaveEventListenerWithOptions: + ( + T.t, + [@as "dragleave"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDragLeaveEventListenerUseCapture: + (T.t, [@as "dragleave"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addDragOverEventListener: (T.t, [@as "dragover"] _, Dom.dragEvent => unit) => unit = + "addEventListener"; + [@send] + external addDragOverEventListenerWithOptions: + ( + T.t, + [@as "dragover"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDragOverEventListenerUseCapture: + (T.t, [@as "dragover"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDragOverEventListener: (T.t, [@as "dragover"] _, Dom.dragEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDragOverEventListenerWithOptions: + ( + T.t, + [@as "dragover"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDragOverEventListenerUseCapture: + (T.t, [@as "dragover"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addDragStartEventListener: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit) => unit = + "addEventListener"; + [@send] + external addDragStartEventListenerWithOptions: + ( + T.t, + [@as "dragstart"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDragStartEventListenerUseCapture: + (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDragStartEventListener: (T.t, [@as "dragstart"] _, Dom.dragEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDragStartEventListenerWithOptions: + ( + T.t, + [@as "dragstart"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDragStartEventListenerUseCapture: + (T.t, [@as "dragstart"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addDropEventListener: (T.t, [@as "drop"] _, Dom.dragEvent => unit) => unit = + "addEventListener"; + [@send] + external addDropEventListenerWithOptions: + ( + T.t, + [@as "drop"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addDropEventListenerUseCapture: + (T.t, [@as "drop"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeDropEventListener: (T.t, [@as "drop"] _, Dom.dragEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeDropEventListenerWithOptions: + ( + T.t, + [@as "drop"] _, + Dom.dragEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeDropEventListenerUseCapture: + (T.t, [@as "drop"] _, Dom.dragEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Touch */ - [@send] external addTouchCancelEventListener: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit) => unit = "addEventListener"; - [@send] external addTouchCancelEventListenerWithOptions: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addTouchCancelEventListenerUseCapture: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeTouchCancelEventListener: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; - [@send] external removeTouchCancelEventListenerWithOptions: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeTouchCancelEventListenerUseCapture: (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addTouchEndEventListener: (T.t, [@as "touchend"] _, Dom.touchEvent => unit) => unit = "addEventListener"; - [@send] external addTouchEndEventListenerWithOptions: (T.t, [@as "touchend"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addTouchEndEventListenerUseCapture: (T.t, [@as "touchend"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeTouchEndEventListener: (T.t, [@as "touchend"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; - [@send] external removeTouchEndEventListenerWithOptions: (T.t, [@as "touchend"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeTouchEndEventListenerUseCapture: (T.t, [@as "touchend"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addTouchMoveEventListener: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit) => unit = "addEventListener"; - [@send] external addTouchMoveEventListenerWithOptions: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addTouchMoveEventListenerUseCapture: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeTouchMoveEventListener: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; - [@send] external removeTouchMoveEventListenerWithOptions: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeTouchMoveEventListenerUseCapture: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addTouchStartEventListener: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit) => unit = "addEventListener"; - [@send] external addTouchStartEventListenerWithOptions: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addTouchStartEventListenerUseCapture: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeTouchStartEventListener: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit) => unit = "removeEventListener"; - [@send] external removeTouchStartEventListenerWithOptions: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeTouchStartEventListenerUseCapture: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addTouchCancelEventListener: + (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit) => unit = + "addEventListener"; + [@send] + external addTouchCancelEventListenerWithOptions: + ( + T.t, + [@as "touchcancel"] _, + Dom.touchEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addTouchCancelEventListenerUseCapture: + (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeTouchCancelEventListener: + (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeTouchCancelEventListenerWithOptions: + ( + T.t, + [@as "touchcancel"] _, + Dom.touchEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeTouchCancelEventListenerUseCapture: + (T.t, [@as "touchcancel"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addTouchEndEventListener: (T.t, [@as "touchend"] _, Dom.touchEvent => unit) => unit = + "addEventListener"; + [@send] + external addTouchEndEventListenerWithOptions: + ( + T.t, + [@as "touchend"] _, + Dom.touchEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addTouchEndEventListenerUseCapture: + (T.t, [@as "touchend"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeTouchEndEventListener: (T.t, [@as "touchend"] _, Dom.touchEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeTouchEndEventListenerWithOptions: + ( + T.t, + [@as "touchend"] _, + Dom.touchEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeTouchEndEventListenerUseCapture: + (T.t, [@as "touchend"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addTouchMoveEventListener: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit) => unit = + "addEventListener"; + [@send] + external addTouchMoveEventListenerWithOptions: + ( + T.t, + [@as "touchmove"] _, + Dom.touchEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addTouchMoveEventListenerUseCapture: + (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeTouchMoveEventListener: (T.t, [@as "touchmove"] _, Dom.touchEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeTouchMoveEventListenerWithOptions: + ( + T.t, + [@as "touchmove"] _, + Dom.touchEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeTouchMoveEventListenerUseCapture: + (T.t, [@as "touchmove"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addTouchStartEventListener: (T.t, [@as "touchstart"] _, Dom.touchEvent => unit) => unit = + "addEventListener"; + [@send] + external addTouchStartEventListenerWithOptions: + ( + T.t, + [@as "touchstart"] _, + Dom.touchEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addTouchStartEventListenerUseCapture: + (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeTouchStartEventListener: + (T.t, [@as "touchstart"] _, Dom.touchEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeTouchStartEventListenerWithOptions: + ( + T.t, + [@as "touchstart"] _, + Dom.touchEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeTouchStartEventListenerUseCapture: + (T.t, [@as "touchstart"] _, Dom.touchEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; /* Animation */ - [@send] external addAnimationCancelEventListener: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit) => unit = "addEventListener"; - [@send] external addAnimationCancelEventListenerWithOptions: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addAnimationCancelEventListenerUseCapture: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeAnimationCancelEventListener: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; - [@send] external removeAnimationCancelEventListenerWithOptions: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeAnimationCancelEventListenerUseCapture: (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addAnimationEndEventListener: (T.t, [@as "animationend"] _, Dom.animationEvent => unit) => unit = "addEventListener"; - [@send] external addAnimationEndEventListenerWithOptions: (T.t, [@as "animationend"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addAnimationEndEventListenerUseCapture: (T.t, [@as "animationend"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeAnimationEndEventListener: (T.t, [@as "animationend"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; - [@send] external removeAnimationEndEventListenerWithOptions: (T.t, [@as "animationend"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeAnimationEndEventListenerUseCapture: (T.t, [@as "animationend"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addAnimationIterationEventListener: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit) => unit = "addEventListener"; - [@send] external addAnimationIterationEventListenerWithOptions: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addAnimationIterationEventListenerUseCapture: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeAnimationIterationEventListener: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; - [@send] external removeAnimationIterationEventListenerWithOptions: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeAnimationIterationEventListenerUseCapture: (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; - - [@send] external addAnimationStartEventListener: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit) => unit = "addEventListener"; - [@send] external addAnimationStartEventListenerWithOptions: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addAnimationStartEventListenerUseCapture: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeAnimationStartEventListener: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit) => unit = "removeEventListener"; - [@send] external removeAnimationStartEventListenerWithOptions: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeAnimationStartEventListenerUseCapture: (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addAnimationCancelEventListener: + (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit) => unit = + "addEventListener"; + [@send] + external addAnimationCancelEventListenerWithOptions: + ( + T.t, + [@as "animationcancel"] _, + Dom.animationEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addAnimationCancelEventListenerUseCapture: + (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeAnimationCancelEventListener: + (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeAnimationCancelEventListenerWithOptions: + ( + T.t, + [@as "animationcancel"] _, + Dom.animationEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeAnimationCancelEventListenerUseCapture: + (T.t, [@as "animationcancel"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addAnimationEndEventListener: + (T.t, [@as "animationend"] _, Dom.animationEvent => unit) => unit = + "addEventListener"; + [@send] + external addAnimationEndEventListenerWithOptions: + ( + T.t, + [@as "animationend"] _, + Dom.animationEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addAnimationEndEventListenerUseCapture: + (T.t, [@as "animationend"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeAnimationEndEventListener: + (T.t, [@as "animationend"] _, Dom.animationEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeAnimationEndEventListenerWithOptions: + ( + T.t, + [@as "animationend"] _, + Dom.animationEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeAnimationEndEventListenerUseCapture: + (T.t, [@as "animationend"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; + + [@send] + external addAnimationIterationEventListener: + (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit) => unit = + "addEventListener"; + [@send] + external addAnimationIterationEventListenerWithOptions: + ( + T.t, + [@as "animationiteration"] _, + Dom.animationEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addAnimationIterationEventListenerUseCapture: + (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => + unit = + "addEventListener"; + [@send] + external removeAnimationIterationEventListener: + (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeAnimationIterationEventListenerWithOptions: + ( + T.t, + [@as "animationiteration"] _, + Dom.animationEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeAnimationIterationEventListenerUseCapture: + (T.t, [@as "animationiteration"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => + unit = + "removeEventListener"; + + [@send] + external addAnimationStartEventListener: + (T.t, [@as "animationstart"] _, Dom.animationEvent => unit) => unit = + "addEventListener"; + [@send] + external addAnimationStartEventListenerWithOptions: + ( + T.t, + [@as "animationstart"] _, + Dom.animationEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addAnimationStartEventListenerUseCapture: + (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeAnimationStartEventListener: + (T.t, [@as "animationstart"] _, Dom.animationEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeAnimationStartEventListenerWithOptions: + ( + T.t, + [@as "animationstart"] _, + Dom.animationEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeAnimationStartEventListenerUseCapture: + (T.t, [@as "animationstart"] _, Dom.animationEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; }; -include Impl({ type nonrec t = Dom.eventTarget; }); +include Impl({ + type nonrec t = Dom.eventTarget; +}); -external unsafeAsDocument : Dom.eventTarget => Dom.document = "%identity"; -external unsafeAsElement : Dom.eventTarget => Dom.element = "%identity"; -external unsafeAsWindow : Dom.eventTarget => Dom.window = "%identity"; +external unsafeAsDocument: Dom.eventTarget => Dom.document = "%identity"; +external unsafeAsElement: Dom.eventTarget => Dom.element = "%identity"; +external unsafeAsWindow: Dom.eventTarget => Dom.window = "%identity"; diff --git a/src/Webapi/Dom/Webapi__Dom__FocusEvent.re b/src/Webapi/Dom/Webapi__Dom__FocusEvent.re index e1be7eec..3092df0c 100644 --- a/src/Webapi/Dom/Webapi__Dom__FocusEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__FocusEvent.re @@ -1,9 +1,13 @@ type t = Dom.focusEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "FocusEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "FocusEvent"; +[@new] external make: string => t = "FocusEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "FocusEvent"; -[@get] [@return nullable] external relatedTarget : t => option(Dom.eventTarget) = ""; +[@get] [@return nullable] external relatedTarget: t => option(Dom.eventTarget); diff --git a/src/Webapi/Dom/Webapi__Dom__GlobalEventHandlers.re b/src/Webapi/Dom/Webapi__Dom__GlobalEventHandlers.re index bdfa7b55..eac835a7 100644 --- a/src/Webapi/Dom/Webapi__Dom__GlobalEventHandlers.re +++ b/src/Webapi/Dom/Webapi__Dom__GlobalEventHandlers.re @@ -1,9 +1,48 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@send] external addSelectionChangeEventListener: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit) => unit = "addEventListener"; - [@send] external addSelectionChangeEventListenerWithOptions: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit, {. "capture": bool, "once": bool, "passive": bool}) => unit = "addEventListener"; /* not widely supported */ - [@send] external addSelectionChangeEventListenerUseCapture: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = "addEventListener"; - [@send] external removeSelectionChangeEventListener: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit) => unit = "removeEventListener"; - [@send] external removeSelectionChangeEventListenerWithOptions: (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit, {. "capture": bool, "passive": bool}) => unit = "removeEventListener"; /* not widely supported */ - [@send] external removeSelectionChangeEventListenerUseCapture: (T.t, [@as "selectionchange"] _, Dom.focusEvent =>unit, [@as {json|true|json}] _) => unit = "removeEventListener"; + [@send] + external addSelectionChangeEventListener: + (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit) => unit = + "addEventListener"; + [@send] + external addSelectionChangeEventListenerWithOptions: + ( + T.t, + [@as "selectionchange"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "once": bool, + "passive": bool, + } + ) => + unit = + "addEventListener"; /* not widely supported */ + [@send] + external addSelectionChangeEventListenerUseCapture: + (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "addEventListener"; + [@send] + external removeSelectionChangeEventListener: + (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit) => unit = + "removeEventListener"; + [@send] + external removeSelectionChangeEventListenerWithOptions: + ( + T.t, + [@as "selectionchange"] _, + Dom.focusEvent => unit, + { + . + "capture": bool, + "passive": bool, + } + ) => + unit = + "removeEventListener"; /* not widely supported */ + [@send] + external removeSelectionChangeEventListenerUseCapture: + (T.t, [@as "selectionchange"] _, Dom.focusEvent => unit, [@as {json|true|json}] _) => unit = + "removeEventListener"; }; diff --git a/src/Webapi/Dom/Webapi__Dom__History.re b/src/Webapi/Dom/Webapi__Dom__History.re index ad5a53b4..9eacaaeb 100644 --- a/src/Webapi/Dom/Webapi__Dom__History.re +++ b/src/Webapi/Dom/Webapi__Dom__History.re @@ -1,13 +1,13 @@ type t = Dom.history; type state; /* TODO: should be "anything that can be serializable" apparently */ -[@get] external length : t => int = ""; -[@get] external scrollRestoration : t => bool = ""; /* experimental */ -[@set] external setScrollRestoration : (t, bool) => unit = "scrollRestoration"; /* experimental */ -[@get] external state : t => state = ""; +[@get] external length: t => int; +[@get] external scrollRestoration: t => bool; /* experimental */ +[@set] external setScrollRestoration: (t, bool) => unit = "scrollRestoration"; /* experimental */ +[@get] external state: t => state; -[@send] external back: t => unit = ""; -[@send] external forward: t => unit = ""; -[@send] external go: t => int => unit = ""; -[@send] external pushState: (t, state, string, string) => unit = ""; -[@send] external replaceState: (t, state, string, string) => unit = ""; +[@send] external back: t => unit; +[@send] external forward: t => unit; +[@send] external go: (t, int) => unit; +[@send] external pushState: (t, state, string, string) => unit; +[@send] external replaceState: (t, state, string, string) => unit; diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlCollection.re b/src/Webapi/Dom/Webapi__Dom__HtmlCollection.re index a4d089ed..96cc516c 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlCollection.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlCollection.re @@ -1,7 +1,8 @@ type t = Dom.htmlCollection; -[@val] [@scope ("Array", "prototype", "slice")] external toArray : t => array(Dom.element) = "call"; +[@val] [@scope ("Array", "prototype", "slice")] +external toArray: t => array(Dom.element) = "call"; -[@get] external length : t => int = ""; -[@send] [@return nullable] external item: t => int => option(Dom.element) = ""; -[@send] [@return nullable] external namedItem: t => string => option(Dom.element) = ""; +[@get] external length: t => int; +[@send] [@return nullable] external item: (t, int) => option(Dom.element); +[@send] [@return nullable] external namedItem: (t, string) => option(Dom.element); diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlDocument.re b/src/Webapi/Dom/Webapi__Dom__HtmlDocument.re index 898db463..2afe59df 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlDocument.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlDocument.re @@ -44,16 +44,16 @@ module Impl = (T: {type t;}) => { [@send] external execCommand: (t_htmlDocument, string, bool, Js.null(string)) => bool; let execCommand: (t_htmlDocument, string, bool, option(string)) => bool = (self, command, show, value) => self->execCommand(command, show, Js.Null.fromOption(value)); - [@send] external getElementsByName: t_htmlDocument => string => Dom.nodeList; + [@send] external getElementsByName: (t_htmlDocument, string) => Dom.nodeList; [@send] external getSelection: t_htmlDocument => Dom.selection; [@send] external hasFocus: t_htmlDocument => bool; [@send] external open_: t_htmlDocument => unit = "open"; - [@send] external queryCommandEnabled: t_htmlDocument => string => bool; - [@send] external queryCommandIndeterm: t_htmlDocument => string => bool; - [@send] external queryCommandSupported: t_htmlDocument => string => bool; - [@send] external queryCommandValue: t_htmlDocument => string => string; - [@send] external write: t_htmlDocument => string => unit; - [@send] external writeln: t_htmlDocument => string => unit; + [@send] external queryCommandEnabled: (t_htmlDocument, string) => bool; + [@send] external queryCommandIndeterm: (t_htmlDocument, string) => bool; + [@send] external queryCommandSupported: (t_htmlDocument, string) => bool; + [@send] external queryCommandValue: (t_htmlDocument, string) => string; + [@send] external write: (t_htmlDocument, string) => unit; + [@send] external writeln: (t_htmlDocument, string) => unit; }; type t = Dom.htmlDocument; diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlElement.re b/src/Webapi/Dom/Webapi__Dom__HtmlElement.re index 2d9c9234..6448e2ec 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlElement.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlElement.re @@ -3,92 +3,100 @@ module Impl = (T: {type t;}) => { let ofElement = Webapi__Dom__Element.asHtmlElement; - [@get] external accessKey : t_htmlElement => string = ""; - [@set] external setAccessKey : (t_htmlElement, string) => unit = "accessKey"; - [@get] external accessKeyLabel : t_htmlElement => string = ""; - [@get] external contentEditable : t_htmlElement => string /* enum */ = ""; + [@get] external accessKey: t_htmlElement => string; + [@set] external setAccessKey: (t_htmlElement, string) => unit = "accessKey"; + [@get] external accessKeyLabel: t_htmlElement => string; + [@get] external contentEditable: t_htmlElement => string /* enum */; let contentEditable: t_htmlElement => Webapi__Dom__Types.contentEditable = - (self) => Webapi__Dom__Types.decodeContentEditable(contentEditable(self)); - [@set] external setContentEditable : (t_htmlElement, string /* enum */) => unit = "contentEditable"; + self => Webapi__Dom__Types.decodeContentEditable(contentEditable(self)); + [@set] + external setContentEditable: (t_htmlElement, string /* enum */) => unit = "contentEditable"; let setContentEditable: (t_htmlElement, Webapi__Dom__Types.contentEditable) => unit = (self, value) => setContentEditable(self, Webapi__Dom__Types.encodeContentEditable(value)); - [@get] external isContentEditable : t_htmlElement => bool = ""; - [@get] external contextMenu : t_htmlElement => Dom.htmlElement = ""; /* returns HTMLMenuElement */ - [@set] external setContextMenu : (t_htmlElement, Dom.htmlElement) => unit = "contextMenu"; /* accepts and returns HTMLMenuElement */ - [@get] external dataset : t_htmlElement => Dom.domStringMap = ""; - [@get] external dir : t_htmlElement => string /* enum */ = ""; - let dir: t_htmlElement => Webapi__Dom__Types.dir = (self) => Webapi__Dom__Types.decodeDir(dir(self)); - [@set] external setDir : (t_htmlElement, string /* enum */) => unit = "dir"; + [@get] external isContentEditable: t_htmlElement => bool; + [@get] external contextMenu: t_htmlElement => Dom.htmlElement; /* returns HTMLMenuElement */ + [@set] external setContextMenu: (t_htmlElement, Dom.htmlElement) => unit = "contextMenu"; /* accepts and returns HTMLMenuElement */ + [@get] external dataset: t_htmlElement => Dom.domStringMap; + [@get] external dir: t_htmlElement => string /* enum */; + let dir: t_htmlElement => Webapi__Dom__Types.dir = + self => Webapi__Dom__Types.decodeDir(dir(self)); + [@set] external setDir: (t_htmlElement, string /* enum */) => unit = "dir"; let setDir: (t_htmlElement, Webapi__Dom__Types.dir) => unit = (self, value) => setDir(self, Webapi__Dom__Types.encodeDir(value)); - [@get] external draggable : t_htmlElement => bool = ""; - [@set] external setDraggable : (t_htmlElement, bool) => unit = "draggable"; - /*let setDraggable : t_htmlElement => bool => unit = fun self value => setDraggable self (Js.Boolean.to_js_boolean value);*/ /* temproarily removed to reduce codegen size */ - [@get] external dropzone : t_htmlElement => Dom.domSettableTokenList = ""; - [@get] external hidden : t_htmlElement => bool = ""; - [@set] external setHidden : (t_htmlElement, bool) => unit = "hidden"; - /*let setHidden : t_htmlElement => bool => unit = fun self value => setHidden self (Js.Boolean.to_js_boolean value);*/ /* temproarily removed to reduce codegen size */ - [@get] external itemScope : t_htmlElement => bool = ""; /* experimental */ - [@set] external setItemScope : (t_htmlElement, bool) => unit = "itemScope"; - /*let setItemScope : t_htmlElement => bool => unit = fun self value => setItemScope self (Js.Boolean.to_js_boolean value);*//* experimental */ /* temproarily removed to reduce codegen size */ - [@get] external itemType : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ - [@get] external itemId : t_htmlElement => string = ""; /* experimental */ - [@set] external setItemId : (t_htmlElement, string) => unit = "itemId"; /* experimental */ - [@get] external itemRef : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ - [@get] external itemProp : t_htmlElement => Dom.domSettableTokenList = ""; /* experimental */ - [@get] external itemValue : t_htmlElement => Js.t({..}) = ""; /* experimental */ - [@set] external setItemValue : (t_htmlElement, Js.t({..})) => unit = "itemValue"; /* experimental */ - [@get] external lang : t_htmlElement => string = ""; - [@set] external setLang : (t_htmlElement, string) => unit = "lang"; - [@get] external offsetHeight : t_htmlElement => int = ""; /* experimental */ - [@get] external offsetLeft : t_htmlElement => int = ""; /* experimental */ - [@get] [@return nullable] external offsetParent : t_htmlElement => option(Dom.element) = ""; /* experimental */ - [@get] external offsetTop : t_htmlElement => int = ""; /* experimental, but widely supported */ - [@get] external offsetWidth : t_htmlElement => int = ""; /* experimental */ - [@get] external spellcheck : t_htmlElement => bool = ""; - [@set] external setSpellcheck : (t_htmlElement, bool) => unit = "spellcheck" ; - /*let setSpellcheck : t_htmlElement => bool => unit = fun self value => setSpellcheck self (Js.Boolean.to_js_boolean value);*/ /* temproarily removed to reduce codegen size */ - [@get] external style : t_htmlElement => Dom.cssStyleDeclaration = ""; - [@set] external setStyle : (t_htmlElement, Dom.cssStyleDeclaration) => unit = "style"; - [@get] external tabIndex : t_htmlElement => int = ""; - [@set] external setTabIndex : (t_htmlElement, int) => unit = "tabIndex"; - [@get] external title : t_htmlElement => string = ""; - [@set] external setTitle : (t_htmlElement, string) => unit = "title"; - [@get] external translate : t_htmlElement => bool = ""; /* experimental */ - [@set] external setTranslate : (t_htmlElement, bool) => unit = "translate"; /* experimental */ - /*let setTranslate : t_htmlElement => bool => unit = fun self value => setTranslate self (Js.Boolean.to_js_boolean value);*/ /* temproarily removed to reduce codegen size */ - - [@send] external blur: t_htmlElement => unit = ""; - [@send] external click: t_htmlElement => unit = ""; - [@send] external focus: t_htmlElement => unit = ""; - [@send] external focusPreventScroll: (t_htmlElement, [@as {json|{ "preventScroll": true }|json}] _) => unit = "focus"; - [@send] external forceSpellCheck: t_htmlElement => unit = ""; /* experimental */ - + [@get] external draggable: t_htmlElement => bool; + [@set] external setDraggable: (t_htmlElement, bool) => unit = "draggable" /*let setDraggable : t_htmlElement => bool => unit = fun self value => setDraggable self (Js.Boolean.to_js_boolean value);*/; /* temproarily removed to reduce codegen size */ + [@get] external dropzone: t_htmlElement => Dom.domSettableTokenList; + [@get] external hidden: t_htmlElement => bool; + [@set] external setHidden: (t_htmlElement, bool) => unit = "hidden" /*let setHidden : t_htmlElement => bool => unit = fun self value => setHidden self (Js.Boolean.to_js_boolean value);*/; /* temproarily removed to reduce codegen size */ + [@get] external itemScope: t_htmlElement => bool; /* experimental */ + [@set] external setItemScope: (t_htmlElement, bool) => unit = "itemScope" /*let setItemScope : t_htmlElement => bool => unit = fun self value => setItemScope self (Js.Boolean.to_js_boolean value);*/; /* experimental */ /* temproarily removed to reduce codegen size */ + [@get] external itemType: t_htmlElement => Dom.domSettableTokenList; /* experimental */ + [@get] external itemId: t_htmlElement => string; /* experimental */ + [@set] external setItemId: (t_htmlElement, string) => unit = "itemId"; /* experimental */ + [@get] external itemRef: t_htmlElement => Dom.domSettableTokenList; /* experimental */ + [@get] external itemProp: t_htmlElement => Dom.domSettableTokenList; /* experimental */ + [@get] external itemValue: t_htmlElement => Js.t({..}); /* experimental */ + [@set] external setItemValue: (t_htmlElement, Js.t({..})) => unit = "itemValue"; /* experimental */ + [@get] external lang: t_htmlElement => string; + [@set] external setLang: (t_htmlElement, string) => unit = "lang"; + [@get] external offsetHeight: t_htmlElement => int; /* experimental */ + [@get] external offsetLeft: t_htmlElement => int; /* experimental */ + [@get] [@return nullable] external offsetParent: t_htmlElement => option(Dom.element); /* experimental */ + [@get] external offsetTop: t_htmlElement => int; /* experimental, but widely supported */ + [@get] external offsetWidth: t_htmlElement => int; /* experimental */ + [@get] external spellcheck: t_htmlElement => bool; + [@set] external setSpellcheck: (t_htmlElement, bool) => unit = "spellcheck" /*let setSpellcheck : t_htmlElement => bool => unit = fun self value => setSpellcheck self (Js.Boolean.to_js_boolean value);*/; /* temproarily removed to reduce codegen size */ + [@get] external style: t_htmlElement => Dom.cssStyleDeclaration; + [@set] external setStyle: (t_htmlElement, Dom.cssStyleDeclaration) => unit = "style"; + [@get] external tabIndex: t_htmlElement => int; + [@set] external setTabIndex: (t_htmlElement, int) => unit = "tabIndex"; + [@get] external title: t_htmlElement => string; + [@set] external setTitle: (t_htmlElement, string) => unit = "title"; + [@get] external translate: t_htmlElement => bool; /* experimental */ + [@set] external setTranslate: (t_htmlElement, bool) => unit = "translate" /*let setTranslate : t_htmlElement => bool => unit = fun self value => setTranslate self (Js.Boolean.to_js_boolean value);*/; /* experimental */ /* temproarily removed to reduce codegen size */ + [@send] external blur: t_htmlElement => unit; + [@send] external click: t_htmlElement => unit; + [@send] external focus: t_htmlElement => unit; + [@send] + external focusPreventScroll: + (t_htmlElement, [@as {json|{ "preventScroll": true }|json}] _) => unit = + "focus"; + [@send] external forceSpellCheck: t_htmlElement => unit; /* experimental */ /* TODO: element-spcific, should be pulled out */ - [@get] external value : t_htmlElement => string = ""; /* HTMLInputElement */ - [@get] external checked : t_htmlElement => bool = ""; /* HTMLInputElement */ - [@get] external type_ : t_htmlElement => string = "type"; /* HTMLStyleElement */ - [@set] external setType : (t_htmlElement, string) => unit = "type"; /* HTMLStyleElement */ - [@get] external rel : t_htmlElement => string = ""; /* HTMLLinkElement */ - [@set] external setRel : (t_htmlElement, string) => unit = "rel"; /* HTMLLinkElement */ - [@get] external href : t_htmlElement => string = ""; /* HTMLLinkElement, HTMLAnchorElement */ - [@set] external setHref : (t_htmlElement, string) => unit = "href"; /* HTMLLinkElement, HTMLAnchorElement */ + [@get] external value: t_htmlElement => string; /* HTMLInputElement */ + [@get] external checked: t_htmlElement => bool; /* HTMLInputElement */ + [@get] external type_: t_htmlElement => string = "type"; /* HTMLStyleElement */ + [@set] external setType: (t_htmlElement, string) => unit = "type"; /* HTMLStyleElement */ + [@get] external rel: t_htmlElement => string; /* HTMLLinkElement */ + [@set] external setRel: (t_htmlElement, string) => unit = "rel"; /* HTMLLinkElement */ + [@get] external href: t_htmlElement => string; /* HTMLLinkElement, HTMLAnchorElement */ + [@set] external setHref: (t_htmlElement, string) => unit = "href"; /* HTMLLinkElement, HTMLAnchorElement */ }; /* TODO -module Tree (T: { type t; }) => { - include ElementRe.Tree { type t = Type }; - include Impl { type t = Type }; -}; + module Tree (T: { type t; }) => { + include ElementRe.Tree { type t = Type }; + include Impl { type t = Type }; + }; -include Tree { type t = Dom.htmlElement }; -*/ + include Tree { type t = Dom.htmlElement }; + */ type t = Dom.htmlElement; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__GlobalEventHandlers.Impl({ type nonrec t = t; }); -include Webapi__Dom__Element.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__GlobalEventHandlers.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Element.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlFormElement.re b/src/Webapi/Dom/Webapi__Dom__HtmlFormElement.re index fb08d557..0bb52865 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlFormElement.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlFormElement.re @@ -7,39 +7,48 @@ module Impl = (T: {type t;}) => { type t_htmlFormElement = T.t; /* TODO: elements: HTMLFormControlsCollection */ - [@get] external length : t_htmlFormElement => int = ""; - [@get] external name : t_htmlFormElement => string = ""; - [@set] external setName : (t_htmlFormElement, string) => unit = "name"; - [@get] external method : t_htmlFormElement => string = ""; - [@set] external setMethod : (t_htmlFormElement, string) => unit = "method"; - [@get] external target : t_htmlFormElement => string = ""; - [@set] external setTarget : (t_htmlFormElement, string) => unit = "target"; - [@get] external action : t_htmlFormElement => string = ""; - [@set] external setAction : (t_htmlFormElement, string) => unit = "action"; - [@get] external acceptCharset : t_htmlFormElement => string = ""; - [@set] external setAcceptCharset : (t_htmlFormElement, string) => unit = "acceptCharset"; - [@get] external autocomplete : t_htmlFormElement => string = ""; - [@set] external setAutocomplete : (t_htmlFormElement, string) => unit = "autocomplete"; - [@get] external noValidate : t_htmlFormElement => bool = ""; - [@set] external setNoValidate : (t_htmlFormElement, bool) => unit = "noValidate"; - [@get] external enctype : t_htmlFormElement => string = ""; - [@set] external setEnctype : (t_htmlFormElement, string) => unit = "enctype"; - [@get] external encoding : t_htmlFormElement => string = ""; - [@set] external setEncoding : (t_htmlFormElement, string) => unit = "encoding"; + [@get] external length: t_htmlFormElement => int; + [@get] external name: t_htmlFormElement => string; + [@set] external setName: (t_htmlFormElement, string) => unit = "name"; + [@get] external method: t_htmlFormElement => string; + [@set] external setMethod: (t_htmlFormElement, string) => unit = "method"; + [@get] external target: t_htmlFormElement => string; + [@set] external setTarget: (t_htmlFormElement, string) => unit = "target"; + [@get] external action: t_htmlFormElement => string; + [@set] external setAction: (t_htmlFormElement, string) => unit = "action"; + [@get] external acceptCharset: t_htmlFormElement => string; + [@set] external setAcceptCharset: (t_htmlFormElement, string) => unit = "acceptCharset"; + [@get] external autocomplete: t_htmlFormElement => string; + [@set] external setAutocomplete: (t_htmlFormElement, string) => unit = "autocomplete"; + [@get] external noValidate: t_htmlFormElement => bool; + [@set] external setNoValidate: (t_htmlFormElement, bool) => unit = "noValidate"; + [@get] external enctype: t_htmlFormElement => string; + [@set] external setEnctype: (t_htmlFormElement, string) => unit = "enctype"; + [@get] external encoding: t_htmlFormElement => string; + [@set] external setEncoding: (t_htmlFormElement, string) => unit = "encoding"; - [@send] external submit: t_htmlFormElement => unit = ""; - [@send] external reset: t_htmlFormElement => unit = ""; - [@send] external checkValidity: t_htmlFormElement => bool = ""; - [@send] external reportValidity: t_htmlFormElement => bool = ""; + [@send] external submit: t_htmlFormElement => unit; + [@send] external reset: t_htmlFormElement => unit; + [@send] external checkValidity: t_htmlFormElement => bool; + [@send] external reportValidity: t_htmlFormElement => bool; - /** @since 0.18.0 */ - [@new] external data: T.t => Fetch.FormData.t = "FormData"; + /** @since 0.18.0 */ [@new] external data: T.t => Fetch.FormData.t = "FormData"; }; type t = Dom.htmlFormElement; -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__Element.Impl({ type nonrec t = t; }); -include Webapi__Dom__HtmlElement.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Element.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__HtmlElement.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlImageElement.re b/src/Webapi/Dom/Webapi__Dom__HtmlImageElement.re index 28cdacb7..3ab20621 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlImageElement.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlImageElement.re @@ -1,40 +1,47 @@ type t; -[@new] external make : unit => t = "Image"; -[@new] external makeWithSize : (int, int) => t = "Image"; +[@new] external make: unit => t = "Image"; +[@new] external makeWithSize: (int, int) => t = "Image"; -[@get] external alt : t => string = ""; -[@set] external setAlt : (t, string) => unit = "alt"; -[@get] external src : t => string = ""; -[@set] external setSrc : (t, string) => unit = "src"; -[@get] external srcset : t => string = ""; -[@set] external setSrcset : (t, string) => unit = "srcset"; -[@get] external sizes : t => string = ""; -[@set] external setSizes : (t, string) => unit = "sizes"; -[@get] [@return nullable] external crossOrigin : t => option(string) = ""; -[@set] external setCrossOrigin : (t, Js.null(string)) => unit = "crossOrigin"; -let setCrossOrigin = (self, value) => - setCrossOrigin(self, Js.Null.fromOption(value)); -[@get] external useMap : t => string = ""; -[@set] external setUseMap : (t, string) => unit = "useMap"; -[@get] external isMap : t => bool = ""; -[@set] external setIsMap : (t, bool) => unit = "isMap"; -[@get] external height : t => int = ""; -[@set] external setHeight : (t, int) => unit = "height"; -[@get] external width : t => int = ""; -[@set] external setWidth : (t, int) => unit = "width"; -[@get] external naturalHeight : t => int = ""; -[@get] external naturalWidth : t => int = ""; -[@get] external complete : t => bool = ""; -[@get] external currentSrc : t => string = ""; -[@get] external referrerPolicy : t => string = ""; -[@set] external setReferrerPolicy : (t, string) => unit = "referrerPolicy"; -[@get] external decoding : t => string = ""; -[@set] external setDecoding : (t, string) => unit = "decoding"; +[@get] external alt: t => string; +[@set] external setAlt: (t, string) => unit = "alt"; +[@get] external src: t => string; +[@set] external setSrc: (t, string) => unit = "src"; +[@get] external srcset: t => string; +[@set] external setSrcset: (t, string) => unit = "srcset"; +[@get] external sizes: t => string; +[@set] external setSizes: (t, string) => unit = "sizes"; +[@get] [@return nullable] external crossOrigin: t => option(string); +[@set] external setCrossOrigin: (t, Js.null(string)) => unit = "crossOrigin"; +let setCrossOrigin = (self, value) => setCrossOrigin(self, Js.Null.fromOption(value)); +[@get] external useMap: t => string; +[@set] external setUseMap: (t, string) => unit = "useMap"; +[@get] external isMap: t => bool; +[@set] external setIsMap: (t, bool) => unit = "isMap"; +[@get] external height: t => int; +[@set] external setHeight: (t, int) => unit = "height"; +[@get] external width: t => int; +[@set] external setWidth: (t, int) => unit = "width"; +[@get] external naturalHeight: t => int; +[@get] external naturalWidth: t => int; +[@get] external complete: t => bool; +[@get] external currentSrc: t => string; +[@get] external referrerPolicy: t => string; +[@set] external setReferrerPolicy: (t, string) => unit = "referrerPolicy"; +[@get] external decoding: t => string; +[@set] external setDecoding: (t, string) => unit = "decoding"; -[@send] external decode: t => Js.Promise.t(unit) = ""; +[@send] external decode: t => Js.Promise.t(unit); -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__Element.Impl({ type nonrec t = t; }); -include Webapi__Dom__HtmlElement.Impl({ type nonrec t = t; }); \ No newline at end of file +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Element.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__HtmlElement.Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__HtmlInputElement.re b/src/Webapi/Dom/Webapi__Dom__HtmlInputElement.re index d45f1972..f011524b 100644 --- a/src/Webapi/Dom/Webapi__Dom__HtmlInputElement.re +++ b/src/Webapi/Dom/Webapi__Dom__HtmlInputElement.re @@ -6,8 +6,7 @@ module Impl = (T: {type t;}) => { type t_htmlInputElement = T.t; - [@get] [@return nullable] - external form: t_htmlInputElement => option(Dom.htmlFormElement); + [@get] [@return nullable] external form: t_htmlInputElement => option(Dom.htmlFormElement); [@get] external formAction: t_htmlInputElement => string; [@set] external setFormAction: (t_htmlInputElement, string) => unit = "formAction"; [@get] external formEncType: t_htmlInputElement => string; diff --git a/src/Webapi/Dom/Webapi__Dom__IdbVersionChangeEvent.re b/src/Webapi/Dom/Webapi__Dom__IdbVersionChangeEvent.re index 24bc1451..3eff004e 100644 --- a/src/Webapi/Dom/Webapi__Dom__IdbVersionChangeEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__IdbVersionChangeEvent.re @@ -1,9 +1,11 @@ type t = Dom.idbVersionChangeEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "IDBVersionChangeEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "IDBVersionChangeEvent"; +[@new] external make: string => t = "IDBVersionChangeEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "IDBVersionChangeEvent"; -[@get] external oldVersion : t => int = ""; -[@get] external newVersion : t => int = ""; +[@get] external oldVersion: t => int; +[@get] external newVersion: t => int; diff --git a/src/Webapi/Dom/Webapi__Dom__Image.re b/src/Webapi/Dom/Webapi__Dom__Image.re index cad7ebd4..ac3e8efe 100644 --- a/src/Webapi/Dom/Webapi__Dom__Image.re +++ b/src/Webapi/Dom/Webapi__Dom__Image.re @@ -1,9 +1,12 @@ type t; -[@new] external makeWithData : (~array: Js.Typed_array.Uint8ClampedArray.t, ~width: float, ~height: float) => t = "ImageData"; +[@new] +external makeWithData: + (~array: Js.Typed_array.Uint8ClampedArray.t, ~width: float, ~height: float) => t = + "ImageData"; -[@new] external make : (~width: float, ~height: float) => t = "ImageData"; +[@new] external make: (~width: float, ~height: float) => t = "ImageData"; -[@get] external data : t => Js.Typed_array.Uint8ClampedArray.t = ""; -[@get] external height : t => float = ""; -[@get] external width : t => float = ""; +[@get] external data: t => Js.Typed_array.Uint8ClampedArray.t; +[@get] external height: t => float; +[@get] external width: t => float; diff --git a/src/Webapi/Dom/Webapi__Dom__InputEvent.re b/src/Webapi/Dom/Webapi__Dom__InputEvent.re index 72e8c285..87a38f8c 100644 --- a/src/Webapi/Dom/Webapi__Dom__InputEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__InputEvent.re @@ -1,10 +1,14 @@ type t = Dom.inputEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "InputEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "InputEvent"; +[@new] external make: string => t = "InputEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "InputEvent"; -[@get] external data : t => string = ""; -[@get] external isComposing : t => bool = ""; +[@get] external data: t => string; +[@get] external isComposing: t => bool; diff --git a/src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re b/src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re index 2e302519..1f2ed715 100644 --- a/src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__KeyboardEvent.re @@ -1,22 +1,26 @@ type t = Dom.keyboardEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "KeyboardEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "KeyboardEvent"; +[@new] external make: string => t = "KeyboardEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "KeyboardEvent"; -[@get] external altKey : t => bool = ""; -[@get] external code : t => string = ""; -[@get] external ctrlKey : t => bool = ""; -[@get] external isComposing : t => bool = ""; -[@get] external key : t => string = ""; -[@get] external locale : t => string = ""; -[@get] external location : t => int = ""; -[@get] external metaKey : t => bool = ""; -[@get] external repeat : t => bool = ""; -[@get] external shiftKey : t => bool = ""; +[@get] external altKey: t => bool; +[@get] external code: t => string; +[@get] external ctrlKey: t => bool; +[@get] external isComposing: t => bool; +[@get] external key: t => string; +[@get] external locale: t => string; +[@get] external location: t => int; +[@get] external metaKey: t => bool; +[@get] external repeat: t => bool; +[@get] external shiftKey: t => bool; -[@send] external getModifierState: t => string /* modifierKey enum */ => bool = ""; +[@send] external getModifierState: (t, string /* modifierKey enum */) => bool; let getModifierState: (t, Webapi__Dom__Types.modifierKey) => bool = (self, key) => self->getModifierState(Webapi__Dom__Types.encodeModifierKey(key)); diff --git a/src/Webapi/Dom/Webapi__Dom__Location.re b/src/Webapi/Dom/Webapi__Dom__Location.re index 95f2b69e..0f700293 100644 --- a/src/Webapi/Dom/Webapi__Dom__Location.re +++ b/src/Webapi/Dom/Webapi__Dom__Location.re @@ -1,30 +1,30 @@ type t = Dom.location; /* a more ergonomic API would perhaps accept a Window.t directly instead of Location.t */ -[@get] external href : t => string = ""; -[@set] external setHref : (t, string) => unit = "href"; -[@get] external protocol : t => string = ""; -[@set] external setProtocol : (t, string) => unit = "protocol"; -[@get] external host : t => string = ""; -[@set] external setHost : (t, string) => unit = "host"; -[@get] external hostname : t => string = ""; -[@set] external setHostname : (t, string) => unit = "hostname"; -[@get] external port : t => string = ""; -[@set] external setPort : (t, string) => unit = "port"; -[@get] external pathname : t => string = ""; -[@set] external setPathname : (t, string) => unit = "pathname"; -[@get] external search : t => string = ""; -[@set] external setSearch : (t, string) => unit = "search"; -[@get] external hash : t => string = ""; -[@set] external setHash : (t, string) => unit = "hash"; -[@get] external username : t => string = ""; -[@set] external setUsername : (t, string) => unit = "username"; -[@get] external password : t => string = ""; -[@set] external setPassword : (t, string) => unit = "password"; -[@get] external origin : t => string = ""; +[@get] external href: t => string; +[@set] external setHref: (t, string) => unit = "href"; +[@get] external protocol: t => string; +[@set] external setProtocol: (t, string) => unit = "protocol"; +[@get] external host: t => string; +[@set] external setHost: (t, string) => unit = "host"; +[@get] external hostname: t => string; +[@set] external setHostname: (t, string) => unit = "hostname"; +[@get] external port: t => string; +[@set] external setPort: (t, string) => unit = "port"; +[@get] external pathname: t => string; +[@set] external setPathname: (t, string) => unit = "pathname"; +[@get] external search: t => string; +[@set] external setSearch: (t, string) => unit = "search"; +[@get] external hash: t => string; +[@set] external setHash: (t, string) => unit = "hash"; +[@get] external username: t => string; +[@set] external setUsername: (t, string) => unit = "username"; +[@get] external password: t => string; +[@set] external setPassword: (t, string) => unit = "password"; +[@get] external origin: t => string; -[@send] external assign: t => string => unit = ""; -[@send] external reload: t => unit = ""; -[@send] external reloadWithForce: (t, [@as {json|true|json}] _) => unit = "reload"; -[@send] external replace: t => string => unit = ""; -[@send] external toString: t => string = ""; +[@send] external assign: (t, string) => unit; +[@send] external reload: t => unit; +[@send] external reloadWithForce: (t, [@as {json|true|json}] _) => unit = "reload"; +[@send] external replace: (t, string) => unit; +[@send] external toString: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__MutationObserver.re b/src/Webapi/Dom/Webapi__Dom__MutationObserver.re index faa61bcb..6ec1ab71 100644 --- a/src/Webapi/Dom/Webapi__Dom__MutationObserver.re +++ b/src/Webapi/Dom/Webapi__Dom__MutationObserver.re @@ -1,7 +1,7 @@ type t = Dom.mutationObserver; -[@new] external make : ((array(Dom.mutationRecord), t) => unit) => t = "MutationObserver"; +[@new] external make: ((array(Dom.mutationRecord), t) => unit) => t = "MutationObserver"; -[@send] external observe: (t, Dom.node_like('a), Js.t({..})) => unit = ""; -[@send] external disconnect: t => unit = ""; -[@send] external takeRecords: t => array(Dom.mutationRecord) = ""; +[@send] external observe: (t, Dom.node_like('a), Js.t({..})) => unit; +[@send] external disconnect: t => unit; +[@send] external takeRecords: t => array(Dom.mutationRecord); diff --git a/src/Webapi/Dom/Webapi__Dom__MutationRecord.re b/src/Webapi/Dom/Webapi__Dom__MutationRecord.re index 8f467858..eb3feef2 100644 --- a/src/Webapi/Dom/Webapi__Dom__MutationRecord.re +++ b/src/Webapi/Dom/Webapi__Dom__MutationRecord.re @@ -1,11 +1,11 @@ type t = Dom.mutationRecord; -[@get] external type_ : t => string = "type"; -[@get] external target : t => Dom.node = ""; -[@get] external addedNodes : t => Dom.nodeList = ""; -[@get] external removedNodes : t => Dom.nodeList = ""; -[@get] [@return nullable] external previousSibling : t => option(Dom.node) = ""; -[@get] [@return nullable] external pnextSibling : t => option(Dom.node) = ""; -[@get] external attributeName : t => string = ""; -[@get] external attributeNamespace : t => string = ""; -[@get] external oldValue : t => string = ""; +[@get] external type_: t => string = "type"; +[@get] external target: t => Dom.node; +[@get] external addedNodes: t => Dom.nodeList; +[@get] external removedNodes: t => Dom.nodeList; +[@get] [@return nullable] external previousSibling: t => option(Dom.node); +[@get] [@return nullable] external pnextSibling: t => option(Dom.node); +[@get] external attributeName: t => string; +[@get] external attributeNamespace: t => string; +[@get] external oldValue: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re b/src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re index 686b86cf..535c625c 100644 --- a/src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re +++ b/src/Webapi/Dom/Webapi__Dom__NamedNodeMap.re @@ -1,13 +1,13 @@ type t = Dom.namedNodeMap; -[@get] external length : t => int = ""; +[@get] external length: t => int; -[@send] [@return nullable] external item: t => int => option(Dom.attr) = ""; -[@send] [@return nullable] external getNamedItem: t => string => option(Dom.attr) = ""; -[@send] [@return nullable] external getNamedItemNS: t => (string, string) => option(Dom.attr) = ""; -[@send] external setNamedItem: t => Dom.attr => unit = ""; -[@send] external setNamedItemNS: t => Dom.attr => unit = ""; -[@send] external removeNamedItem: t => string => Dom.attr = ""; -[@send] external removeNamedItemNS: (t, string, string) => Dom.attr = ""; +[@send] [@return nullable] external item: (t, int) => option(Dom.attr); +[@send] [@return nullable] external getNamedItem: (t, string) => option(Dom.attr); +[@send] [@return nullable] external getNamedItemNS: (t, string, string) => option(Dom.attr); +[@send] external setNamedItem: (t, Dom.attr) => unit; +[@send] external setNamedItemNS: (t, Dom.attr) => unit; +[@send] external removeNamedItem: (t, string) => Dom.attr; +[@send] external removeNamedItemNS: (t, string, string) => Dom.attr; -[@val] [@scope ("Array", "prototype", "slice")] external toArray : t => array(Dom.attr) = "call"; +[@val] [@scope ("Array", "prototype", "slice")] external toArray: t => array(Dom.attr) = "call"; diff --git a/src/Webapi/Dom/Webapi__Dom__Node.re b/src/Webapi/Dom/Webapi__Dom__Node.re index cd2725db..84a27c03 100644 --- a/src/Webapi/Dom/Webapi__Dom__Node.re +++ b/src/Webapi/Dom/Webapi__Dom__Node.re @@ -1,55 +1,65 @@ module Impl = (T: {type t;}) => { - external asNode : T.t => Dom.node = "%identity"; + external asNode: T.t => Dom.node = "%identity"; /* baseURI */ - [@get] external childNodes : T.t => Dom.nodeList = ""; - [@get] [@return nullable] external firstChild : T.t => option(Dom.node) = ""; - [@get] external innerText : T.t => string = ""; - [@set] external setInnerText : (T.t, string) => unit = "innerText"; - [@get] [@return nullable] external lastChild : T.t => option(Dom.node) = ""; - [@get] [@return nullable] external nextSibling : T.t => option(Dom.node) = ""; - [@get] external nodeName : T.t => string = ""; /* nodePrincipal */ - [@get] external nodeType : T.t => int /* nodeType enum */ = ""; - let nodeType: T.t => Webapi__Dom__Types.nodeType = (self) => Webapi__Dom__Types.decodeNodeType(nodeType(self)); - [@get] [@return nullable] external nodeValue : T.t => option(string) = ""; - [@set] external setNodeValue : (T.t, Js.null(string)) => unit = "nodeValue"; - /* let setNodeValue : T.t => option string => unit = fun self value => setNodeValue self (Js.Null.fromOption value); */ /* temporarily removed to reduce codegen size */ + [@get] external childNodes: T.t => Dom.nodeList; + [@get] [@return nullable] external firstChild: T.t => option(Dom.node); + [@get] external innerText: T.t => string; + [@set] external setInnerText: (T.t, string) => unit = "innerText"; + [@get] [@return nullable] external lastChild: T.t => option(Dom.node); + [@get] [@return nullable] external nextSibling: T.t => option(Dom.node); + [@get] external nodeName: T.t => string; /* nodePrincipal */ + [@get] external nodeType: T.t => int /* nodeType enum */; + let nodeType: T.t => Webapi__Dom__Types.nodeType = + self => Webapi__Dom__Types.decodeNodeType(nodeType(self)); + [@get] [@return nullable] external nodeValue: T.t => option(string); + [@set] external setNodeValue: (T.t, Js.null(string)) => unit = "nodeValue" /* let setNodeValue : T.t => option string => unit = fun self value => setNodeValue self (Js.Null.fromOption value); */; /* temporarily removed to reduce codegen size */ /* Not supported yet - [@set] external setNodeValue : T.t => string => unit = "nodeValue"; - [@set] external clearNodeValue : T.t => _ [@as {json|null|json}] => unit = "nodeValue"; - */ + [@set] external setNodeValue : T.t => string => unit = "nodeValue"; + [@set] external clearNodeValue : T.t => _ [@as {json|null|json}] => unit = "nodeValue"; + */ /* outerText */ - [@get] external ownerDocument : T.t => Dom.document = ""; - [@get] [@return nullable] external parentElement : T.t => option(Dom.element) = ""; - [@get] [@return nullable] external parentNode : T.t => option(Dom.node) = ""; - [@get] [@return nullable] external previousSibling : T.t => option(Dom.node) = ""; - [@get] external rootNode : T.t => Dom.node = ""; - [@get] external textContent : T.t => string = ""; - [@set] external setTextContent : (T.t, string) => unit = "textContent"; + [@get] external ownerDocument: T.t => Dom.document; + [@get] [@return nullable] external parentElement: T.t => option(Dom.element); + [@get] [@return nullable] external parentNode: T.t => option(Dom.node); + [@get] [@return nullable] external previousSibling: T.t => option(Dom.node); + [@get] external rootNode: T.t => Dom.node; + [@get] external textContent: T.t => string; + [@set] external setTextContent: (T.t, string) => unit = "textContent"; - [@send] external appendChild: T.t => Dom.node_like('a) => unit = ""; - [@send] external cloneNode: T.t => T.t = ""; - [@send] external cloneNodeDeep: (T.t, [@as {json|true|json}] _) => T.t = "cloneNode"; - [@send] external compareDocumentPosition: T.t => Dom.node_like('a) => int = ""; /* returns a bitmask which could also be represeneted as an enum, see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition */ - [@send] external contains: T.t => Dom.node_like('a) => bool = ""; - [@send] external getRootNode: T.t => Dom.node = ""; - [@send] external getRootNodeComposed: (T.t, [@as {json|{ "composed": true }|json}] _) => Dom.node = "getRootNode"; - [@send] external hasChildNodes: T.t => bool = ""; - [@send] external insertBefore: (T.t, Dom.node_like('a), Dom.node_like('b)) => Dom.node_like('a) = ""; - [@send] external isDefaultNamespace: T.t => string => bool = ""; - [@send] external isEqualNode: T.t => Dom.node_like('a) => bool = ""; - [@send] external isSameNode: T.t => Dom.node_like('a) => bool = ""; - [@send] [@return nullable] external lookupNamespaceURI: T.t => string => option(string) = ""; - [@send] [@return nullable] external lookupDefaultNamespaceURI: T.t => ([@as {json|null|json}] _) => option(string) = "lookupNamespaceURI"; + [@send] external appendChild: (T.t, Dom.node_like('a)) => unit; + [@send] external cloneNode: T.t => T.t; + [@send] external cloneNodeDeep: (T.t, [@as {json|true|json}] _) => T.t = "cloneNode"; + [@send] external compareDocumentPosition: (T.t, Dom.node_like('a)) => int; /* returns a bitmask which could also be represeneted as an enum, see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition */ + [@send] external contains: (T.t, Dom.node_like('a)) => bool; + [@send] external getRootNode: T.t => Dom.node; + [@send] + external getRootNodeComposed: (T.t, [@as {json|{ "composed": true }|json}] _) => Dom.node = + "getRootNode"; + [@send] external hasChildNodes: T.t => bool; + [@send] + external insertBefore: (T.t, Dom.node_like('a), Dom.node_like('b)) => Dom.node_like('a); + [@send] external isDefaultNamespace: (T.t, string) => bool; + [@send] external isEqualNode: (T.t, Dom.node_like('a)) => bool; + [@send] external isSameNode: (T.t, Dom.node_like('a)) => bool; + [@send] [@return nullable] external lookupNamespaceURI: (T.t, string) => option(string); + [@send] [@return nullable] + external lookupDefaultNamespaceURI: (T.t, [@as {json|null|json}] _) => option(string) = + "lookupNamespaceURI"; [@send] external lookupPrefix: T.t => string = "lookupPrefix"; - [@send] external normalize: T.t => unit = ""; - [@send] external removeChild: T.t => Dom.node_like('a) => Dom.node_like('a) = ""; + [@send] external normalize: T.t => unit; + [@send] external removeChild: (T.t, Dom.node_like('a)) => Dom.node_like('a); /** @since 0.19.0 */ - [@send] external replaceChild: (T.t, Dom.node_like('a), Dom.node_like('b)) => Dom.node_like('b) = ""; + [@send] + external replaceChild: (T.t, Dom.node_like('a), Dom.node_like('b)) => Dom.node_like('b); }; type t = Dom.node; -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__NodeIterator.re b/src/Webapi/Dom/Webapi__Dom__NodeIterator.re index de322103..3e976758 100644 --- a/src/Webapi/Dom/Webapi__Dom__NodeIterator.re +++ b/src/Webapi/Dom/Webapi__Dom__NodeIterator.re @@ -1,11 +1,11 @@ type t = Dom.nodeIterator; -[@get] external root : t => Dom.node = ""; -[@get] external referenceNode : t => Dom.node = ""; -[@get] external pointerBeforeReferenceNode : t => bool = ""; -[@get] external whatToShow : t => Webapi__Dom__Types.WhatToShow.t = ""; -[@get] [@return nullable] external filter : t => option(Dom.nodeFilter) = ""; +[@get] external root: t => Dom.node; +[@get] external referenceNode: t => Dom.node; +[@get] external pointerBeforeReferenceNode: t => bool; +[@get] external whatToShow: t => Webapi__Dom__Types.WhatToShow.t; +[@get] [@return nullable] external filter: t => option(Dom.nodeFilter); -[@send] [@return nullable] external nextNode: t => option(Dom.node) = ""; -[@send] [@return nullable] external previousNode: t => option(Dom.node) = ""; -[@send] external detach: t => unit = ""; +[@send] [@return nullable] external nextNode: t => option(Dom.node); +[@send] [@return nullable] external previousNode: t => option(Dom.node); +[@send] external detach: t => unit; diff --git a/src/Webapi/Dom/Webapi__Dom__NodeList.re b/src/Webapi/Dom/Webapi__Dom__NodeList.re index f0537cd2..3f8bbb56 100644 --- a/src/Webapi/Dom/Webapi__Dom__NodeList.re +++ b/src/Webapi/Dom/Webapi__Dom__NodeList.re @@ -1,9 +1,9 @@ type t = Dom.nodeList; -[@val] external toArray : t => array(Dom.node) = "Array.prototype.slice.call"; +[@val] external toArray: t => array(Dom.node) = "Array.prototype.slice.call"; -[@send] external forEach: (t, (Dom.node, int) => unit) => unit = ""; +[@send] external forEach: (t, (Dom.node, int) => unit) => unit; -[@get] external length : t => int = ""; +[@get] external length: t => int; -[@send] [@return nullable] external item: t => int => option(Dom.node) = ""; +[@send] [@return nullable] external item: (t, int) => option(Dom.node); diff --git a/src/Webapi/Dom/Webapi__Dom__NonDocumentTypeChildNode.re b/src/Webapi/Dom/Webapi__Dom__NonDocumentTypeChildNode.re index 3ce951d4..4c757079 100644 --- a/src/Webapi/Dom/Webapi__Dom__NonDocumentTypeChildNode.re +++ b/src/Webapi/Dom/Webapi__Dom__NonDocumentTypeChildNode.re @@ -1,5 +1,5 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@get] [@return nullable] external previousElementSibling : T.t => option(Dom.element) = ""; - [@get] [@return nullable] external nextElementSibling : T.t => option(Dom.element) = ""; + [@get] [@return nullable] external previousElementSibling: T.t => option(Dom.element); + [@get] [@return nullable] external nextElementSibling: T.t => option(Dom.element); }; diff --git a/src/Webapi/Dom/Webapi__Dom__NonElementParentNode.re b/src/Webapi/Dom/Webapi__Dom__NonElementParentNode.re index a4d8d60f..1d9d7834 100644 --- a/src/Webapi/Dom/Webapi__Dom__NonElementParentNode.re +++ b/src/Webapi/Dom/Webapi__Dom__NonElementParentNode.re @@ -1,4 +1,4 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@send] [@return nullable] external getElementById: T.t => string => option(Dom.element) = ""; + [@send] [@return nullable] external getElementById: (T.t, string) => option(Dom.element); }; diff --git a/src/Webapi/Dom/Webapi__Dom__PageTransitionEvent.re b/src/Webapi/Dom/Webapi__Dom__PageTransitionEvent.re index 7741dfd6..95ce6d8b 100644 --- a/src/Webapi/Dom/Webapi__Dom__PageTransitionEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__PageTransitionEvent.re @@ -1,8 +1,10 @@ type t = Dom.pageTransitionEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "PageTransitionEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "PageTransitionEvent"; +[@new] external make: string => t = "PageTransitionEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "PageTransitionEvent"; -[@get] external persisted : t => bool = ""; +[@get] external persisted: t => bool; diff --git a/src/Webapi/Dom/Webapi__Dom__ParentNode.re b/src/Webapi/Dom/Webapi__Dom__ParentNode.re index 68ea6b5b..966ea4ee 100644 --- a/src/Webapi/Dom/Webapi__Dom__ParentNode.re +++ b/src/Webapi/Dom/Webapi__Dom__ParentNode.re @@ -1,9 +1,9 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@get] external children : T.t => Dom.htmlCollection = ""; - [@get] [@return nullable] external firstElementChild : T.t => option(Dom.element) = ""; - [@get] [@return nullable] external lastElementChild : T.t => option(Dom.element) = ""; - [@get] external childElementCount : T.t => int = ""; - [@send] [@return nullable] external querySelector: T.t => string => option(Dom.element) = ""; - [@send] external querySelectorAll: T.t => string => Dom.nodeList = ""; + [@get] external children: T.t => Dom.htmlCollection; + [@get] [@return nullable] external firstElementChild: T.t => option(Dom.element); + [@get] [@return nullable] external lastElementChild: T.t => option(Dom.element); + [@get] external childElementCount: T.t => int; + [@send] [@return nullable] external querySelector: (T.t, string) => option(Dom.element); + [@send] external querySelectorAll: (T.t, string) => Dom.nodeList; }; diff --git a/src/Webapi/Dom/Webapi__Dom__PointerEvent.re b/src/Webapi/Dom/Webapi__Dom__PointerEvent.re index 40a191e6..0499a81e 100644 --- a/src/Webapi/Dom/Webapi__Dom__PointerEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__PointerEvent.re @@ -1,20 +1,26 @@ type t = Dom.pointerEvent; type pointerId = Dom.eventPointerId; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -include Webapi__Dom__MouseEvent.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__MouseEvent.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "PointerEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "PointerEvent"; +[@new] external make: string => t = "PointerEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "PointerEvent"; -[@get] external pointerId : t => pointerId = ""; -[@get] external width : t => int = ""; -[@get] external height : t => int = ""; -[@get] external pressure : t => float = ""; -[@get] external tiltX : t => int = ""; -[@get] external tiltY : t => int = ""; -[@get] external pointerType : t => string /* pointerType enum */ = ""; +[@get] external pointerId: t => pointerId; +[@get] external width: t => int; +[@get] external height: t => int; +[@get] external pressure: t => float; +[@get] external tiltX: t => int; +[@get] external tiltY: t => int; +[@get] external pointerType: t => string /* pointerType enum */; let pointerType: t => Webapi__Dom__Types.pointerType = - (self) => Webapi__Dom__Types.decodePointerType(pointerType(self)); -[@get] external isPrimary : t => bool = ""; + self => Webapi__Dom__Types.decodePointerType(pointerType(self)); +[@get] external isPrimary: t => bool; diff --git a/src/Webapi/Dom/Webapi__Dom__PopStateEvent.re b/src/Webapi/Dom/Webapi__Dom__PopStateEvent.re index 6bd585e9..f73e21d2 100644 --- a/src/Webapi/Dom/Webapi__Dom__PopStateEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__PopStateEvent.re @@ -1,8 +1,10 @@ type t = Dom.popStateEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "PopStateEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "PopStateEvent"; +[@new] external make: string => t = "PopStateEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "PopStateEvent"; -[@get] external state : t => Js.t({..}) = ""; +[@get] external state: t => Js.t({..}); diff --git a/src/Webapi/Dom/Webapi__Dom__ProcessingInstruction.re b/src/Webapi/Dom/Webapi__Dom__ProcessingInstruction.re index 6568f4ae..210577ff 100644 --- a/src/Webapi/Dom/Webapi__Dom__ProcessingInstruction.re +++ b/src/Webapi/Dom/Webapi__Dom__ProcessingInstruction.re @@ -1,8 +1,16 @@ type t = Dom.processingInstruction; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonDocumentTypeChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonDocumentTypeChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ChildNode.Impl({ + type nonrec t = t; +}); -[@get] external target : t => string = ""; +[@get] external target: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__ProgressEvent.re b/src/Webapi/Dom/Webapi__Dom__ProgressEvent.re index 25d8cedf..579ec10c 100644 --- a/src/Webapi/Dom/Webapi__Dom__ProgressEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__ProgressEvent.re @@ -1,10 +1,12 @@ type t = Dom.progressEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "ProgressEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "ProgressEvent"; +[@new] external make: string => t = "ProgressEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "ProgressEvent"; -[@get] external lengthComputable : t => bool = ""; -[@get] external loaded : t => int = ""; -[@get] external total : t => int = ""; +[@get] external lengthComputable: t => bool; +[@get] external loaded: t => int; +[@get] external total: t => int; diff --git a/src/Webapi/Dom/Webapi__Dom__Range.re b/src/Webapi/Dom/Webapi__Dom__Range.re index c65dbda8..541671a0 100644 --- a/src/Webapi/Dom/Webapi__Dom__Range.re +++ b/src/Webapi/Dom/Webapi__Dom__Range.re @@ -11,19 +11,19 @@ type t = Dom.range; [@send] external setStart: (t, Dom.node_like('a), int) => unit; [@send] external setEnd: (t, Dom.node_like('a), int) => unit; -[@send] external setStartBefore: t => Dom.node_like('a) => unit; -[@send] external setStartAfter: t => Dom.node_like('a) => unit; -[@send] external setEndBefore: t => Dom.node_like('a) => unit; -[@send] external setEndAfter: t => Dom.node_like('a) => unit; -[@send] external selectNode: t => Dom.node_like('a) => unit; -[@send] external selectNodeContents: t => Dom.node_like('a) => unit; +[@send] external setStartBefore: (t, Dom.node_like('a)) => unit; +[@send] external setStartAfter: (t, Dom.node_like('a)) => unit; +[@send] external setEndBefore: (t, Dom.node_like('a)) => unit; +[@send] external setEndAfter: (t, Dom.node_like('a)) => unit; +[@send] external selectNode: (t, Dom.node_like('a)) => unit; +[@send] external selectNodeContents: (t, Dom.node_like('a)) => unit; [@send] external collapse: t => unit; [@send] external collapseToStart: (t, [@as {json|true|json}] _) => unit = "collapse"; [@send] external cloneContents: t => Dom.documentFragment; [@send] external deleteContents: t => unit; [@send] external extractContents: t => Dom.documentFragment; -[@send] external insertNode: t => Dom.node_like('a) => unit; -[@send] external surroundContents: t => Dom.node_like('a) => unit; +[@send] external insertNode: (t, Dom.node_like('a)) => unit; +[@send] external surroundContents: (t, Dom.node_like('a)) => unit; [@send] external compareBoundaryPoints: (t, int /* compareHow enum */, t) => int /* compareResult enum */; let compareBoundaryPoint: (t, Webapi__Dom__Types.compareHow, t) => Webapi__Dom__Types.compareResult = @@ -38,8 +38,8 @@ let compareBoundaryPoint: (t, Webapi__Dom__Types.compareHow, t) => Webapi__Dom__ let comparePoint: (t, Dom.node_like('a), int) => Webapi__Dom__Types.compareResult = (self, node, offset) => Webapi__Dom__Types.decodeCompareResult(self->comparePoint(node, offset)); -[@send] external createContextualFragment: t => string => Dom.documentFragment; /* experimental, but widely supported */ +[@send] external createContextualFragment: (t, string) => Dom.documentFragment; /* experimental, but widely supported */ [@send] external getBoundingClientRect: t => Dom.domRect; /* experimental, but widely supported */ [@send] external getClientRects: t => array(Dom.domRect); /* experimental, but widely supported */ -[@send] external intersectsNode: t => Dom.node_like('a) => bool; +[@send] external intersectsNode: (t, Dom.node_like('a)) => bool; [@send] external isPointInRange: (t, Dom.node_like('a), int) => bool; diff --git a/src/Webapi/Dom/Webapi__Dom__RelatedEvent.re b/src/Webapi/Dom/Webapi__Dom__RelatedEvent.re index 5712ac64..fe907f6f 100644 --- a/src/Webapi/Dom/Webapi__Dom__RelatedEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__RelatedEvent.re @@ -1,8 +1,10 @@ type t = Dom.relatedEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "RelatedEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "RelatedEvent"; +[@new] external make: string => t = "RelatedEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "RelatedEvent"; -[@get] [@return nullable] external relatedTarget : t => option(Dom.eventTarget) = ""; +[@get] [@return nullable] external relatedTarget: t => option(Dom.eventTarget); diff --git a/src/Webapi/Dom/Webapi__Dom__Selection.re b/src/Webapi/Dom/Webapi__Dom__Selection.re index 420ef605..efb25b02 100644 --- a/src/Webapi/Dom/Webapi__Dom__Selection.re +++ b/src/Webapi/Dom/Webapi__Dom__Selection.re @@ -1,23 +1,25 @@ type t = Dom.selection; -[@get] [@return nullable] external anchorNode : t => option(Dom.node) = ""; -[@get] external anchorOffset : t => int = ""; -[@get] [@return nullable] external focusNode : t => option(Dom.node) = ""; -[@get] external focusOffset : t => int = ""; -[@get] external isCollapsed : t => bool = ""; -[@get] external rangeCount : t => int = ""; +[@get] [@return nullable] external anchorNode: t => option(Dom.node); +[@get] external anchorOffset: t => int; +[@get] [@return nullable] external focusNode: t => option(Dom.node); +[@get] external focusOffset: t => int; +[@get] external isCollapsed: t => bool; +[@get] external rangeCount: t => int; -[@send] external getRangeAt: t => int => Dom.range = ""; -[@send] external collapse: (t, Dom.node_like(_), int) => unit = ""; -[@send] external extend: (t, Dom.node_like(_), int) => unit = ""; -[@send] external collapseToStart: t => unit = ""; -[@send] external collapseToEnd: t => unit = ""; -[@send] external selectAllChildren: t => Dom.node_like(_) => unit = ""; -[@send] external setBaseAndExtent: (t, Dom.node_like(_), int, Dom.node_like(_), int) => unit = ""; -[@send] external addRange: t => Dom.range => unit = ""; -[@send] external removeRange: t => Dom.range => unit = ""; -[@send] external removeAllRanges: t => unit = ""; -[@send] external deleteFromDocument: t => unit = ""; -[@send] external toString: t => string = ""; -[@send] external containsNode: (t, Dom.node_like(_), [@as {json|false|json}] _) => bool = ""; -[@send] external containsNodePartly: (t, Dom.node_like(_), [@as {json|true|json}] _) => bool = "containsNode"; +[@send] external getRangeAt: (t, int) => Dom.range; +[@send] external collapse: (t, Dom.node_like(_), int) => unit; +[@send] external extend: (t, Dom.node_like(_), int) => unit; +[@send] external collapseToStart: t => unit; +[@send] external collapseToEnd: t => unit; +[@send] external selectAllChildren: (t, Dom.node_like(_)) => unit; +[@send] external setBaseAndExtent: (t, Dom.node_like(_), int, Dom.node_like(_), int) => unit; +[@send] external addRange: (t, Dom.range) => unit; +[@send] external removeRange: (t, Dom.range) => unit; +[@send] external removeAllRanges: t => unit; +[@send] external deleteFromDocument: t => unit; +[@send] external toString: t => string; +[@send] external containsNode: (t, Dom.node_like(_), [@as {json|false|json}] _) => bool; +[@send] +external containsNodePartly: (t, Dom.node_like(_), [@as {json|true|json}] _) => bool = + "containsNode"; diff --git a/src/Webapi/Dom/Webapi__Dom__ShadowRoot.re b/src/Webapi/Dom/Webapi__Dom__ShadowRoot.re index c82540ef..cf39d20e 100644 --- a/src/Webapi/Dom/Webapi__Dom__ShadowRoot.re +++ b/src/Webapi/Dom/Webapi__Dom__ShadowRoot.re @@ -1,11 +1,19 @@ type t = Dom.shadowRoot; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonElementParentNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ParentNode.Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonElementParentNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ParentNode.Impl({ + type nonrec t = t; +}); -[@get] external shadowRootMode : t => string = ""; +[@get] external shadowRootMode: t => string; let shadowRootMode: t => Webapi__Dom__Types.shadowRootMode = - (self) => Webapi__Dom__Types.decodeShadowRootMode(shadowRootMode(self)); -[@get] external host : t => Dom.element = ""; + self => Webapi__Dom__Types.decodeShadowRootMode(shadowRootMode(self)); +[@get] external host: t => Dom.element; diff --git a/src/Webapi/Dom/Webapi__Dom__Slotable.re b/src/Webapi/Dom/Webapi__Dom__Slotable.re index a54dc57a..cbc51753 100644 --- a/src/Webapi/Dom/Webapi__Dom__Slotable.re +++ b/src/Webapi/Dom/Webapi__Dom__Slotable.re @@ -1,4 +1,4 @@ /* Mixin */ module Impl = (T: {type t;}) => { - [@get] [@return nullable] external assignedSlot : T.t => option(Dom.htmlSlotElement) = ""; + [@get] [@return nullable] external assignedSlot: T.t => option(Dom.htmlSlotElement); }; diff --git a/src/Webapi/Dom/Webapi__Dom__StorageEvent.re b/src/Webapi/Dom/Webapi__Dom__StorageEvent.re index 64a4f9dd..02eb7d57 100644 --- a/src/Webapi/Dom/Webapi__Dom__StorageEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__StorageEvent.re @@ -1,12 +1,14 @@ type t = Dom.storageEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "StorageEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "StorageEvent"; +[@new] external make: string => t = "StorageEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "StorageEvent"; -[@get] external key : t => string = ""; -[@get] external newValue : t => Js.Nullable.t(string) = ""; -[@get] external oldValue : t => Js.Nullable.t(string) = ""; -[@get] external storageArea : t => Dom.Storage.t = ""; -[@get] external url : t => string = ""; +[@get] external key: t => string; +[@get] external newValue: t => Js.Nullable.t(string); +[@get] external oldValue: t => Js.Nullable.t(string); +[@get] external storageArea: t => Dom.Storage.t; +[@get] external url: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re b/src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re index 21ea1950..5d06835e 100644 --- a/src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__SvgZoomEvent.re @@ -1,13 +1,17 @@ type t = Dom.svgZoomEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "SVGZoomEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "SVGZoomEvent"; +[@new] external make: string => t = "SVGZoomEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "SVGZoomEvent"; -[@get] external zoomRectScreen : t => Dom.svgRect = ""; -[@get] external previousScale : t => float = ""; -[@get] external previousTranslate : t => Dom.svgPoint = ""; -[@get] external newScale : t => float = ""; -[@get] external newTranslate : t => Dom.svgPoint = ""; +[@get] external zoomRectScreen: t => Dom.svgRect; +[@get] external previousScale: t => float; +[@get] external previousTranslate: t => Dom.svgPoint; +[@get] external newScale: t => float; +[@get] external newTranslate: t => Dom.svgPoint; diff --git a/src/Webapi/Dom/Webapi__Dom__Text.re b/src/Webapi/Dom/Webapi__Dom__Text.re index acf0858c..473a1bdb 100644 --- a/src/Webapi/Dom/Webapi__Dom__Text.re +++ b/src/Webapi/Dom/Webapi__Dom__Text.re @@ -1,21 +1,33 @@ -let ofNode = (node: Dom.node) : option('a) => - Webapi__Dom__Node.nodeType(node) == Webapi__Dom__Types.Text ? - Some(Obj.magic(node)) : - None; +let ofNode = (node: Dom.node): option('a) => + Webapi__Dom__Node.nodeType(node) == Webapi__Dom__Types.Text ? Some(Obj.magic(node)) : None; module Impl = (T: {type t;}) => { let ofNode: Dom.node => option(T.t) = ofNode; - [@send] external splitText: (T.t, ~offset: int, unit) => Dom.text = ""; - [@get] external wholeText : T.t => string = ""; + [@send] external splitText: (T.t, ~offset: int, unit) => Dom.text; + [@get] external wholeText: T.t => string; }; type t = Dom.text; -include Webapi__Dom__Node.Impl({ type nonrec t = t; }); -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__CharacterData.Impl({ type nonrec t = t; }); -include Webapi__Dom__NonDocumentTypeChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__ChildNode.Impl({ type nonrec t = t; }); -include Webapi__Dom__Slotable.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__Node.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__CharacterData.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__NonDocumentTypeChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__ChildNode.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__Slotable.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/Dom/Webapi__Dom__TimeEvent.re b/src/Webapi/Dom/Webapi__Dom__TimeEvent.re index 0ffd9f19..d8d905da 100644 --- a/src/Webapi/Dom/Webapi__Dom__TimeEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__TimeEvent.re @@ -1,9 +1,11 @@ type t = Dom.timeEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "TimeEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "TimeEvent"; +[@new] external make: string => t = "TimeEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "TimeEvent"; -[@get] external detail : t => int = ""; -[@get] external view : t => Dom.window = ""; /* technically returns a `WindowProxy` */ +[@get] external detail: t => int; +[@get] external view: t => Dom.window; /* technically returns a `WindowProxy` */ diff --git a/src/Webapi/Dom/Webapi__Dom__TouchEvent.re b/src/Webapi/Dom/Webapi__Dom__TouchEvent.re index f4d924ce..0b063d74 100644 --- a/src/Webapi/Dom/Webapi__Dom__TouchEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__TouchEvent.re @@ -1,20 +1,26 @@ type touchList; /* TODO, Touch Events */ module Impl = (T: {type t;}) => { - [@get] external altKey : T.t => bool = ""; - [@get] external changedTouches : T.t => touchList = ""; - [@get] external ctrlKey : T.t => bool = ""; - [@get] external metaKey : T.t => bool = ""; - [@get] external shiftKey : T.t => bool = ""; - [@get] external targetTouches : T.t => touchList = ""; - [@get] external touches : T.t => touchList = ""; + [@get] external altKey: T.t => bool; + [@get] external changedTouches: T.t => touchList; + [@get] external ctrlKey: T.t => bool; + [@get] external metaKey: T.t => bool; + [@get] external shiftKey: T.t => bool; + [@get] external targetTouches: T.t => touchList; + [@get] external touches: T.t => touchList; }; type t = Dom.touchEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "TouchEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "TouchEvent"; +[@new] external make: string => t = "TouchEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "TouchEvent"; diff --git a/src/Webapi/Dom/Webapi__Dom__TrackEvent.re b/src/Webapi/Dom/Webapi__Dom__TrackEvent.re index fc666939..0f373c2e 100644 --- a/src/Webapi/Dom/Webapi__Dom__TrackEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__TrackEvent.re @@ -1,9 +1,11 @@ type t = Dom.trackEvent; type track; /* TODO: VideoTrack or AudioTrack or TextTrack */ -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "TrackEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "TrackEvent"; +[@new] external make: string => t = "TrackEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "TrackEvent"; -[@get] external track : t => track = ""; +[@get] external track: t => track; diff --git a/src/Webapi/Dom/Webapi__Dom__TransitionEvent.re b/src/Webapi/Dom/Webapi__Dom__TransitionEvent.re index 624d4b6d..4bd1359b 100644 --- a/src/Webapi/Dom/Webapi__Dom__TransitionEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__TransitionEvent.re @@ -1,10 +1,12 @@ type t = Dom.transitionEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "TransitionEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "TransitionEvent"; +[@new] external make: string => t = "TransitionEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "TransitionEvent"; -[@get] external propertyName : t => string = ""; -[@get] external elapsedTime : t => float = ""; -[@get] external pseudoElement : t => string /* enum-ish */ = ""; +[@get] external propertyName: t => string; +[@get] external elapsedTime: t => float; +[@get] external pseudoElement: t => string /* enum-ish */; diff --git a/src/Webapi/Dom/Webapi__Dom__TreeWalker.re b/src/Webapi/Dom/Webapi__Dom__TreeWalker.re index d3231f2a..a667c203 100644 --- a/src/Webapi/Dom/Webapi__Dom__TreeWalker.re +++ b/src/Webapi/Dom/Webapi__Dom__TreeWalker.re @@ -1,15 +1,15 @@ type t = Dom.treeWalker; -[@get] external root : t => Dom.node = ""; -[@get] external whatToShow : t => Webapi__Dom__Types.WhatToShow.t = ""; -[@get] [@return nullable] external filter : t => option(Dom.nodeFilter) = ""; -[@get] external currentNode : t => Dom.node = ""; -[@set] external setCurrentNode : (t, Dom.node) => unit = ""; +[@get] external root: t => Dom.node; +[@get] external whatToShow: t => Webapi__Dom__Types.WhatToShow.t; +[@get] [@return nullable] external filter: t => option(Dom.nodeFilter); +[@get] external currentNode: t => Dom.node; +[@set] external setCurrentNode: (t, Dom.node) => unit; -[@send] [@return nullable] external parentNode: t => option(Dom.node) = ""; -[@send] [@return nullable] external firstChild: t => option(Dom.node) = ""; -[@send] [@return nullable] external lastChild: t => option(Dom.node) = ""; -[@send] [@return nullable] external previousSibling: t => option(Dom.node) = ""; -[@send] [@return nullable] external nextSibling: t => option(Dom.node) = ""; -[@send] [@return nullable] external previousNode: t => option(Dom.node) = ""; -[@send] [@return nullable] external nextNode: t => option(Dom.node) = ""; +[@send] [@return nullable] external parentNode: t => option(Dom.node); +[@send] [@return nullable] external firstChild: t => option(Dom.node); +[@send] [@return nullable] external lastChild: t => option(Dom.node); +[@send] [@return nullable] external previousSibling: t => option(Dom.node); +[@send] [@return nullable] external nextSibling: t => option(Dom.node); +[@send] [@return nullable] external previousNode: t => option(Dom.node); +[@send] [@return nullable] external nextNode: t => option(Dom.node); diff --git a/src/Webapi/Dom/Webapi__Dom__Types.re b/src/Webapi/Dom/Webapi__Dom__Types.re index 8d77cc7e..88ef2d1c 100644 --- a/src/Webapi/Dom/Webapi__Dom__Types.re +++ b/src/Webapi/Dom/Webapi__Dom__Types.re @@ -121,12 +121,7 @@ module EventPhase = { }; [@deprecated "Use EventPhase.t"] -type eventPhase = EventPhase.t = - | None - | CapturingPhase - | AtTarget - | BubblingPhase - | Unknown; +type eventPhase = EventPhase.t = | None | CapturingPhase | AtTarget | BubblingPhase | Unknown; type filterAction = | Accept diff --git a/src/Webapi/Dom/Webapi__Dom__UiEvent.re b/src/Webapi/Dom/Webapi__Dom__UiEvent.re index f83e3f82..74183b61 100644 --- a/src/Webapi/Dom/Webapi__Dom__UiEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__UiEvent.re @@ -1,12 +1,16 @@ module Impl = (T: {type t;}) => { - [@get] external detail : T.t => int = ""; - [@get] external view : T.t => Dom.window = ""; /* technically returns a `WindowProxy` */ + [@get] external detail: T.t => int; + [@get] external view: T.t => Dom.window; /* technically returns a `WindowProxy` */ }; type t = Dom.uiEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "UIEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "UIEvent"; +[@new] external make: string => t = "UIEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "UIEvent"; diff --git a/src/Webapi/Dom/Webapi__Dom__ValidityState.re b/src/Webapi/Dom/Webapi__Dom__ValidityState.re index 6b0295c9..816f1768 100644 --- a/src/Webapi/Dom/Webapi__Dom__ValidityState.re +++ b/src/Webapi/Dom/Webapi__Dom__ValidityState.re @@ -1,13 +1,13 @@ type t; -[@get] external valueMissing : t => bool = ""; -[@get] external typeMismatch : t => bool = ""; -[@get] external patternMismatch : t => bool = ""; -[@get] external tooLong : t => bool = ""; -[@get] external tooShort : t => bool = ""; -[@get] external rangeUnderflow : t => bool = ""; -[@get] external rangeOverflow : t => bool = ""; -[@get] external stepMismatch : t => bool = ""; -[@get] external badInput : t => bool = ""; -[@get] external customError : t => bool = ""; -[@get] external valid : t => bool = ""; +[@get] external valueMissing: t => bool; +[@get] external typeMismatch: t => bool; +[@get] external patternMismatch: t => bool; +[@get] external tooLong: t => bool; +[@get] external tooShort: t => bool; +[@get] external rangeUnderflow: t => bool; +[@get] external rangeOverflow: t => bool; +[@get] external stepMismatch: t => bool; +[@get] external badInput: t => bool; +[@get] external customError: t => bool; +[@get] external valid: t => bool; diff --git a/src/Webapi/Dom/Webapi__Dom__WebGlContextEvent.re b/src/Webapi/Dom/Webapi__Dom__WebGlContextEvent.re index fae08838..fbbcd584 100644 --- a/src/Webapi/Dom/Webapi__Dom__WebGlContextEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__WebGlContextEvent.re @@ -1,8 +1,10 @@ type t = Dom.webGlContextEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "WebGLContextEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "WebGLContextEvent"; +[@new] external make: string => t = "WebGLContextEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "WebGLContextEvent"; -[@get] external statusMessage : t => string = ""; +[@get] external statusMessage: t => string; diff --git a/src/Webapi/Dom/Webapi__Dom__WheelEvent.re b/src/Webapi/Dom/Webapi__Dom__WheelEvent.re index fd628b8d..84c37d09 100644 --- a/src/Webapi/Dom/Webapi__Dom__WheelEvent.re +++ b/src/Webapi/Dom/Webapi__Dom__WheelEvent.re @@ -1,15 +1,21 @@ type t = Dom.wheelEvent; -include Webapi__Dom__Event.Impl({ type nonrec t = t; }); -include Webapi__Dom__UiEvent.Impl({ type nonrec t = t; }); -include Webapi__Dom__MouseEvent.Impl({ type nonrec t = t; }); +include Webapi__Dom__Event.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__UiEvent.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__MouseEvent.Impl({ + type nonrec t = t; +}); -[@new] external make : string => t = "WheelEvent"; -[@new] external makeWithOptions : (string, Js.t({..})) => t = "WheelEvent"; +[@new] external make: string => t = "WheelEvent"; +[@new] external makeWithOptions: (string, Js.t({..})) => t = "WheelEvent"; -[@get] external deltaX : t => float = ""; -[@get] external deltaY : t => float = ""; -[@get] external deltaZ : t => float = ""; -[@get] external deltaMode : t => int = ""; -let deltaMode: t => Webapi__Dom__Types.deltaMode = (self) => - Webapi__Dom__Types.decodeDeltaMode(deltaMode(self)); +[@get] external deltaX: t => float; +[@get] external deltaY: t => float; +[@get] external deltaZ: t => float; +[@get] external deltaMode: t => int; +let deltaMode: t => Webapi__Dom__Types.deltaMode = + self => Webapi__Dom__Types.decodeDeltaMode(deltaMode(self)); diff --git a/src/Webapi/Dom/Webapi__Dom__Window.re b/src/Webapi/Dom/Webapi__Dom__Window.re index 9dd6c272..b063fab9 100644 --- a/src/Webapi/Dom/Webapi__Dom__Window.re +++ b/src/Webapi/Dom/Webapi__Dom__Window.re @@ -21,86 +21,109 @@ module Impl = (T: {type t;}) => { /* A lot of this isn't really "dom", but rather global exports */ - [@get] external console : t_window => console = ""; - [@get] external crypto : t_window => crypto = ""; - [@get] external document : t_window => Dom.document = ""; - [@get] [@return nullable] external frameElement : t_window => option(Dom.element) = ""; /* experimental? */ - [@get] external frames : t_window => frameList = ""; - [@get] external fullScreen : t_window => bool = ""; - [@get] external history : t_window => Dom.history = ""; - [@get] external innerWidth : t_window => int = ""; - [@get] external innerHeight : t_window => int = ""; - [@get] external isSecureContext : t_window => bool = ""; - [@get] external length : t_window => int = ""; - [@get] external location : t_window => Dom.location = ""; - [@set] external setLocation : (t_window, string) => unit = "location"; - [@get] external locationbar : t_window => locationbar = ""; + [@get] external console: t_window => console; + [@get] external crypto: t_window => crypto; + [@get] external document: t_window => Dom.document; + [@get] [@return nullable] external frameElement: t_window => option(Dom.element); /* experimental? */ + [@get] external frames: t_window => frameList; + [@get] external fullScreen: t_window => bool; + [@get] external history: t_window => Dom.history; + [@get] external innerWidth: t_window => int; + [@get] external innerHeight: t_window => int; + [@get] external isSecureContext: t_window => bool; + [@get] external length: t_window => int; + [@get] external location: t_window => Dom.location; + [@set] external setLocation: (t_window, string) => unit = "location"; + [@get] external locationbar: t_window => locationbar; /* localStorage: accessed directly via Dom.Storage.localStorage */ - [@get] external menubar : t_window => menubar = ""; - [@get] external name : t_window => string = ""; - [@set] external setName : (t_window, string) => unit = "name"; - [@get] external navigator : t_window => navigator = ""; - [@get] [@return nullable] external opener : t_window => option(Dom.window) = ""; - [@get] external outerWidth : t_window => int = ""; - [@get] external outerHeight : t_window => int = ""; - [@get] external pageXOffset : t_window => float = ""; /* alias for scrollX */ - [@get] external pageYOffset : t_window => float = ""; /* alias for scrollY */ - [@get] external parent : t_window => Dom.window = ""; - [@get] external performance : t_window => Webapi__Performance.t = ""; - [@get] external personalbar : t_window => personalbar = ""; - [@get] external screen : t_window => screen = ""; - [@get] external screenX : t_window => int = ""; - [@get] external screenY : t_window => int = ""; - [@get] external scrollbars : t_window => scrollbars = ""; - [@get] external scrollX : t_window => float = ""; - [@get] external scrollY : t_window => float = ""; - [@get] external self : t_window => Dom.window = ""; /* alias for window, but apparently convenient because self (stand-alone) resolves to WorkerGlobalScope in a web worker. Probably poitnless here though */ + [@get] external menubar: t_window => menubar; + [@get] external name: t_window => string; + [@set] external setName: (t_window, string) => unit = "name"; + [@get] external navigator: t_window => navigator; + [@get] [@return nullable] external opener: t_window => option(Dom.window); + [@get] external outerWidth: t_window => int; + [@get] external outerHeight: t_window => int; + [@get] external pageXOffset: t_window => float; /* alias for scrollX */ + [@get] external pageYOffset: t_window => float; /* alias for scrollY */ + [@get] external parent: t_window => Dom.window; + [@get] external performance: t_window => Webapi__Performance.t; + [@get] external personalbar: t_window => personalbar; + [@get] external screen: t_window => screen; + [@get] external screenX: t_window => int; + [@get] external screenY: t_window => int; + [@get] external scrollbars: t_window => scrollbars; + [@get] external scrollX: t_window => float; + [@get] external scrollY: t_window => float; + [@get] external self: t_window => Dom.window; /* alias for window, but apparently convenient because self (stand-alone) resolves to WorkerGlobalScope in a web worker. Probably poitnless here though */ /* sessionStorage: accessed directly via Dom.Storage.sessionStorage */ - [@get] external speechSynthesis : t_window => speechSynthesis = ""; /* experimental */ - [@get] external status : t_window => string = ""; - [@set] external setStatus : (t_window, string) => unit = "status"; - [@get] external statusbar : t_window => statusbar = ""; - [@get] external toolbar : t_window => toolbar = ""; - [@get] external top : t_window => Dom.window = ""; - [@get] external window : t_window => t_window = ""; /* This is pointless I think, it's just here because window is the implicit global scope, and it's needed to be able to get a reference to it */ + [@get] external speechSynthesis: t_window => speechSynthesis; /* experimental */ + [@get] external status: t_window => string; + [@set] external setStatus: (t_window, string) => unit = "status"; + [@get] external statusbar: t_window => statusbar; + [@get] external toolbar: t_window => toolbar; + [@get] external top: t_window => Dom.window; + [@get] external window: t_window => t_window; /* This is pointless I think, it's just here because window is the implicit global scope, and it's needed to be able to get a reference to it */ - [@send] external alert: t_window => string => unit = ""; - [@send] external blur: t_window => unit = ""; - [@send] external cancelIdleCallback: t_window => idleCallbackId => unit = ""; /* experimental, Cooperative Scheduling of Background Tasks */ - [@send] external close: t_window => unit = ""; - [@send] external confirm: t_window => string => bool = ""; - [@send] external focus: t_window => unit = ""; - [@send] external getComputedStyle: t_window => Dom.element => Dom.cssStyleDeclaration = ""; - [@send] external getComputedStyleWithPseudoElement: (t_window, Dom.element, string) => Dom.cssStyleDeclaration = "getComputedStyle"; - [@send] external getSelection: t_window => Dom.selection = ""; - [@send] external matchMedia: t_window => string => mediaQueryList = ""; /* experimental, CSSOM View module */ - [@send] external moveBy: (t_window, int, int) => unit = ""; /* experimental, CSSOM View module */ - [@send] external moveTo: (t_window, int, int) => unit = ""; /* experimental, CSSOM View module */ - [@send] [@return nullable] external open_: t_window => (~url: string, ~name: string, ~features: string=?) => option(Dom.window) = "open"; /* yes, features is a stringly typed list of key value pairs, sigh */ - [@send] external postMessage: (t_window, 'a, string) => unit = ""; /* experimental-ish?, Web Messaging */ - [@send] external postMessageWithTransfers: (t_window, 'a, string, array(transferable)) => unit = "postMessage"; /* experimental-ish?, Web Messaging */ - [@send] external print: t_window => unit = ""; - [@send] external prompt: t_window => string => string = ""; - [@send] external promptWithDefault: (t_window, string, string) => string = "prompt"; + [@send] external alert: (t_window, string) => unit; + [@send] external blur: t_window => unit; + [@send] external cancelIdleCallback: (t_window, idleCallbackId) => unit; /* experimental, Cooperative Scheduling of Background Tasks */ + [@send] external close: t_window => unit; + [@send] external confirm: (t_window, string) => bool; + [@send] external focus: t_window => unit; + [@send] external getComputedStyle: (t_window, Dom.element) => Dom.cssStyleDeclaration; + [@send] + external getComputedStyleWithPseudoElement: + (t_window, Dom.element, string) => Dom.cssStyleDeclaration = + "getComputedStyle"; + [@send] external getSelection: t_window => Dom.selection; + [@send] external matchMedia: (t_window, string) => mediaQueryList; /* experimental, CSSOM View module */ + [@send] external moveBy: (t_window, int, int) => unit; /* experimental, CSSOM View module */ + [@send] external moveTo: (t_window, int, int) => unit; /* experimental, CSSOM View module */ + [@send] [@return nullable] + external open_: + (t_window, ~url: string, ~name: string, ~features: string=?) => option(Dom.window) = + "open"; /* yes, features is a stringly typed list of key value pairs, sigh */ + [@send] external postMessage: (t_window, 'a, string) => unit; /* experimental-ish?, Web Messaging */ + [@send] + external postMessageWithTransfers: (t_window, 'a, string, array(transferable)) => unit = + "postMessage"; /* experimental-ish?, Web Messaging */ + [@send] external print: t_window => unit; + [@send] external prompt: (t_window, string) => string; + [@send] external promptWithDefault: (t_window, string, string) => string = "prompt"; /* requestAnimationFrame: accessed directly via Webapi */ - [@send] external requestIdleCallback: (t_window, idleDeadline => unit) => idleCallbackId = ""; /* experimental, Cooperative Scheduling of Background Tasks */ - [@send] external requestIdleCallbackWithOptions: (t_window, idleDeadline => unit, {. "timeout": int}) => idleCallbackId = "requestIdleCallback"; /* experimental, Cooperative Scheduling of Background Tasks */ - [@send] external resizeBy: (t_window, int, int) => unit = ""; /* experimental, CSSOM View module */ - [@send] external resizeTo: (t_window, int, int) => unit = ""; /* experimental, CSSOM View module */ - [@send] external scroll: (t_window, float, float) => unit = ""; /* experimental, CSSOM View module */ - [@send] external scrollBy: (t_window, float, float) => unit = ""; /* experimental, CSSOM View module */ - [@send] external scrollTo: (t_window, float, float) => unit = ""; /* experimental, CSSOM View module */ - [@send] external stop: t_window => unit = ""; + [@send] external requestIdleCallback: (t_window, idleDeadline => unit) => idleCallbackId; /* experimental, Cooperative Scheduling of Background Tasks */ + [@send] + external requestIdleCallbackWithOptions: + (t_window, idleDeadline => unit, {. "timeout": int}) => idleCallbackId = + "requestIdleCallback"; /* experimental, Cooperative Scheduling of Background Tasks */ + [@send] external resizeBy: (t_window, int, int) => unit; /* experimental, CSSOM View module */ + [@send] external resizeTo: (t_window, int, int) => unit; /* experimental, CSSOM View module */ + [@send] external scroll: (t_window, float, float) => unit; /* experimental, CSSOM View module */ + [@send] external scrollBy: (t_window, float, float) => unit; /* experimental, CSSOM View module */ + [@send] external scrollTo: (t_window, float, float) => unit; /* experimental, CSSOM View module */ + [@send] external stop: t_window => unit; - [@send] external addPopStateEventListener: (t_window, [@as "popstate"] _, Dom.popStateEvent => unit) => unit = "addEventListener"; - [@send] external removePopStateEventListener: (t_window, [@as "popstate"] _, Dom.popStateEvent => unit) => unit= "removeEventListener"; + [@send] + external addPopStateEventListener: + (t_window, [@as "popstate"] _, Dom.popStateEvent => unit) => unit = + "addEventListener"; + [@send] + external removePopStateEventListener: + (t_window, [@as "popstate"] _, Dom.popStateEvent => unit) => unit = + "removeEventListener"; - [@set] external setOnLoad : (t_window, unit => unit) => unit = "onload"; /* use addEventListener instead? */ + [@set] external setOnLoad: (t_window, unit => unit) => unit = "onload"; /* use addEventListener instead? */ }; type t = Dom.window; /* include WindowOrWorkerGlobalScope? not really "dom" though */ -include Webapi__Dom__EventTarget.Impl({ type nonrec t = t; }); -include Webapi__Dom__GlobalEventHandlers.Impl({ type nonrec t = t; }); -include Impl({ type nonrec t = t; }); +include Webapi__Dom__EventTarget.Impl({ + type nonrec t = t; +}); +include Webapi__Dom__GlobalEventHandlers.Impl({ + type nonrec t = t; +}); +include Impl({ + type nonrec t = t; +}); diff --git a/src/Webapi/ResizeObserver/Webapi__ResizeObserver__ResizeObserverEntry.re b/src/Webapi/ResizeObserver/Webapi__ResizeObserver__ResizeObserverEntry.re index 48643de2..e218f47d 100644 --- a/src/Webapi/ResizeObserver/Webapi__ResizeObserver__ResizeObserverEntry.re +++ b/src/Webapi/ResizeObserver/Webapi__ResizeObserver__ResizeObserverEntry.re @@ -1,4 +1,4 @@ type t; -[@get] external contentRect: t => Dom.domRect = ""; -[@get] external target: t => Dom.element = ""; +[@get] external contentRect: t => Dom.domRect; +[@get] external target: t => Dom.element; diff --git a/src/Webapi/Webapi__Base64.re b/src/Webapi/Webapi__Base64.re index ada44be4..2c3d991f 100644 --- a/src/Webapi/Webapi__Base64.re +++ b/src/Webapi/Webapi__Base64.re @@ -1,2 +1,2 @@ -[@val] external btoa : string => string = ""; -[@val] external atob : string => string = ""; +[@val] external btoa: string => string; +[@val] external atob: string => string; diff --git a/src/Webapi/Webapi__Canvas.re b/src/Webapi/Webapi__Canvas.re index 5f118654..b445b2ed 100644 --- a/src/Webapi/Webapi__Canvas.re +++ b/src/Webapi/Webapi__Canvas.re @@ -2,10 +2,10 @@ module Canvas2d = Webapi__Canvas__Canvas2d; module WebGl = Webapi__Canvas__WebGl; module CanvasElement = { - [@send] external getContext2d : (Dom.element, [@as "2d"] _) => Canvas2d.t = "getContext"; - [@send] external getContextWebGl : (Dom.element, [@as "webgl"] _) => WebGl.glT = "getContext"; - [@get] external height : Dom.element => int = "height"; - [@set] external setHeight : (Dom.element, int) => unit = "height"; - [@get] external width : Dom.element => int = "width"; - [@set] external setWidth : (Dom.element, int) => unit = "width"; + [@send] external getContext2d: (Dom.element, [@as "2d"] _) => Canvas2d.t = "getContext"; + [@send] external getContextWebGl: (Dom.element, [@as "webgl"] _) => WebGl.glT = "getContext"; + [@get] external height: Dom.element => int = "height"; + [@set] external setHeight: (Dom.element, int) => unit = "height"; + [@get] external width: Dom.element => int = "width"; + [@set] external setWidth: (Dom.element, int) => unit = "width"; }; diff --git a/src/Webapi/Webapi__Dom.re b/src/Webapi/Webapi__Dom.re index 56a8b9c5..dd9444bf 100644 --- a/src/Webapi/Webapi__Dom.re +++ b/src/Webapi/Webapi__Dom.re @@ -67,11 +67,10 @@ module Window = Webapi__Dom__Window; include Webapi__Dom__Types; -[@val] external window : Dom.window = "window"; -[@val] external document : Dom.document = "document"; -[@val] [@scope "window"] external history : Dom.history = "history"; -[@val] [@scope "window"] external location : Dom.location = "location"; - +[@val] external window: Dom.window = "window"; +[@val] external document: Dom.document = "document"; +[@val] [@scope "window"] external history: Dom.history = "history"; +[@val] [@scope "window"] external location: Dom.location = "location"; /* Unimplemented interfaces (aka. "The TODO list") diff --git a/src/Webapi/Webapi__File.re b/src/Webapi/Webapi__File.re index 08a819d4..1a585670 100644 --- a/src/Webapi/Webapi__File.re +++ b/src/Webapi/Webapi__File.re @@ -2,15 +2,16 @@ type t = Fetch.file; [@text "{1 Blob superclass}"]; -include Webapi__Blob.Impl({type nonrec t = t}); +include Webapi__Blob.Impl({ + type nonrec t = t; +}); [@text "{1 File class}"]; -/** @since 0.18.0 */ -[@get] external lastModified: t => float = ""; +/** @since 0.18.0 */ [@get] external lastModified: t => float; // [@new] external make: ... = "File"; -[@get] external name: t => string = ""; +[@get] external name: t => string; -[@get] external preview: t => string = ""; +[@get] external preview: t => string; diff --git a/src/Webapi/Webapi__Performance.re b/src/Webapi/Webapi__Performance.re index e2ab10c6..da90b77e 100644 --- a/src/Webapi/Webapi__Performance.re +++ b/src/Webapi/Webapi__Performance.re @@ -1,3 +1,3 @@ type t; -[@send] external now : t => float = ""; +[@send] external now: t => float; diff --git a/src/Webapi/Webapi__ResizeObserver.re b/src/Webapi/Webapi__ResizeObserver.re index 96b16abd..0ae6a996 100644 --- a/src/Webapi/Webapi__ResizeObserver.re +++ b/src/Webapi/Webapi__ResizeObserver.re @@ -2,12 +2,10 @@ module ResizeObserverEntry = Webapi__ResizeObserver__ResizeObserverEntry; type t; +[@new] external make: (array(ResizeObserverEntry.t) => unit) => t = "ResizeObserver"; [@new] -external make: (array(ResizeObserverEntry.t) => unit) => t = "ResizeObserver"; -[@new] -external makeWithObserver: ((array(ResizeObserverEntry.t), t) => unit) => t = - "ResizeObserver"; +external makeWithObserver: ((array(ResizeObserverEntry.t), t) => unit) => t = "ResizeObserver"; -[@send] external disconnect: t => unit = ""; -[@send] external observe: (t, Dom.element) => unit = ""; -[@send] external unobserve: (t, Dom.element) => unit = ""; +[@send] external disconnect: t => unit; +[@send] external observe: (t, Dom.element) => unit; +[@send] external unobserve: (t, Dom.element) => unit; diff --git a/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re b/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re index be6d2bb2..b3b14310 100644 --- a/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re +++ b/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re @@ -55,9 +55,9 @@ ctx->arc(~x=1., ~y=1., ~r=4., ~startAngle=1., ~endAngle=3., ~anticw=true); ctx->rect(~x=0., ~y=0., ~w=10., ~h=10.); let _ = ctx->isPointInPath(~x=0., ~y=0.); -let linearGradient = ctx |> createLinearGradient(~x0=0.0, ~y0=0.0, ~x1=0.0, ~y1=0.0); +let linearGradient = ctx->createLinearGradient(~x0=0.0, ~y0=0.0, ~x1=0.0, ~y1=0.0); setStrokeStyle(ctx, Gradient, linearGradient); -let _ = ctx |> createRadialGradient(~x0=0.0, ~y0=0.0, ~x1=0.0, ~y1=0.0, ~r0=0.0, ~r1=0.0); +let _ = ctx->createRadialGradient(~x0=0.0, ~y0=0.0, ~x1=0.0, ~y1=0.0, ~r0=0.0, ~r1=0.0); linearGradient->addColorStop(0.0, "red"); let _ = List.map( diff --git a/tests/Webapi/Dom/Webapi__Dom__HtmlFormElement__test.re b/tests/Webapi/Dom/Webapi__Dom__HtmlFormElement__test.re index fe0ab98e..438db5ea 100644 --- a/tests/Webapi/Dom/Webapi__Dom__HtmlFormElement__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__HtmlFormElement__test.re @@ -1,4 +1,4 @@ open Webapi.FormData; open Webapi.Dom.HtmlFormElement; -let test_data = formElement => formElement |> data |> get("foo"); +let test_data = formElement => formElement->data |> get("foo"); diff --git a/tests/Webapi/Webapi__Blob__test.re b/tests/Webapi/Webapi__Blob__test.re index c7d7fdbc..22b8da8b 100644 --- a/tests/Webapi/Webapi__Blob__test.re +++ b/tests/Webapi/Webapi__Blob__test.re @@ -1,19 +1,18 @@ open Webapi.Blob; let test_arrayBuffer = blob => - blob - |> arrayBuffer + blob->arrayBuffer |> Js.Promise.then_(buffer => - buffer |> Js.Typed_array.ArrayBuffer.byteLength |> Js.log |> Js.Promise.resolve + buffer->Js.Typed_array.ArrayBuffer.byteLength->Js.log->Js.Promise.resolve ); -let test_size = blob => blob |> size |> Js.log; +let test_size = blob => blob->size->Js.log; let test_slice = blob => test_size(blob->slice(~start=0, ())); -let test_stream = blob => blob |> stream; +let test_stream = blob => blob->stream; let test_text = blob => - blob |> text |> Js.Promise.then_(string => string |> Js.log |> Js.Promise.resolve); + blob->text |> Js.Promise.then_(string => string->Js.log->Js.Promise.resolve); -let test_type = blob => blob |> type_ |> Js.log; +let test_type = blob => blob->type_->Js.log; diff --git a/tests/Webapi/Webapi__File__test.re b/tests/Webapi/Webapi__File__test.re index da0bbc66..519ba2b6 100644 --- a/tests/Webapi/Webapi__File__test.re +++ b/tests/Webapi/Webapi__File__test.re @@ -1,5 +1,5 @@ open Webapi.File; -let test_lastModified = file => file |> lastModified |> Js.log; -let test_name = file => file |> name |> Js.log; -let test_preview = file => file |> preview |> Js.log; +let test_lastModified = file => file->lastModified->Js.log; +let test_name = file => file->name->Js.log; +let test_preview = file => file->preview->Js.log; diff --git a/tests/Webapi/Webapi__Performace__test.re b/tests/Webapi/Webapi__Performace__test.re index 2f8d1b41..7a7135b4 100644 --- a/tests/Webapi/Webapi__Performace__test.re +++ b/tests/Webapi/Webapi__Performace__test.re @@ -1,4 +1 @@ -let _ = - Webapi.Dom.window - |> Webapi.Dom.Window.performance - |> Webapi.Performance.now; +let _ = Webapi.Dom.window->Webapi.Dom.Window.performance->Webapi.Performance.now; diff --git a/tests/Webapi/Webapi__ReadableStream__test.re b/tests/Webapi/Webapi__ReadableStream__test.re index 7861bb9e..23c0a38b 100644 --- a/tests/Webapi/Webapi__ReadableStream__test.re +++ b/tests/Webapi/Webapi__ReadableStream__test.re @@ -6,31 +6,18 @@ module DefaultReader__test = { let test_closed = reader => closed(reader); let test_cancel = reader => - reader - |> cancel - |> Js.Promise.then_(() => - "cancelled" - |> Js.log - |> Js.Promise.resolve); + reader->cancel |> Js.Promise.then_(() => "cancelled"->Js.log->Js.Promise.resolve); let test_cancelWith = reader => - reader - -> cancelWith("reason") - |> Js.Promise.then_(reason => - reason - |> Js.log - |> Js.Promise.resolve); + reader->cancelWith("reason") |> Js.Promise.then_(reason => reason->Js.log->Js.Promise.resolve); let test_releaseLock = reader => releaseLock(reader); let test_read = reader => - reader - |> read + reader->read |> Js.Promise.then_(next => - next - |> Fetch__Iterator.Next.value - |> Belt.Option.forEach(_, Js.log) - |> Js.Promise.resolve); + next->Fetch__Iterator.Next.value->Belt.Option.forEach(_, Js.log)->Js.Promise.resolve + ); }; let test_locked = stream => locked(stream); @@ -46,6 +33,6 @@ let test_getReaderBYOB = stream => getReaderBYOB(stream); let test_tee = stream => { let (stream1, stream2) = tee(stream); - stream1 |> cancel |> ignore; - stream2 |> cancel |> ignore; + stream1->cancel->ignore; + stream2->cancel->ignore; }; diff --git a/tests/Webapi/Webapi__Url__test.re b/tests/Webapi/Webapi__Url__test.re index c91020a7..746b484c 100644 --- a/tests/Webapi/Webapi__Url__test.re +++ b/tests/Webapi/Webapi__Url__test.re @@ -2,5 +2,5 @@ open Webapi.Url; let params = URLSearchParams.make("key1=value1&key2=value2"); params->URLSearchParams.forEach(Js.log2); -let test_entries = params => params |> URLSearchParams.entries |> Js.Array.from; +let test_entries = params => params->URLSearchParams.entries->Js.Array.from; Js.log(test_entries(params)); diff --git a/tests/testHelpers.re b/tests/testHelpers.re index 7a9e4c71..88c765dd 100644 --- a/tests/testHelpers.re +++ b/tests/testHelpers.re @@ -1,3 +1,4 @@ let unsafelyUnwrapOption = - fun | Some(v) => v - | None => raise(Invalid_argument("Passed `None` to unsafelyUnwrapOption")); + fun + | Some(v) => v + | None => raise(Invalid_argument("Passed `None` to unsafelyUnwrapOption")); From 2ac923d5b0d1c61620141ed508c34005fa9fbf2c Mon Sep 17 00:00:00 2001 From: Andrew Herron Date: Mon, 31 May 2021 16:38:03 +1000 Subject: [PATCH 3/7] TINY-7416: Update tests, and fix a few bugs, now that this branch is rebased with test diffs --- .../Canvas/Webapi__Canvas__Canvas2d__test.js | 14 ++------------ .../Webapi/Dom/Webapi__Dom__DomStringMap__test.js | 5 ++--- .../Webapi/Dom/Webapi__Dom__DragEvent__test.js | 2 +- .../tests/Webapi/Dom/Webapi__Dom__Element__test.js | 6 +++--- .../Webapi/Dom/Webapi__Dom__HtmlDocument__test.js | 2 +- .../Webapi/Dom/Webapi__Dom__KeyboardEvent__test.js | 2 +- .../Webapi/Dom/Webapi__Dom__MouseEvent__test.js | 2 +- .../Webapi/Dom/Webapi__Dom__PointerEvent__test.js | 2 +- .../tests/Webapi/Dom/Webapi__Dom__Range__test.js | 2 +- src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re | 4 ++-- src/Webapi/Dom/Webapi__Dom__DomTokenList.re | 4 ++-- src/Webapi/Dom/Webapi__Dom__Window.re | 3 ++- .../Canvas/Webapi__Canvas__Canvas2d__test.re | 8 ++++---- tests/Webapi/Dom/Webapi__Dom__Element__test.re | 2 +- tests/Webapi/Dom/Webapi__Dom__Window__test.re | 4 ++-- 15 files changed, 26 insertions(+), 36 deletions(-) diff --git a/lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js b/lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js index 57f47536..74e9e96b 100644 --- a/lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js +++ b/lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js @@ -160,19 +160,9 @@ ctx.textAlign = "left"; ctx.textBaseline = "top"; -function arg(param, param$1) { - param$1.fillText("hi", 1, 0, param !== undefined ? Caml_option.valFromOption(param) : undefined); +ctx.fillText("hi", 1, 0, undefined); -} - -arg(undefined, ctx); - -function arg$1(param, param$1) { - param$1.strokeText("hi", 1, 0, param !== undefined ? Caml_option.valFromOption(param) : undefined); - -} - -arg$1(undefined, ctx); +ctx.strokeText("hi", 1, 0, undefined); ctx.fillRect(1, 0, 10, 10); diff --git a/lib/js/tests/Webapi/Dom/Webapi__Dom__DomStringMap__test.js b/lib/js/tests/Webapi/Dom/Webapi__Dom__DomStringMap__test.js index 0f775534..50ddff52 100644 --- a/lib/js/tests/Webapi/Dom/Webapi__Dom__DomStringMap__test.js +++ b/lib/js/tests/Webapi/Dom/Webapi__Dom__DomStringMap__test.js @@ -13,9 +13,8 @@ var dataset = Belt_Option.map(__x, (function (prim) { if (dataset !== undefined) { var dataset$1 = Caml_option.valFromOption(dataset); - Webapi__Dom__DomStringMap.set("fooKey", "barValue", dataset$1); - Webapi__Dom__DomStringMap.get("fooKey", dataset$1); - Webapi__Dom__DomStringMap.unsafeDeleteKey("fooKey", dataset$1); + dataset$1["fooKey"] = "barValue"; + Webapi__Dom__DomStringMap.unsafeDeleteKey(dataset$1, "fooKey"); } exports.dataset = dataset; diff --git a/lib/js/tests/Webapi/Dom/Webapi__Dom__DragEvent__test.js b/lib/js/tests/Webapi/Dom/Webapi__Dom__DragEvent__test.js index 54d0692b..6fa54f17 100644 --- a/lib/js/tests/Webapi/Dom/Webapi__Dom__DragEvent__test.js +++ b/lib/js/tests/Webapi/Dom/Webapi__Dom__DragEvent__test.js @@ -13,7 +13,7 @@ $$event.stopImmediatePropagation(); $$event.stopPropagation(); -Curry._2(Webapi__Dom__DragEvent.getModifierState, /* Alt */0, $$event); +Curry._2(Webapi__Dom__DragEvent.getModifierState, $$event, /* Alt */0); exports.$$event = $$event; /* event Not a pure module */ diff --git a/lib/js/tests/Webapi/Dom/Webapi__Dom__Element__test.js b/lib/js/tests/Webapi/Dom/Webapi__Dom__Element__test.js index dda18483..20e8c70b 100644 --- a/lib/js/tests/Webapi/Dom/Webapi__Dom__Element__test.js +++ b/lib/js/tests/Webapi/Dom/Webapi__Dom__Element__test.js @@ -60,11 +60,11 @@ el.hasAttributeNS("http://...", "foo"); el.hasAttributes(); -Webapi__Dom__Element.insertAdjacentElement(/* BeforeBegin */0, el2, el); +Webapi__Dom__Element.insertAdjacentElement(el, /* BeforeBegin */0, el2); -Webapi__Dom__Element.insertAdjacentHTML(/* AfterBegin */1, "text", el); +Webapi__Dom__Element.insertAdjacentHTML(el, /* AfterBegin */1, "text"); -Webapi__Dom__Element.insertAdjacentText(/* AfterEnd */3, "text", el); +Webapi__Dom__Element.insertAdjacentText(el, /* AfterEnd */3, "text"); el.matches("input"); diff --git a/lib/js/tests/Webapi/Dom/Webapi__Dom__HtmlDocument__test.js b/lib/js/tests/Webapi/Dom/Webapi__Dom__HtmlDocument__test.js index 6fe1382e..b0384c3d 100644 --- a/lib/js/tests/Webapi/Dom/Webapi__Dom__HtmlDocument__test.js +++ b/lib/js/tests/Webapi/Dom/Webapi__Dom__HtmlDocument__test.js @@ -30,7 +30,7 @@ htmlDocument.title = "Reason: Rapid Expressive Systems Programming."; htmlDocument.close(); -Webapi__Dom__HtmlDocument.execCommand("copy", false, undefined, htmlDocument); +Webapi__Dom__HtmlDocument.execCommand(htmlDocument, "copy", false, undefined); htmlDocument.getElementsByName("angry-joe"); diff --git a/lib/js/tests/Webapi/Dom/Webapi__Dom__KeyboardEvent__test.js b/lib/js/tests/Webapi/Dom/Webapi__Dom__KeyboardEvent__test.js index b1569998..0b060ce8 100644 --- a/lib/js/tests/Webapi/Dom/Webapi__Dom__KeyboardEvent__test.js +++ b/lib/js/tests/Webapi/Dom/Webapi__Dom__KeyboardEvent__test.js @@ -13,7 +13,7 @@ $$event.stopImmediatePropagation(); $$event.stopPropagation(); -Webapi__Dom__KeyboardEvent.getModifierState(/* Alt */0, $$event); +Webapi__Dom__KeyboardEvent.getModifierState($$event, /* Alt */0); exports.$$event = $$event; /* event Not a pure module */ diff --git a/lib/js/tests/Webapi/Dom/Webapi__Dom__MouseEvent__test.js b/lib/js/tests/Webapi/Dom/Webapi__Dom__MouseEvent__test.js index 7107f7df..65ef53d9 100644 --- a/lib/js/tests/Webapi/Dom/Webapi__Dom__MouseEvent__test.js +++ b/lib/js/tests/Webapi/Dom/Webapi__Dom__MouseEvent__test.js @@ -13,7 +13,7 @@ $$event.stopImmediatePropagation(); $$event.stopPropagation(); -Webapi__Dom__MouseEvent.getModifierState(/* Alt */0, $$event); +Webapi__Dom__MouseEvent.getModifierState($$event, /* Alt */0); exports.$$event = $$event; /* event Not a pure module */ diff --git a/lib/js/tests/Webapi/Dom/Webapi__Dom__PointerEvent__test.js b/lib/js/tests/Webapi/Dom/Webapi__Dom__PointerEvent__test.js index 92d9b4b2..0ca5693e 100644 --- a/lib/js/tests/Webapi/Dom/Webapi__Dom__PointerEvent__test.js +++ b/lib/js/tests/Webapi/Dom/Webapi__Dom__PointerEvent__test.js @@ -13,7 +13,7 @@ $$event.stopImmediatePropagation(); $$event.stopPropagation(); -Curry._2(Webapi__Dom__PointerEvent.getModifierState, /* Alt */0, $$event); +Curry._2(Webapi__Dom__PointerEvent.getModifierState, $$event, /* Alt */0); Webapi__Dom__PointerEvent.pointerType($$event); diff --git a/lib/js/tests/Webapi/Dom/Webapi__Dom__Range__test.js b/lib/js/tests/Webapi/Dom/Webapi__Dom__Range__test.js index b474e368..16a62d5e 100644 --- a/lib/js/tests/Webapi/Dom/Webapi__Dom__Range__test.js +++ b/lib/js/tests/Webapi/Dom/Webapi__Dom__Range__test.js @@ -44,7 +44,7 @@ range.detach(); range.toString(); -Webapi__Dom__Range.comparePoint(node, 0, range); +Webapi__Dom__Range.comparePoint(range, node, 0); range.createContextualFragment("stuff"); diff --git a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re index 56cb21be..a1ac0a1c 100644 --- a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re +++ b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re @@ -198,8 +198,8 @@ external arc: [@set] external font: (t, string) => unit; [@set] external textAlign: (t, string) => unit; [@set] external textBaseline: (t, string) => unit; -[@send] external fillText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?) => unit; -[@send] external strokeText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?) => unit; +[@send] external fillText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?, [@ignore] unit) => unit; +[@send] external strokeText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?, [@ignore] unit) => unit; [@send] external measureText: (t, string) => measureText; [@get] external width: measureText => float; diff --git a/src/Webapi/Dom/Webapi__Dom__DomTokenList.re b/src/Webapi/Dom/Webapi__Dom__DomTokenList.re index f761a8aa..8a67ae89 100644 --- a/src/Webapi/Dom/Webapi__Dom__DomTokenList.re +++ b/src/Webapi/Dom/Webapi__Dom__DomTokenList.re @@ -4,13 +4,13 @@ type t = Dom.domTokenList; [@send] [@return nullable] external item: (t, int) => option(string); [@send] external add: (t, string) => unit; -[@send] [@splice] external addMany: (t, array(string)) => unit = "add"; +[@send] [@variadic] external addMany: (t, array(string)) => unit = "add"; [@send] external contains: (t, string) => bool = "contains"; /* entries: iterator API, should have language support */ [@send] external forEach: (t, (string, int) => unit) => unit; /* keys: iterator API, should have language support */ [@send] external remove: (t, string) => unit; -[@send] [@splice] external removeMany: (t, array(string)) => unit = "remove"; +[@send] [@variadic] external removeMany: (t, array(string)) => unit = "remove"; [@send] external replace: (t, string, string) => unit; /* experimental */ [@send] external supports: (t, string) => bool; /* experimental, Content Management Level 1 */ [@send] external toggle: (t, string) => bool; diff --git a/src/Webapi/Dom/Webapi__Dom__Window.re b/src/Webapi/Dom/Webapi__Dom__Window.re index b063fab9..b0bc0469 100644 --- a/src/Webapi/Dom/Webapi__Dom__Window.re +++ b/src/Webapi/Dom/Webapi__Dom__Window.re @@ -81,7 +81,8 @@ module Impl = (T: {type t;}) => { [@send] external moveTo: (t_window, int, int) => unit; /* experimental, CSSOM View module */ [@send] [@return nullable] external open_: - (t_window, ~url: string, ~name: string, ~features: string=?) => option(Dom.window) = + (t_window, ~url: string, ~name: string, ~features: string=?, [@ignore] unit) => + option(Dom.window) = "open"; /* yes, features is a stringly typed list of key value pairs, sigh */ [@send] external postMessage: (t_window, 'a, string) => unit; /* experimental-ish?, Web Messaging */ [@send] diff --git a/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re b/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re index b3b14310..f6edc82f 100644 --- a/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re +++ b/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re @@ -67,8 +67,8 @@ let _ = let measureText = ctx->measureText("foo"); let width = width(measureText); -ctx->fillText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width); -ctx->strokeText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width); +ctx->fillText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width, ()); +ctx->strokeText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width, ()); let imageData = createImageDataCoords(ctx, ~width=0.0, ~height=0.0); createImageDataFromImage(ctx, imageData); Image.width(imageData); @@ -91,8 +91,8 @@ let _: unit = font(ctx, "10px Courier"); textAlign(ctx, "left"); textBaseline(ctx, "top"); -ctx->fillText("hi", ~x=1., ~y=0.); -ctx->strokeText("hi", ~x=1., ~y=0.); +ctx->fillText("hi", ~x=1., ~y=0., ()); +ctx->strokeText("hi", ~x=1., ~y=0., ()); ctx->fillRect(~x=1., ~y=0., ~w=10., ~h=10.); ctx->strokeRect(~x=1., ~y=0., ~w=10., ~h=10.); diff --git a/tests/Webapi/Dom/Webapi__Dom__Element__test.re b/tests/Webapi/Dom/Webapi__Dom__Element__test.re index 8ac74a31..872a0664 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Element__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Element__test.re @@ -52,7 +52,7 @@ let _ = el->getElementsByTagNameNS("http://...", "td"); let _ = el->hasAttribute("data-my-value"); let _ = el->hasAttributeNS("http://...", "foo"); let _ = el->hasAttributes; -let _ = el->insertAdjacentElement(BeforeBegin, el); +let _ = el->insertAdjacentElement(BeforeBegin, el2); let _ = el->insertAdjacentHTML(AfterBegin, "text"); let _ = el->insertAdjacentText(AfterEnd, "text"); let _ = el->matches("input"); diff --git a/tests/Webapi/Dom/Webapi__Dom__Window__test.re b/tests/Webapi/Dom/Webapi__Dom__Window__test.re index 6c6839cb..f148ff9e 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Window__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Window__test.re @@ -58,8 +58,8 @@ let _ = Window.getSelection(window); let _ = window->Window.matchMedia("max-height: 400"); let _ = window->Window.moveBy(10, -10); let _ = window->Window.moveTo(120, 300); -let _ = window->Window.open_(~url="http://...", ~name="my window", ~features="menubar=yes"); -let _ = window->Window.open_(~url="http://...", ~name="my window"); +let _: option(Dom.window) = window->Window.open_(~url="http://...", ~name="my window", ~features="menubar=yes" ,()); +let _: option(Dom.window) = window->Window.open_(~url="http://...", ~name="my window", ()); window->Window.postMessage("my message", "*"); Window.print(window); let _ = window->Window.prompt("type you password, please?"); From a58d301e445a230b8c0d34aede6db586e2b36cc6 Mon Sep 17 00:00:00 2001 From: Andrew Herron Date: Mon, 31 May 2021 16:42:28 +1000 Subject: [PATCH 4/7] TINY-7416: Activate a long-dormant technique to reduce codegen that was waiting on a bugfix... merged in 2017 --- .../Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js | 9 ++++----- src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re | 11 ++--------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js b/lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js index 74e9e96b..77ff7aa2 100644 --- a/lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js +++ b/lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js @@ -1,7 +1,6 @@ 'use strict'; var List = require("bs-platform/lib/js/list.js"); -var Caml_option = require("bs-platform/lib/js/caml_option.js"); var Webapi__Canvas__Canvas2d = require("../../../src/Webapi/Canvas/Webapi__Canvas__Canvas2d.js"); var canvasEl = document.createElement("canvas"); @@ -32,9 +31,9 @@ ctx.lineJoin = Webapi__Canvas__Canvas2d.LineJoin.round; ctx.miterLimit = 10; -Webapi__Canvas__Canvas2d.setStrokeStyle(ctx, /* String */0, "red"); +ctx.strokeStyle = "red"; -Webapi__Canvas__Canvas2d.setFillStyle(ctx, /* String */0, "red"); +ctx.fillStyle = "red"; var match = Webapi__Canvas__Canvas2d.fillStyle(ctx); @@ -100,7 +99,7 @@ ctx.isPointInPath(0, 0); var linearGradient = ctx.createLinearGradient(0.0, 0.0, 0.0, 0.0); -Webapi__Canvas__Canvas2d.setStrokeStyle(ctx, /* Gradient */1, linearGradient); +ctx.strokeStyle = linearGradient; ctx.createRadialGradient(0.0, 0.0, 0.0, 0.0, 0.0, 0.0); @@ -161,7 +160,7 @@ ctx.textAlign = "left"; ctx.textBaseline = "top"; ctx.fillText("hi", 1, 0, undefined); - + ctx.strokeText("hi", 1, 0, undefined); ctx.fillRect(1, 0, 10, 10); diff --git a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re index a1ac0a1c..65a4cac1 100644 --- a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re +++ b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re @@ -103,15 +103,8 @@ external setTransform: [@set] external miterLimit: (t, float) => unit; /* Colors, Styles, and Shadows */ -[@set] external setFillStyle: (t, 'a) => unit = "fillStyle"; -[@set] external setStrokeStyle: (t, 'a) => unit = "strokeStyle"; - -/* in re unused warnings - awaiting release of https://github.com/bloomberg/bucklescript/issues/1656 - to just use [@@bs.set] directly with an ignored (style a) */ -let setStrokeStyle = (type a, ctx: t, _: style(a), v: a) => setStrokeStyle(ctx, v); - -let setFillStyle = (type a, ctx: t, _: style(a), v: a) => setFillStyle(ctx, v); +[@set] external setFillStyle: (t, [@ignore] style('a), 'a) => unit = "fillStyle"; +[@set] external setStrokeStyle: (t, [@ignore] style('a), 'a) => unit = "strokeStyle"; let reifyStyle = (type a, x: 'a): (style(a), a) => { let isCanvasGradient: 'a => bool = [%raw From 70af532eb04cea92ad737dd8264849e1d129394d Mon Sep 17 00:00:00 2001 From: Andrew Herron Date: Mon, 31 May 2021 16:45:21 +1000 Subject: [PATCH 5/7] TINY-7416: Turn on all warnings except 105, and fix the problems that highlights. Reformat code. --- bsconfig.json | 4 ++-- examples/dom_example.re | 23 +++++++++++-------- src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re | 6 +++-- .../Canvas/Webapi__Canvas__Canvas2d__test.re | 8 +++---- .../Dom/Webapi__Dom__EventTarget__test.re | 2 +- tests/Webapi/Dom/Webapi__Dom__Window__test.re | 3 ++- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/bsconfig.json b/bsconfig.json index cd278f80..5e21b966 100644 --- a/bsconfig.json +++ b/bsconfig.json @@ -17,8 +17,8 @@ } ], "warnings": { - "number": "+A-42-48-105-109", - "error": "+A-3-44-102" + "number": "+A-105", + "error": "+A" }, "bs-dependencies": [ "bs-fetch" diff --git a/examples/dom_example.re b/examples/dom_example.re index 6caa9240..5f65817d 100644 --- a/examples/dom_example.re +++ b/examples/dom_example.re @@ -11,9 +11,10 @@ let unwrapUnsafely = /* * These SHOULD type check */ -document->Document.createElement("div")->Element.className; +let _ = document->Document.createElement("div")->Element.className; -document->Document.createElement("div")->Element.nextElementSibling->map(Element.innerText); /* innerText is a function that accepts a Node */ +let _ = + document->Document.createElement("div")->Element.nextElementSibling->map(Element.innerText); /* innerText is a function that accepts a Node */ /* Before subtyping: document -> Document.createElement("div") @@ -23,10 +24,11 @@ document->Document.createElement("div")->Element.nextElementSibling->map(Element */ /* After subtyping: */ -document -->Document.createElement("div") -->Element.parentElement /* inherited from Node, returns DomRe.element */ -->map(Element.innerText); /* inherited from Node */ +let _ = + document + ->Document.createElement("div") + ->Element.parentElement /* inherited from Node, returns DomRe.element */ + ->map(Element.innerText); /* inherited from Node */ let el = document->Document.createElement("div")->Element.asHtmlElement->unwrapUnsafely; @@ -43,10 +45,11 @@ let el = document->Document.createElement("div")->Element.asHtmlElement->unwrapU */ /* After subtyping: */ -document -->Document.asHtmlDocument -->flatMap(HtmlDocument.body) -->map(body => body->Element.appendChild(el)); +let _ = + document + ->Document.asHtmlDocument + ->flatMap(HtmlDocument.body) + ->map(body => body->Element.appendChild(el)); /* /* diff --git a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re index 65a4cac1..d9271602 100644 --- a/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re +++ b/src/Webapi/Canvas/Webapi__Canvas__Canvas2d.re @@ -191,8 +191,10 @@ external arc: [@set] external font: (t, string) => unit; [@set] external textAlign: (t, string) => unit; [@set] external textBaseline: (t, string) => unit; -[@send] external fillText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?, [@ignore] unit) => unit; -[@send] external strokeText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?, [@ignore] unit) => unit; +[@send] +external fillText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?, [@ignore] unit) => unit; +[@send] +external strokeText: (t, string, ~x: float, ~y: float, ~maxWidth: float=?, [@ignore] unit) => unit; [@send] external measureText: (t, string) => measureText; [@get] external width: measureText => float; diff --git a/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re b/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re index f6edc82f..75594b7e 100644 --- a/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re +++ b/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.re @@ -70,11 +70,11 @@ let width = width(measureText); ctx->fillText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width, ()); ctx->strokeText("foo!", ~x=0.0, ~y=0.0, ~maxWidth=width, ()); let imageData = createImageDataCoords(ctx, ~width=0.0, ~height=0.0); -createImageDataFromImage(ctx, imageData); -Image.width(imageData); -Image.height(imageData); +let _ = createImageDataFromImage(ctx, imageData); +let _ = Image.width(imageData); +let _ = Image.height(imageData); -getImageData(ctx, ~sx=0.0, ~sy=0.0, ~sw=0.0, ~sh=0.0); +let _ = getImageData(ctx, ~sx=0.0, ~sy=0.0, ~sw=0.0, ~sh=0.0); let _: unit = putImageData(ctx, ~imageData, ~dx=0.0, ~dy=0.0); let _: unit = putImageDataWithDirtyRect( diff --git a/tests/Webapi/Dom/Webapi__Dom__EventTarget__test.re b/tests/Webapi/Dom/Webapi__Dom__EventTarget__test.re index 6036253b..b48de72b 100644 --- a/tests/Webapi/Dom/Webapi__Dom__EventTarget__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__EventTarget__test.re @@ -27,4 +27,4 @@ let customEvent = CustomEvent.makeWithOptions("custom-event", { "test": "test", }, }); -target->dispatchEvent(customEvent); +let _ = target->dispatchEvent(customEvent); diff --git a/tests/Webapi/Dom/Webapi__Dom__Window__test.re b/tests/Webapi/Dom/Webapi__Dom__Window__test.re index f148ff9e..20a76e8f 100644 --- a/tests/Webapi/Dom/Webapi__Dom__Window__test.re +++ b/tests/Webapi/Dom/Webapi__Dom__Window__test.re @@ -58,7 +58,8 @@ let _ = Window.getSelection(window); let _ = window->Window.matchMedia("max-height: 400"); let _ = window->Window.moveBy(10, -10); let _ = window->Window.moveTo(120, 300); -let _: option(Dom.window) = window->Window.open_(~url="http://...", ~name="my window", ~features="menubar=yes" ,()); +let _: option(Dom.window) = + window->Window.open_(~url="http://...", ~name="my window", ~features="menubar=yes", ()); let _: option(Dom.window) = window->Window.open_(~url="http://...", ~name="my window", ()); window->Window.postMessage("my message", "*"); Window.print(window); From 097b26f270916e086202c4e5eba718ece9bb7282 Mon Sep 17 00:00:00 2001 From: Andrew Herron Date: Mon, 31 May 2021 13:17:12 +1000 Subject: [PATCH 6/7] Bump version --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4007cb46..4325d937 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rescript-webapi", - "version": "0.0.1", + "version": "0.1.0", "description": "Reason / ReScript bindings to DOM", "repository": { "type": "git", @@ -19,7 +19,8 @@ "start": "bsb -make-world -w", "clean": "bsb -clean-world", "doc-install": "npm install --no-save bsdoc", - "test": "bsb -make-world && bsdoc build api && bsdoc support-files" + "test": "bsb -make-world && bsdoc build api && bsdoc support-files", + "refmt-all": "find src tests \\( -name '*.re' -o -name '*.rei' \\) | xargs bsrefmt -w 100 --in-place" }, "files": [ "src", From 39d67904092da967d8fd0aecfd32e71bd07eaeb7 Mon Sep 17 00:00:00 2001 From: Andrew Herron Date: Fri, 4 Jun 2021 09:40:50 +1000 Subject: [PATCH 7/7] Fix pipe formatting in comments --- examples/dom_example.re | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/examples/dom_example.re b/examples/dom_example.re index 5f65817d..d853158f 100644 --- a/examples/dom_example.re +++ b/examples/dom_example.re @@ -17,10 +17,10 @@ let _ = document->Document.createElement("div")->Element.nextElementSibling->map(Element.innerText); /* innerText is a function that accepts a Node */ /* Before subtyping: - document -> Document.createElement("div") - -> Element.asNode - -> Node.parentElement /* inherited from Node, returns DomRe.element */ - -> map(Element.innerText); /* inherited from Node */ + document->Document.createElement("div") + ->Element.asNode + ->Node.parentElement /* inherited from Node, returns DomRe.element */ + ->map(Element.innerText); /* inherited from Node */ */ /* After subtyping: */ @@ -32,16 +32,16 @@ let _ = let el = document->Document.createElement("div")->Element.asHtmlElement->unwrapUnsafely; -/* - document -> Document.asHtmlDocument - -> andThen(HtmlDocument.body) - -> map(Element.appendChild(el)); +/* + document->Document.asHtmlDocument + ->flatMap(HtmlDocument.body) + ->map(Element.appendChild(el)); */ /* Before subtyping: - document -> Document.asHtmlDocument - -> andThen(HtmlDocument.body) - -> map(Element.appendChild (el -> HtmlElement.asNode)); + document->Document.asHtmlDocument + ->flatMap(HtmlDocument.body) + ->map(Element.appendChild (el->HtmlElement.asNode)); */ /* After subtyping: */ @@ -55,27 +55,27 @@ let _ = /* * These MAY fail type check */ - document -> Document.createElement("div") - -> Element.nextElementSibling - -> map(Node.innerText); + document->Document.createElement("div") + ->Element.nextElementSibling + ->map(Node.innerText); /* * These SHOULD NOT type check */ - document -> Document.createElement("div") - -> Element.asNode - -> Element.parentElement; /* inherited from Node, returns DomRe.element */ + document->Document.createElement("div") + ->Element.asNode + ->Element.parentElement; /* inherited from Node, returns DomRe.element */ */ /* /* ideal, but requires piped setters */ - switch (document -> body) { + switch (document->body) { | Some body => - document -> createElement("div") - -> setInnerText("") - -> setClassName("reason_tools_button") - -> setOnClick(swap) - -> (body -> appendChild); + document->createElement("div") + ->setInnerText("") + ->setClassName("reason_tools_button") + ->setOnClick(swap) + ->(body->appendChild); | None => ... }