ListInput
A textarea for pasting a list of domains, links, emails or ids: it parses as you type, counts duplicates and lines it does not recognize, and cleans the list up in one click.
Basic
type="domain" takes domains or whole URLs — protocols, paths and ports are dropped. The footer counts what was found; itemsChange gives the clean list.
Will check: —
Types
type picks the parser: email keeps valid addresses in lower case, url keeps links and adds a missing https://, text keeps every token as it is.
Forms
With formControl or ngModel the value is the parsed array; setting the value from the form writes one item per line. tx-field gives it a label, a hint and errors.
Nothing sent yet
Parser
parser takes your own rule: return the normalized item or null. Here order numbers keep their digits; splitByLines keeps a line with spaces as one token and countLabel names the counter with plural forms.
States
disabled locks the field and its actions, readonly keeps the counters but hides the actions, invalid shows the error look (the form control sets it on its own).
Design tokens
dt changes the tokens of one instance — here a sans-serif field, a larger radius and a lower field.
Pass through
pt adds classes and styles to the parts: root, field, footer, stats, actions, invalid.