43 lines
987 B
OCaml
43 lines
987 B
OCaml
open Brr
|
|
|
|
type datalist =
|
|
{ datalist_id : string
|
|
; datalist_el : El.t
|
|
}
|
|
|
|
(** - [id] is the id of the actual_slider_el element
|
|
- [el] is the slider container element
|
|
- [actual_slider_el] is the input slider *)
|
|
type slider =
|
|
{ id : string
|
|
; el : El.t
|
|
; actual_slider_el : El.t
|
|
}
|
|
|
|
(** Any is for continuous slider *)
|
|
type step_kind =
|
|
| Any
|
|
| Step_value of float
|
|
|
|
val step_to_string : step_kind -> string
|
|
|
|
val mk_datalist : Jstr.t list -> string -> datalist
|
|
|
|
(** make a div of class "slippery-slidy-container" containing a slider of class
|
|
"slippery-slidy-slider" wi id [id]
|
|
|
|
don't forget to add your slider and datalist to your document *)
|
|
val mk_slider :
|
|
min:float
|
|
-> max:float
|
|
-> step:step_kind
|
|
-> value:float
|
|
-> id:string
|
|
-> label:string
|
|
-> datalist_id:string option
|
|
-> slider
|
|
|
|
val add_slider_input_listener : slider -> (float -> unit) -> unit
|
|
|
|
(** setup listener to drag and move slider with mouse *)
|
|
val mk_dragable : slider -> unit
|