Skip to content

File tree

6 files changed

+57
-6
lines changed

6 files changed

+57
-6
lines changed

CHANGES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
* Runtime: allow dynlink of precompiled js with separate compilation (#1676)
2525
* Runtime: reimplement the runtime of weak and ephemeron (#1707)
2626
* Lib: Modify Typed_array API for compatibility with WebAssembly
27+
* Lib: add details element and toggle event (#1728)
2728
* Toplevel: no longer set globals for toplevel initialization
2829

2930
## Bug fixes

lib/js_of_ocaml/dom_html.ml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,14 @@ and clipboardEvent = object
452452
method clipboardData : dataTransfer t readonly_prop
453453
end
454454

455+
and toggleEvent = object
456+
inherit event
457+
458+
method newState : js_string t readonly_prop
459+
460+
method oldState : js_string t readonly_prop
461+
end
462+
455463
and dataTransfer = object
456464
method dropEffect : js_string t prop
457465

@@ -959,6 +967,8 @@ module Event = struct
959967

960968
let waiting = Dom.Event.make "waiting"
961969

970+
let toggle = Dom.Event.make "toggle"
971+
962972
let make = Dom.Event.make
963973
end
964974

@@ -1372,6 +1382,16 @@ class type anchorElement = object
13721382
method _type : js_string t prop
13731383
end
13741384

1385+
class type detailsElement = object ('self)
1386+
inherit element
1387+
1388+
method open_ : bool t prop
1389+
1390+
method name : js_string t prop
1391+
1392+
method ontoggle : ('self t, toggleEvent t) event_listener prop
1393+
end
1394+
13751395
class type imageElement = object ('self)
13761396
inherit element
13771397

@@ -2736,6 +2756,8 @@ module CoerceTo = struct
27362756

27372757
let del e = unsafeCoerce "del" e
27382758

2759+
let details e = unsafeCoerce "details" e
2760+
27392761
let div e = unsafeCoerce "div" e
27402762

27412763
let dl e = unsafeCoerce "dl" e

lib/js_of_ocaml/dom_html.mli

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,14 @@ and clipboardEvent = object
458458
method clipboardData : dataTransfer t readonly_prop
459459
end
460460

461+
and toggleEvent = object
462+
inherit event
463+
464+
method newState : js_string t readonly_prop
465+
466+
method oldState : js_string t readonly_prop
467+
end
468+
461469
and dataTransfer = object
462470
method dropEffect : js_string t prop
463471

@@ -1190,6 +1198,16 @@ class type anchorElement = object
11901198
method _type : js_string t prop
11911199
end
11921200

1201+
class type detailsElement = object ('self)
1202+
inherit element
1203+
1204+
method open_ : bool t prop
1205+
1206+
method name : js_string t prop
1207+
1208+
method ontoggle : ('self t, toggleEvent t) event_listener prop
1209+
end
1210+
11931211
class type imageElement = object ('self)
11941212
inherit element
11951213

@@ -2503,6 +2521,8 @@ module Event : sig
25032521

25042522
val waiting : mediaEvent t typ
25052523

2524+
val toggle : toggleEvent t typ
2525+
25062526
val make : string -> 'a typ
25072527
end
25082528

@@ -3048,6 +3068,8 @@ module CoerceTo : sig
30483068

30493069
val del : #element t -> modElement t opt
30503070

3071+
val details : #element t -> detailsElement t opt
3072+
30513073
val div : #element t -> divElement t opt
30523074

30533075
val embed : #element t -> embedElement t opt

lib/tyxml/tyxml_cast.ml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ end) : Tyxml_cast_sigs.TO with type 'a elt = 'a C.elt = struct
7979

8080
let of_li elt = rebuild_node "of_li" elt
8181

82+
let of_details elt = rebuild_node "of_details" elt
83+
8284
let of_dialog elt = rebuild_node "of_dialog" elt
8385

8486
let of_div elt = rebuild_node "of_div" elt
@@ -177,8 +179,6 @@ end) : Tyxml_cast_sigs.TO with type 'a elt = 'a C.elt = struct
177179

178180
let of_dd elt = rebuild_node "of_dd" elt
179181

180-
let of_details elt = rebuild_node "of_details" elt
181-
182182
let of_dfn elt = rebuild_node "of_dfn" elt
183183

184184
let of_dt elt = rebuild_node "of_dt" elt
@@ -311,6 +311,8 @@ end) : Tyxml_cast_sigs.OF with type 'a elt = 'a C.elt = struct
311311

312312
let of_li elt = rebuild_node "of_li" elt
313313

314+
let of_details elt = rebuild_node "of_details" elt
315+
314316
let of_dialog elt = rebuild_node "of_dialog" elt
315317

316318
let of_div elt = rebuild_node "of_div" elt

lib/tyxml/tyxml_cast_sigs.ml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ module type OF = sig
7171

7272
val of_li : Dom_html.liElement Js.t -> [> Html_types.li ] elt
7373

74+
val of_details : Dom_html.detailsElement Js.t -> [> Html_types.details ] elt
75+
7476
val of_dialog : Dom_html.dialogElement Js.t -> [> Html_types.dialog ] elt
7577

7678
val of_div : Dom_html.divElement Js.t -> [> Html_types.div ] elt
@@ -182,6 +184,8 @@ module type TO = sig
182184

183185
val of_li : [< Html_types.li ] elt -> Dom_html.liElement Js.t
184186

187+
val of_details : [< Html_types.details ] elt -> Dom_html.detailsElement Js.t
188+
185189
val of_dialog : [< Html_types.dialog ] elt -> Dom_html.dialogElement Js.t
186190

187191
val of_div : [< Html_types.div ] elt -> Dom_html.divElement Js.t
@@ -280,8 +284,6 @@ module type TO = sig
280284

281285
val of_dd : [> Html_types.dd ] elt -> Dom_html.element Js.t
282286

283-
val of_details : [> Html_types.details ] elt -> Dom_html.element Js.t
284-
285287
val of_dfn : [> Html_types.dfn ] elt -> Dom_html.element Js.t
286288

287289
val of_dt : [> Html_types.dt ] elt -> Dom_html.element Js.t

lib/tyxml/tyxml_cast_sigs.mli

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ module type OF = sig
7070

7171
val of_li : Dom_html.liElement Js.t -> [> Html_types.li ] elt
7272

73+
val of_details : Dom_html.detailsElement Js.t -> [> Html_types.details ] elt
74+
7375
val of_dialog : Dom_html.dialogElement Js.t -> [> Html_types.dialog ] elt
7476

7577
val of_div : Dom_html.divElement Js.t -> [> Html_types.div ] elt
@@ -181,6 +183,8 @@ module type TO = sig
181183

182184
val of_li : [< Html_types.li ] elt -> Dom_html.liElement Js.t
183185

186+
val of_details : [< Html_types.details ] elt -> Dom_html.detailsElement Js.t
187+
184188
val of_dialog : [< Html_types.dialog ] elt -> Dom_html.dialogElement Js.t
185189

186190
val of_div : [< Html_types.div ] elt -> Dom_html.divElement Js.t
@@ -279,8 +283,6 @@ module type TO = sig
279283

280284
val of_dd : [> Html_types.dd ] elt -> Dom_html.element Js.t
281285

282-
val of_details : [> Html_types.details ] elt -> Dom_html.element Js.t
283-
284286
val of_dfn : [> Html_types.dfn ] elt -> Dom_html.element Js.t
285287

286288
val of_dt : [> Html_types.dt ] elt -> Dom_html.element Js.t

0 commit comments

Comments
 (0)