From 026ace6302f23837e34e982f6660e09ff38ee97b Mon Sep 17 00:00:00 2001 From: Joris Date: Sat, 9 Jan 2021 14:24:49 +0100 Subject: Use plain HTML and CSS --- src/number.ml | 57 --------------------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 src/number.ml (limited to 'src/number.ml') diff --git a/src/number.ml b/src/number.ml deleted file mode 100644 index cdd9ef8..0000000 --- a/src/number.ml +++ /dev/null @@ -1,57 +0,0 @@ -type parseInsideTextResult = { before : string; number : float; after : string } - -let execRegex (regex : Js.Re.t) (str : string) : string option Js.Array.t = - match Js.Re.exec_ regex str with - | Some result -> Js.Array.map Js.toOption (Js.Re.captures result) - | None -> [||] - -let parseInsideText (str : string) : parseInsideTextResult option = - match execRegex [%re "/^([^\\d]*)(\\d+)((\\.|,)(\\d+))?(.*)/"] str with - | [| _; Some before; Some intPart; _; _; decPart; Some after |] -> - Some - { - before; - number = - Js.Float.fromString - ( intPart - ^ Belt.Option.mapWithDefault decPart "" (fun str -> "." ^ str) ); - after; - } - | _ -> None - -type parseResult = { number : float; remaining : string } - -let parse (str : string) : parseResult option = - match parseInsideText str with - | Some parseResult -> - if parseResult.before == "" then - Some { number = parseResult.number; remaining = parseResult.after } - else None - | _ -> None - -type numberElement = { element : Dom.element; numberInput : Dom.element } - -let prettyPrint (number : float) : string = - let strNumber = Js.Float.toString number in - match Js.String.split "." strNumber with - | [| intPart; decPart |] -> - intPart ^ "," ^ Js.String.slice ~from:0 ~to_:2 decPart - | _ -> strNumber - -let createElement (tag : string) (content : parseInsideTextResult) : - numberElement = - let numberInput = - DomUtils.h "input" - [| ("class", "g-Number"); ("value", prettyPrint content.number) |] - [| DomUtils.TextChild "" |] - in - { - element = - DomUtils.h tag [||] - [| - DomUtils.TextChild content.before; - DomUtils.ElemChild numberInput; - DomUtils.TextChild content.after; - |]; - numberInput; - } -- cgit v1.2.3