Whether this field is disabled
Markdown textareas start in preview; the user toggles into the raw editor as needed.
The question definition that drives this field's rendering. Determines the input type, label, validation, options, and layout.
Current field value (managed by ControlValueAccessor)
Whether multiple selections are allowed (for checkbox type).
Whether this is a choice-based question (buttongroup, radio, dropdown, checkbox).
Textarea only: whether the value renders as formatted Markdown with an Edit toggle (question.type.markdown === true). Used for rich agent-authored content the human reviews more than types — e.g. the Plan Mode approval form.
The current value as a string for the markdown preview (empty-safe).
Maximum value for numeric inputs
Minimum value for numeric inputs
Available options for choice-type questions.
Placeholder text for text-based inputs
Prefix string for currency inputs (e.g. "$")
Resolved question type string (handles both simple string and object types).
Step increment for numeric inputs
Suffix string for currency/slider inputs (e.g. "USD", "%")
CSS class controlling the field width based on widthHint or intelligent defaults.
Width mapping:
'narrow' (~200px): numbers, dates, times'medium' (~450px): text inputs (default)'wide' (100%): emails, buttongroup, radio, checkbox'full' (100%): textarea'auto' (150–350px): dropdownsGet slider configuration with defaults
A callback method that is invoked immediately after the default change detector has checked the directive's data-bound properties for the first time, and before any of the view or content children have been checked. It is invoked only once when the directive is instantiated.
Handle date range end date change
Handle date range start date change
The callback function to register
Registers a callback function that is called when the control's value changes in the UI.
This method is called by the forms API on initialization to update the form model when values propagate from the view to the model.
When implementing the registerOnChange method in your own value accessor,
save the given function so your class calls it at the appropriate time.
The following example stores the provided function as an internal method.
registerOnChange(fn: (_: any) => void): void {
this._onChange = fn;
}
When the value changes in the UI, call the registered function to allow the forms API to update itself:
host: {
'(change)': '_onChange($event.target.value)'
}
The callback function to register
Registers a callback function that is called by the forms API on initialization to update the form model on blur.
When implementing registerOnTouched in your own value accessor, save the given
function so your class calls it when the control should be considered
blurred or "touched".
The following example stores the provided function as an internal method.
registerOnTouched(fn: any): void {
this._onTouched = fn;
}
On blur (or equivalent), your class should call the registered function to allow the forms API to update itself:
host: {
'(blur)': '_onTouched()'
}
Toggle a checkbox option (supports single and multiple selection)
Flip a markdown textarea between rendered preview and the raw editor.
Track-by function for options lists
The reactive FormControl bound to this field. Used for validation state display and dropdown binding.