Package-level declarations

Types

Link copied to clipboard
class RepeatableControl(val rowControls: Map<String, Control<*>>, val rowOrder: List<String>, label: String?, required: Boolean? = false, dependencies: Map<String, ControlDependency<*>>? = null, validationOptions: RepeatableValidation? = null) : Control<List<RepeatableRow>>

A control for dynamic lists of controls (rows).

Link copied to clipboard
data class RepeatableResultValue(val deletedRows: List<FormResultData>, val addedRows: List<FormResultData>, val modifiedRows: List<FormResultData>, val allCurrentRows: List<FormResultData>)

Result of a repeatable control, split by operation type.

Link copied to clipboard
data class RepeatableRow(val id: String = java.util.UUID.randomUUID().toString(), val index: Int = 0)

One row of a repeatable control. Its state lives in the global FormState.

Link copied to clipboard
class RepeatableRowManager(val rowControls: Map<String, Control<*>>, val formState: FormState, val validationOptions: RepeatableValidation?)

Functions

Link copied to clipboard
internal fun createRow(index: Int, parentContext: ControlContext, rowControls: Map<String, Control<*>>, formState: FormState, values: Map<String, Any?> = emptyMap()): RepeatableRow

Creates a new row and adds the states of its controls to the global FormState.

Link copied to clipboard
internal fun getRowTypes(controlState: ControlState<List<RepeatableRow>>, controlContext: ControlContext, rowControls: Map<String, Control<*>>, formState: FormState): Triple<List<RepeatableRow>, List<RepeatableRow>, List<RepeatableRow>>

Analyzes the state of a repeatable control and classifies the rows by operation type. Works on the global form state.

Link copied to clipboard
private fun isChanged(controlContext: ControlContext, control: Control<*>, formState: FormState): Boolean
Link copied to clipboard
internal fun rowContexts(parentContext: ControlContext, row: RepeatableRow, rowControls: Map<String, Control<*>>): List<Pair<ControlContext, Control<*>>>

The row's controls, each with a context in which the repeatable control is the parent. A row is a separate data level: the states of its controls lie under name[rowId]/....