ModalSelect
Select a single value from a pipe-backed list shown in a modal dialog. Supports separate display and save values, optional pre-population, and pipe-driven display resolution.
Use to select a single value from a searchable list displayed in a modal. The input field shows the current display value with an edit icon, or a trash icon when a value is already selected.
A typical use case is changing the owner of a group or assigning a manager to a user.
Value resolution
Section titled “Value resolution”The control resolves its current value in the following order:
pre_display_pipe_id— if configured, the pipe always runs when the step loads. The pipe receives the current flow context and returns a single formatted string that becomes the displayed value. The pipe handles all formatting and lookups internally (for example, an LDAP lookup that returns a display name). No further processing is done on the result.- Accumulated state — if no display pipe is configured, the control checks the accumulated flow state for a value matching its
id. This is how values from a flow-level pre-pipe or a previous step carry forward. data— if neither of the above produces a value, the staticdataproperty is expanded and used. Expansions such as${flow.property_name}are supported, allowing the initial value to reference other properties in the flow.
Pre-display pipe
Section titled “Pre-display pipe”When pre_display_pipe_id is set, the pipe is called unconditionally during step initialization. The pipe should return a single item with a single property containing the formatted display string. The control extracts that string and sets it as the current value.
This is useful when the display value requires a backend lookup (such as resolving a user identifier to a display name via LDAP) or when the pipe needs to format the value in a specific way.
Comparison with DataGridUpdate
Section titled “Comparison with DataGridUpdate”The modal reuses the same structure and interaction pattern as DataGridUpdate, but is limited to single-value selection instead of managing a list of additions and removals.
In this section