Package-level declarations

Types

Link copied to clipboard
abstract class AsyncPaginatedDropdownControl<T : Any>(label: String?, required: Boolean?, dependencies: Map<String, ControlDependency<*>>?, actions: List<ControlAction<T>>?) : DropdownControlBase<T>

Abstract base of dropdown controls that load data asynchronously, support searching and load further pages while scrolling.

Link copied to clipboard
abstract class DropdownControlBase<T : Any>(label: String?, required: Boolean?, dependencies: Map<String, ControlDependency<*>>?, actions: List<ControlAction<T>>?) : Control<T>

Base class of all dropdown controls. Only renders the UI frame (ExposedDropdownMenuBox) and leaves the menu content to subclasses.

Link copied to clipboard
data class DropdownOption<T>(val value: T, val displayText: String, val payload: Any? = null)

A single option of a dropdown list.

Link copied to clipboard
data class DropdownPage<T>(val options: List<DropdownOption<T>>, val hasMore: Boolean)

One batch of options for a dropdown control that loads data in pages.

Link copied to clipboard
private data class Paging<T>(val query: String? = null, val options: List<DropdownOption<T>> = emptyList(), val nextPage: Long = 0, val hasMore: Boolean = false)

Paging position for one search, replaced as a whole.

Properties

Link copied to clipboard
private const val LoadMoreThresholdPx: Int = 100

How many pixels before the end of the menu loading of the next page starts. Roughly two items, so the list catches up before the user sees the end.