diff --git a/CHANGES.md b/CHANGES.md index aaeb7ed657..c0a06df5ef 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -50,6 +50,7 @@ * Runtime: reimplement the runtime of weak and ephemeron (#1707) * Lib: Modify Typed_array API for compatibility with WebAssembly * Lib: add details element and toggle event (#1728) +* Lib: add support for the popover API (#1734) * Toplevel: no longer set globals for toplevel initialization * Runtime: precompute constants used in `caml_lxm_next` (#1730) * Runtime: cleanup runtime diff --git a/lib/js_of_ocaml/dom_html.ml b/lib/js_of_ocaml/dom_html.ml index 704c6c3410..244ae53b62 100644 --- a/lib/js_of_ocaml/dom_html.ml +++ b/lib/js_of_ocaml/dom_html.ml @@ -561,6 +561,10 @@ and eventTarget = object ('self) method onpointerup : ('self t, pointerEvent t) event_listener writeonly_prop + method onbeforetoggle : ('self t, toggleEvent t) event_listener writeonly_prop + + method ontoggle : ('self t, toggleEvent t) event_listener writeonly_prop + method dispatchEvent : event t -> bool t meth end @@ -739,6 +743,8 @@ and element = object method scrollHeight : int prop + method popover : js_string t opt prop + method getClientRects : clientRectList t meth method getBoundingClientRect : clientRect t meth @@ -751,6 +757,18 @@ and element = object method blur : unit meth + method hidePopover : unit meth + + method showPopover : unit meth + + method showPopover_options : _ -> unit meth + + method togglePopover : bool t meth + + method togglePopover_force : bool t -> bool t meth + + method togglePopover_options : _ -> bool t meth + inherit eventTarget end @@ -971,6 +989,8 @@ module Event = struct let waiting = Dom.Event.make "waiting" + let beforetoggle = Dom.Event.make "beforetoggle" + let toggle = Dom.Event.make "toggle" let make = Dom.Event.make @@ -1201,6 +1221,10 @@ class type inputElement = object ('self) method selectionEnd : int prop + method popovertarget : element t opt prop + + method popovertargetaction : js_string t prop + method onselect : ('self t, event t) event_listener prop method onchange : ('self t, event t) event_listener prop @@ -1276,6 +1300,10 @@ class type buttonElement = object method _type : js_string t readonly_prop method value : js_string t prop + + method popovertarget : element t opt prop + + method popovertargetaction : js_string t prop end class type labelElement = object @@ -1392,8 +1420,6 @@ class type detailsElement = object ('self) method open_ : bool t prop method name : js_string t prop - - method ontoggle : ('self t, toggleEvent t) event_listener prop end class type imageElement = object ('self) diff --git a/lib/js_of_ocaml/dom_html.mli b/lib/js_of_ocaml/dom_html.mli index eb1bf41d0d..1900ce57f8 100644 --- a/lib/js_of_ocaml/dom_html.mli +++ b/lib/js_of_ocaml/dom_html.mli @@ -574,6 +574,10 @@ and eventTarget = object ('self) method onpointerup : ('self t, pointerEvent t) event_listener writeonly_prop + method onbeforetoggle : ('self t, toggleEvent t) event_listener writeonly_prop + + method ontoggle : ('self t, toggleEvent t) event_listener writeonly_prop + method dispatchEvent : event t -> bool t meth end @@ -756,6 +760,8 @@ and element = object method scrollHeight : int prop + method popover : js_string t opt prop + method getClientRects : clientRectList t meth method getBoundingClientRect : clientRect t meth @@ -768,6 +774,18 @@ and element = object method blur : unit meth + method hidePopover : unit meth + + method showPopover : unit meth + + method showPopover_options : _ -> unit meth + + method togglePopover : bool t meth + + method togglePopover_force : bool t -> bool t meth + + method togglePopover_options : _ -> bool t meth + inherit eventTarget end @@ -1010,6 +1028,10 @@ class type inputElement = object ('self) method selectionEnd : int prop + method popovertarget : element t opt prop + + method popovertargetaction : js_string t prop + method onselect : ('self t, event t) event_listener prop method onchange : ('self t, event t) event_listener prop @@ -1085,6 +1107,10 @@ class type buttonElement = object method _type : js_string t readonly_prop method value : js_string t prop + + method popovertarget : element t opt prop + + method popovertargetaction : js_string t prop end class type labelElement = object @@ -1201,8 +1227,6 @@ class type detailsElement = object ('self) method open_ : bool t prop method name : js_string t prop - - method ontoggle : ('self t, toggleEvent t) event_listener prop end class type imageElement = object ('self) @@ -2553,6 +2577,8 @@ module Event : sig val waiting : mediaEvent t typ + val beforetoggle : toggleEvent t typ + val toggle : toggleEvent t typ val make : string -> 'a typ