diff options
author | Joris | 2020-08-09 08:37:18 +0200 |
---|---|---|
committer | Joris | 2020-08-09 08:37:18 +0200 |
commit | ad6abcd5fc5e4e66062c8a01b511a1bd4bda2e94 (patch) | |
tree | 0dee6c63c45e34ce960ca6c445b4ee9dbdcb3087 /src/Lib | |
parent | 2cb752123d15916496e872c9fbd423c788c86c64 (diff) |
Export as CSV
Diffstat (limited to 'src/Lib')
-rw-r--r-- | src/Lib/Dom/Element.ml | 3 | ||||
-rw-r--r-- | src/Lib/Dom/HA.ml | 2 | ||||
-rw-r--r-- | src/Lib/File.ml | 12 | ||||
-rw-r--r-- | src/Lib/Fun.ml | 2 | ||||
-rw-r--r-- | src/Lib/URI.ml | 2 |
5 files changed, 21 insertions, 0 deletions
diff --git a/src/Lib/Dom/Element.ml b/src/Lib/Dom/Element.ml index 3c63ef4..90c0321 100644 --- a/src/Lib/Dom/Element.ml +++ b/src/Lib/Dom/Element.ml @@ -27,6 +27,9 @@ external first_child : Dom.element -> Dom.element Js.Nullable.t = "firstChild" 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 -> diff --git a/src/Lib/Dom/HA.ml b/src/Lib/Dom/HA.ml index 53fb84d..ce02f2a 100644 --- a/src/Lib/Dom/HA.ml +++ b/src/Lib/Dom/HA.ml @@ -39,3 +39,5 @@ 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/File.ml b/src/Lib/File.ml new file mode 100644 index 0000000..0089001 --- /dev/null +++ b/src/Lib/File.ml @@ -0,0 +1,12 @@ +let download filename content = + let a = + H.a + [| HA.href ("data:text/plain;charset=utf-8," ^ URI.encode content) + ; HA.download filename + ; HA.style "display:none" + |] + [| |] + in + let () = Element.append_child Document.body a in + let () = Element.click a in + Element.remove_child Document.body a diff --git a/src/Lib/Fun.ml b/src/Lib/Fun.ml new file mode 100644 index 0000000..bf1eb38 --- /dev/null +++ b/src/Lib/Fun.ml @@ -0,0 +1,2 @@ +let flip f b a = + f a b diff --git a/src/Lib/URI.ml b/src/Lib/URI.ml new file mode 100644 index 0000000..705bc7b --- /dev/null +++ b/src/Lib/URI.ml @@ -0,0 +1,2 @@ +external encode : string -> string = "encodeURIComponent" + [@@bs.val] |