aboutsummaryrefslogtreecommitdiff
path: root/src/Lib/Dom/Element.ml
diff options
context:
space:
mode:
authorJoris2020-07-13 21:30:32 +0200
committerJoris2020-07-13 21:30:32 +0200
commitd1135ff55db85ef81bbe2bd8f283cdbbd5464298 (patch)
treea971c4d88b862b21ca2263c6c48b053d64c9b125 /src/Lib/Dom/Element.ml
parent73a9d499c9e3709d99d61bbbbf412611a5c503b9 (diff)
downloadmap-d1135ff55db85ef81bbe2bd8f283cdbbd5464298.tar.gz
map-d1135ff55db85ef81bbe2bd8f283cdbbd5464298.tar.bz2
map-d1135ff55db85ef81bbe2bd8f283cdbbd5464298.zip
Show map and add marks with right click
Diffstat (limited to 'src/Lib/Dom/Element.ml')
-rw-r--r--src/Lib/Dom/Element.ml42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/Lib/Dom/Element.ml b/src/Lib/Dom/Element.ml
new file mode 100644
index 0000000..3e3b78a
--- /dev/null
+++ b/src/Lib/Dom/Element.ml
@@ -0,0 +1,42 @@
+external setValue : Dom.element -> string -> unit = "value" [@@bs.set]
+
+external setTextContent : Dom.element -> string -> unit = "textContent"
+ [@@bs.set]
+
+external setStyle : Dom.element -> string -> unit = "style" [@@bs.set]
+
+external setClassName : Dom.element -> string -> unit = "className" [@@bs.set]
+
+external setAttribute : Dom.element -> string -> string -> unit = "setAttribute"
+ [@@bs.send]
+
+external setAttributeNS : Dom.element -> string -> string -> string -> unit
+ = "setAttributeNS"
+ [@@bs.send]
+
+external addEventListener : Dom.element -> string -> (Dom.event -> unit) -> unit
+ = "addEventListener"
+ [@@bs.send]
+
+external appendChild : Dom.element -> Dom.element -> unit = "appendChild"
+ [@@bs.send]
+
+external firstChild : Dom.element -> Dom.element Js.Nullable.t = "firstChild"
+ [@@bs.get]
+
+external removeChild : Dom.element -> Dom.element -> unit = "removeChild"
+ [@@bs.send]
+
+let removeFirstChild element =
+ match Js.toOption (firstChild element) with
+ | Some child ->
+ let () = removeChild element child in
+ true
+ | _ -> false
+
+let rec removeChildren element =
+ if removeFirstChild element then removeChildren element else ()
+
+let mountOn base element =
+ let () = removeChildren base in
+ appendChild base element