Module Incr_dom.Js_misc
This module has a small collection of helpful bits of javascript that have no other obvious home.
module Rect : sig ... end
val round_float_rect : ?round:(float -> int) -> float Rect.t -> int Rect.t
val viewport_rect : unit -> int Rect.t
viewport_rect ()
gives you the rectangle that corresponds to the size of the entire browser window
val viewport_rect_of_element : Js_of_ocaml.Dom_html.element Js_of_ocaml.Js.t -> float Rect.t
viewport_rect_of_element el
gives you the bounding box rectangle for a single element
val client_rect : unit -> int Rect.t
client_rect ()
gives you the rectangle that corresponds to the size of the entire browser window without the scroll bars.
val client_rect_of_element : Js_of_ocaml.Dom_html.element Js_of_ocaml.Js.t -> float Rect.t
client_rect_of_element el
gives you the inner box rectangle for a single element, not including its scroll bars if it has any.
val element_is_in_viewport : Js_of_ocaml.Dom_html.element Js_of_ocaml.Js.t -> bool
Returns true iff the element in question is in view.
val scroll : ?id:string -> unit -> unit
Find an element with an id (default as "keep-in-view"), and, if it exists, scrolls the UI so that that element is in view.
val sexp_of_rows_or_columns : rows_or_columns -> Ppx_sexp_conv_lib.Sexp.t
val rows_or_columns_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> rows_or_columns
val bin_shape_rows_or_columns : Bin_prot.Shape.t
val bin_size_rows_or_columns : rows_or_columns Bin_prot.Size.sizer
val bin_write_rows_or_columns : rows_or_columns Bin_prot.Write.writer
val bin_writer_rows_or_columns : rows_or_columns Bin_prot.Type_class.writer
val bin_read_rows_or_columns : rows_or_columns Bin_prot.Read.reader
val __bin_read_rows_or_columns__ : (int -> rows_or_columns) Bin_prot.Read.reader
val bin_reader_rows_or_columns : rows_or_columns Bin_prot.Type_class.reader
val bin_rows_or_columns : rows_or_columns Bin_prot.Type_class.t
val rows : rows_or_columns
val columns : rows_or_columns
module Variants_of_rows_or_columns : sig ... end
val compare_rows_or_columns : rows_or_columns -> rows_or_columns -> int
val find_visible_range : length:int -> nth_element_id:(int -> string) -> rows_or_columns -> (int * int) option
find_visible_range ~length ~nth_element_id layout
is useful to find visible rows or columns of a table. The time cost is O(log(length)). It assumes the rows/columns are non-overlapping and arranged monotonically, though the order doesn't matter. It's assumed that the rows are laid out from0
tolength - 1
.If no row is visible, then
None
is returned. Otherwise, the inclusive upper and lower bounds of the visible rows are returned.