Specialized controls for numeric ranges and date selection.
slider
Numeric range selection.
{
key: 'volume',
type: 'slider',
label: 'Volume',
value: 50,
minValue: 0, // optional
maxValue: 100, // optional
step: 5, // optional
}Core Properties (all optional):
minValue: Minimum slider valuemaxValue: Maximum slider valuestep: Step increment value
Adapter Props
Implement ValueFieldComponent<SliderField>. See Building an Adapter for the full guide.
import { Component, input } from '@angular/core';
import type { SliderField, FieldMeta } from '@ng-forge/dynamic-forms/integration';
import { valueFieldMapper } from '@ng-forge/dynamic-forms/integration';
import type { ValueFieldComponent, FieldTypeDefinition } from '@ng-forge/dynamic-forms';
@Component({ selector: 'my-slider', template: '<!-- your template -->' })
export default class MySliderComponent implements ValueFieldComponent<SliderField> {
readonly field = input.required();
readonly key = input.required<string>();
readonly props = input<SliderField['props']>();
readonly meta = input<FieldMeta>();
}
export const MySliderType: FieldTypeDefinition = {
name: 'slider',
loadComponent: () => import('./slider.component'),
mapper: valueFieldMapper,
};Example
datepicker
Date selection control.
{
key: 'birthDate',
type: 'datepicker',
label: 'Birth Date',
value: null,
required: true,
minDate: new Date(1900, 0, 1), // optional
maxDate: new Date(), // optional
placeholder: 'Select your birth date',
}Core Properties (all optional):
minDate: Minimum selectable date —Date | string | nullmaxDate: Maximum selectable date —Date | string | nullstartAt: Initial calendar view date —Date | null
Core Props:
placeholder: Placeholder textformat: Date format string (UI-integration specific)
Adapter Props
Implement ValueFieldComponent<DatepickerField>. See Building an Adapter for the full guide.
import { Component, input } from '@angular/core';
import type { DatepickerField, FieldMeta } from '@ng-forge/dynamic-forms/integration';
import { valueFieldMapper } from '@ng-forge/dynamic-forms/integration';
import type { ValueFieldComponent, FieldTypeDefinition } from '@ng-forge/dynamic-forms';
@Component({ selector: 'my-datepicker', template: '<!-- your template -->' })
export default class MyDatepickerComponent implements ValueFieldComponent<DatepickerField> {
readonly field = input.required();
readonly key = input.required<string>();
readonly props = input<DatepickerField['props']>();
readonly meta = input<FieldMeta>();
}
export const MyDatepickerType: FieldTypeDefinition = {
name: 'datepicker',
loadComponent: () => import('./datepicker.component'),
mapper: valueFieldMapper,
};