aboutsummaryrefslogtreecommitdiff
path: root/src/Lib/Dom
diff options
context:
space:
mode:
authorJoris2022-07-05 21:55:41 +0200
committerJoris2023-01-28 09:35:55 +0100
commit063d8ef9eaf874a941f4459e831057dd0a1b7ddd (patch)
treec4a8b27cb8fdb5d1dc26c560c7483c9593f40dac /src/Lib/Dom
parent2936f06576997bffe7903ea840df563a408efc21 (diff)
Rewrite in TSmain
Diffstat (limited to 'src/Lib/Dom')
-rw-r--r--src/Lib/Dom/Document.ml20
-rw-r--r--src/Lib/Dom/Element.ml51
-rw-r--r--src/Lib/Dom/Event.ml17
-rw-r--r--src/Lib/Dom/H.ml65
-rw-r--r--src/Lib/Dom/HA.ml43
-rw-r--r--src/Lib/Dom/HE.ml13
-rw-r--r--src/Lib/Dom/History.ml2
-rw-r--r--src/Lib/Dom/Location.ml7
-rw-r--r--src/Lib/Dom/Window.ml2
9 files changed, 0 insertions, 220 deletions
diff --git a/src/Lib/Dom/Document.ml b/src/Lib/Dom/Document.ml
deleted file mode 100644
index 46f983a..0000000
--- a/src/Lib/Dom/Document.ml
+++ /dev/null
@@ -1,20 +0,0 @@
-external body : Dom.element = "body"
- [@@bs.val] [@@bs.scope "document"]
-
-external create_element : string -> Dom.element = "createElement"
- [@@bs.val] [@@bs.scope "document"]
-
-external create_element_ns : string -> string -> Dom.element = "createElementNS"
- [@@bs.val] [@@bs.scope "document"]
-
-external query_selector : string -> Dom.element Js.Nullable.t = "querySelector"
- [@@bs.val] [@@bs.scope "document"]
-
-let query_selector_unsafe id =
- query_selector id |> Js.Nullable.toOption |> Js.Option.getExn
-
-external create_text_node : string -> Dom.element = "createTextNode"
- [@@bs.val] [@@bs.scope "document"]
-
-external location : Location.location = "location"
- [@@bs.val] [@@bs.scope "document"]
diff --git a/src/Lib/Dom/Element.ml b/src/Lib/Dom/Element.ml
deleted file mode 100644
index feb6003..0000000
--- a/src/Lib/Dom/Element.ml
+++ /dev/null
@@ -1,51 +0,0 @@
-external set_value : Dom.element -> string -> unit = "value"
- [@@bs.set]
-
-external value : Dom.element -> string = "value"
- [@@bs.get]
-
-external set_attribute : Dom.element -> string -> string -> unit = "setAttribute"
- [@@bs.send]
-
-external set_class_name : Dom.element -> string -> unit = "className"
- [@@bs.set]
-
-external add_event_listener : Dom.element -> string -> (Dom.event -> unit) -> unit
- = "addEventListener"
- [@@bs.send]
-
-external remove_event_listener : Dom.element -> string -> (Dom.event -> unit) -> unit
- = "removeEventListener"
- [@@bs.send]
-
-external append_child : Dom.element -> Dom.element -> unit = "appendChild"
- [@@bs.send]
-
-external first_child : Dom.element -> Dom.element Js.Nullable.t = "firstChild"
- [@@bs.get]
-
-external remove_child : Dom.element -> Dom.element -> unit = "removeChild"
- [@@bs.send]
-
-external click : Dom.element -> unit = "click"
- [@@bs.send]
-
-let remove_first_child element =
- match Js.toOption (first_child element) with
- | Some child ->
- let () = remove_child element child in
- true
- | _ -> false
-
-let rec remove_children element =
- if remove_first_child element then remove_children element else ()
-
-let mount_on base element =
- let () = remove_children base in
- append_child base element
-
-external files : Dom.element -> string Js.Array.t = "files"
- [@@bs.get]
-
-external focus : Dom.element -> unit = "focus"
- [@@bs.send]
diff --git a/src/Lib/Dom/Event.ml b/src/Lib/Dom/Event.ml
deleted file mode 100644
index 5a9790f..0000000
--- a/src/Lib/Dom/Event.ml
+++ /dev/null
@@ -1,17 +0,0 @@
-external prevent_default : Dom.event -> unit = "preventDefault"
- [@@bs.send]
-
-external stop_propagation : Dom.event -> unit = "stopPropagation"
- [@@bs.send]
-
-external target : Dom.event -> Dom.element = "target"
- [@@bs.get]
-
-external related_target : Dom.event -> Dom.element Js.Nullable.t = "relatedTarget"
- [@@bs.get]
-
-external page_x : Dom.mouseEvent -> float = "pageX"
- [@@bs.get]
-
-external page_y : Dom.mouseEvent -> float = "pageY"
- [@@bs.get]
diff --git a/src/Lib/Dom/H.ml b/src/Lib/Dom/H.ml
deleted file mode 100644
index 7213daf..0000000
--- a/src/Lib/Dom/H.ml
+++ /dev/null
@@ -1,65 +0,0 @@
-(* Element creation *)
-
-type attribute =
- | TextAttr of string * string
- | EventAttr of string * (Dom.event -> unit)
-
-let h tag attributes children =
- let element =
- if tag == "svg" || tag == "path" then
- Document.create_element_ns "http://www.w3.org/2000/svg" tag
- else Document.create_element tag
- in
- let () =
- Js.Array.forEach
- (fun attr ->
- match attr with
- | TextAttr (name, value) ->
- Element.set_attribute element name value
-
- | EventAttr (name, eventListener) ->
- Element.add_event_listener element name eventListener)
- attributes
- in
- let () =
- Js.Array.forEach
- (fun child -> Element.append_child element child)
- children
- in
- element
-
-(* Node creation *)
-
-let text = Document.create_text_node
-
-let div = h "div"
-
-let span = h "span"
-
-let header = h "header"
-
-let button = h "button"
-
-let section = h "section"
-
-let svg = h "svg"
-
-let path = h "path"
-
-let form = h "form"
-
-let label = h "label"
-
-let input = h "input"
-
-let textarea = h "textarea"
-
-let i = h "i"
-
-let a = h "a"
-
-let h1 = h "h1"
-
-let h2 = h "h2"
-
-let h3 = h "h3"
diff --git a/src/Lib/Dom/HA.ml b/src/Lib/Dom/HA.ml
deleted file mode 100644
index ce02f2a..0000000
--- a/src/Lib/Dom/HA.ml
+++ /dev/null
@@ -1,43 +0,0 @@
-let concat xs ys =
- let partition_class =
- Js.Array.reduce
- (fun (class_acc, rest_acc) z ->
- match z with
- | H.TextAttr ("class", c) -> (class_acc ^ " " ^ c, rest_acc)
- | _ -> (class_acc, Js.Array.concat [| z |] rest_acc)
- )
- ("", [| |])
- in
- let (xs_class, xs_rest) = partition_class xs in
- let (ys_class, ys_rest) = partition_class ys in
- let rest = Js.Array.concat xs_rest ys_rest in
- if xs_class == "" && ys_class == "" then
- rest
- else
- Js.Array.concat [| H.TextAttr ("class", xs_class ^ " " ^ ys_class) |] rest
-
-(* Attribute creation *)
-
-let id v = H.TextAttr ("id", v)
-
-let class_ v = H.TextAttr ("class", v)
-
-let viewBox v = H.TextAttr ("viewBox", v)
-
-let d v = H.TextAttr ("d", v)
-
-let type_ v = H.TextAttr ("type", v)
-
-let min_ v = H.TextAttr ("min", v)
-
-let value v = H.TextAttr ("value", v)
-
-let for_ v = H.TextAttr ("for", v)
-
-let style v = H.TextAttr ("style", v)
-
-let href v = H.TextAttr ("href", v)
-
-let autocomplete v = H.TextAttr ("autocomplete", v)
-
-let download v = H.TextAttr ("download", v)
diff --git a/src/Lib/Dom/HE.ml b/src/Lib/Dom/HE.ml
deleted file mode 100644
index 03d2386..0000000
--- a/src/Lib/Dom/HE.ml
+++ /dev/null
@@ -1,13 +0,0 @@
-(* Event listeners *)
-
-let on_click f = H.EventAttr ("click", f)
-
-let on_input f = H.EventAttr ("input", f)
-
-let on_submit f = H.EventAttr ("submit", f)
-
-let on_blur f = H.EventAttr ("blur", f)
-
-let on_change f = H.EventAttr ("change", f)
-
-let on_focus f = H.EventAttr ("focus", f)
diff --git a/src/Lib/Dom/History.ml b/src/Lib/Dom/History.ml
deleted file mode 100644
index ce7a877..0000000
--- a/src/Lib/Dom/History.ml
+++ /dev/null
@@ -1,2 +0,0 @@
-external push_state : string -> string -> string -> unit -> unit = "pushState"
- [@@bs.val] [@@bs.scope "history"]
diff --git a/src/Lib/Dom/Location.ml b/src/Lib/Dom/Location.ml
deleted file mode 100644
index 2c58705..0000000
--- a/src/Lib/Dom/Location.ml
+++ /dev/null
@@ -1,7 +0,0 @@
-external set : Dom.element -> string -> unit = "location"
- [@@bs.set]
-
-type location
-
-external hash : location -> string = "hash"
- [@@bs.get]
diff --git a/src/Lib/Dom/Window.ml b/src/Lib/Dom/Window.ml
deleted file mode 100644
index 3abc921..0000000
--- a/src/Lib/Dom/Window.ml
+++ /dev/null
@@ -1,2 +0,0 @@
-external window : Dom.element = "window"
- [@@bs.val]