diff --git a/CHANGES.md b/CHANGES.md index cab802e21e..d5b5a150f6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -131,6 +131,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: implement 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 15d255be59..facea7e0af 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 59480e01bf..1b18069704 100644 --- a/lib/js_of_ocaml/dom_html.mli +++ b/lib/js_of_ocaml/dom_html.mli @@ -577,6 +577,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 @@ -759,6 +763,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 @@ -771,6 +777,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 @@ -1013,6 +1031,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 @@ -1088,6 +1110,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 @@ -1204,8 +1230,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) @@ -2560,6 +2584,8 @@ module Event : sig val waiting : mediaEvent t typ + val beforetoggle : toggleEvent t typ + val toggle : toggleEvent t typ val make : string -> 'a typ