Bit late in answering (but in case anyone has the same question) I had a bit of help from a colleague on this and it works a treat. Use this xml in a dashboard (against index=_internal) to get an idea of how it works.
Text Input Multi-value Filter
<input type="time" token="TimePicker">
<input type="text" token="Text_Input">
<label>Sourcetype text filter with "," separator. It also uses the rex command in the search so you don't have to worry about spaces.</label>
<title>Example of events dedup'd by sourcetype</title>
| eval sourcetype=$Text_Input$
| makemv tokenizer="([^,]+),?" sourcetype
| mvexpand sourcetype
|rex field=sourcetype mode=sed "s/\s+//g" ]
| dedup sourcetype
| table _time host source sourcetype
Sourcetypes to filter on.
| stats values(sourcetype)
... View more