Forms
Overview of IremboHub's form system — how forms are structured, how fields work, and where to find component references.
IremboHub forms are built with Angular Formly. Each form is a JSON configuration describing sections, groups, blocks, and fields.
Every field sits inside a block inside a formly-group inside a sections element. There is exactly one sections per form.
Before building any field, read the Form Rules — they cover hierarchy, keys, labels, the required mechanism, expressions, visibility, and validation conventions that apply to every component.
Components
Form Rules
Keys, labels, required mechanism, expressions, visibility, validation — conventions that apply to every field.
input
Single-line text field.
radio
Mutually exclusive radio button group.
customdropdown
Single or multi-select dropdown, static or API-driven.
customdatepicker
Date-only picker with range and weekday constraints.
customidinput
National ID / Child ID / NIN with NIDA verification.
customtininput
Company TIN with RDB/RRA registry verification and field auto-population.
customphonenumber
International phone number input with country flag.
customcurrencyformatinput
Comma-formatted monetary amount input (e.g. 1,000,000 RWF).
customfileupload
File upload sent as base64 inline with the payload.
custominternalfileupload
File upload pre-uploaded to CDN; only the reference is submitted.
customcascadingdropdowns
Province → District → Sector → Cell → Village hierarchy picker.
customgenericdatafetch
Input that triggers an API lookup and populates downstream fields. Also covers customdirectdatafetch.
genericbuttonfetch
Standalone button that triggers an API lookup on click, with no input field.
Cross-field validators
Compare fields, enforce repeater uniqueness, and validate JSON-keyed response values.