{{ overviewIntro }}

{{ i18n.t.common.sectionDescription }}

{{ descriptionBody }}

{{ i18n.t.common.sectionFeatures }}
  • {{ item }}
{{ i18n.t.common.sectionLimitations }}
  • {{ item }}
{{ simpleSearchTitle }}

{{ simpleSearchBody }}

{{ openOnFocusTitle }}

{{ openOnFocusBody }}

{{ selectOnExactTitle }}

{{ selectOnExactBody }}

{{ formattedResultsTitle }}

{{ formattedResultsBody }}

{{ asyncTitle }}

{{ asyncBody }}

{{ strictTitle }}

{{ strictBody }}

{{ highlightTitle }}

{{ highlightBody }}

{{ lastEvent }}
{{ apiUsageTitle }}

{{ apiUsageBody }}

  • {{ item }}
<li-typeahead
  [searchCallback]="remoteCitySearch"
  [inputFormatter]="cityInputFormatter"
  [resultMarkupBuilder]="remoteResultMarkup"
  [debounceMs]="220"
  placeholder="Remote city search"
  [(ngModel)]="remoteSelection">
</li-typeahead>
{{ bestPracticesTitle }}
  • {{ item }}
final cities = <Map<String, dynamic>>[
  {'code': 'gru', 'name': 'Sao Paulo', 'region': 'BR'},
  {'code': 'lis', 'name': 'Lisbon', 'region': 'PT'},
];

Future<List<Map<String, dynamic>>> remoteCitySearch(String term) async {
  await Future<void>.delayed(const Duration(milliseconds: 350));
  return cities.where((item) => item['name'].toLowerCase().contains(term.toLowerCase())).toList();
}