Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

corejs-typeahead

corejavascript79.2kMIT1.3.4

fast and fully-featured autocomplete library

typeahead, autocomplete, aria

readme

Build Status Gitter License

corejs-typeahead

This is a maintained fork of twitter.com's autocomplete search library, typeahead.js.

The typeahead.js library consists of 2 components: the suggestion engine, Bloodhound, and the UI view, Typeahead. The suggestion engine is responsible for computing suggestions for a given query. The UI view is responsible for rendering suggestions and handling DOM interactions. Both components can be used separately, but when used together, they can provide a rich typeahead experience.

Getting Started

How you acquire typeahead.js is up to you:

Note: both bloodhound.js and typeahead.jquery.js have a dependency on jQuery 1.9+.

Documentation

Examples

For some working examples of typeahead.js, visit the examples page.

Browser Support

  • Chrome
  • Firefox 3.5+
  • Safari 4+
  • Internet Explorer 8+
  • Opera 11+

NOTE: typeahead.js is not tested on mobile browsers.

Customer Support

For general questions about typeahead.js, tweet at @typeahead.

For technical questions, you should post a question on Stack Overflow and tag it with typeahead.js.

Issues

Discovered a bug? Please create an issue here on GitHub!

github.com/corejavascript/typeahead.js/issues

Versioning

For transparency and insight into our release cycle, releases will be numbered with the following format:

<major>.<minor>.<patch>

And constructed with the following guidelines:

  • Breaking backwards compatibility bumps the major
  • New additions without breaking backwards compatibility bumps the minor
  • Bug fixes and misc changes bump the patch

For more information on semantic versioning, please visit semver.org.

Testing

Tests are written using Jasmine and ran with Karma. To run the test suite with PhantomJS, run $ npm test.

Developers

If you plan on contributing to typeahead.js, be sure to read the contributing guidelines. A good starting place for new contributors are issues labeled with entry-level. Entry-level issues tend to require minor changes and provide developers a chance to get more familiar with typeahead.js before taking on more challenging work.

In order to build and test typeahead.js, you'll need to install its dev dependencies ($ npm install) and have grunt-cli installed ($ npm install -g grunt-cli). Below is an overview of the available Grunt tasks that'll be useful in development.

  • grunt build – Builds typeahead.js from source.
  • grunt lint – Runs source and test files through JSHint.
  • grunt watch – Rebuilds typeahead.js whenever a source file is modified.
  • grunt server – Serves files from the root of typeahead.js on localhost:8888. Useful for using test/playground.html for debugging/testing.
  • grunt dev – Runs grunt watch and grunt server in parallel.

Maintainers

Authors

License

Copyright 2013 Twitter, Inc.

Licensed under the MIT License

changelog

Changelog

1.3.4

  • Rebuild dist files and re-tag latest release.

1.3.3

  • Add an aria-controls attribute to input element for WCAG 2.1 accessibility compliance
  • Removed BitHound badges from Readme.md #242

1.3.2

  • (Version increment for package publishing. No code changes.)

1.3.1 April 12, 2020

  • Update numerous npm dependencies to resolve vulnerability warnings.
  • Fix aria warnings in Chrome lighthouse, make aria spec compliant #197

1.3.0 November 16, 2019

  • Fix autoselect on tab #199
  • On up/down arrow, set the input only if data.val is a string #184
  • Apply accessibility attributes to suggestion template #185

1.2.1 September 25, 2017

  • Fix various typos #137
  • Add jQuery 3 support #102
  • Remove 'required' class from cloned input field #125
  • Add autoselect option #154
  • Update example link to corejavascript docs #149
  • Fix link in bloodhound docs #134
  • Minor change to docs to log object instead of assuming it's a string #157

1.2.0 September 25, 2017

(Skipped)

1.1.1 January 12, 2017

  • Fix hiding of .visuallyhidden style (introduced in #104) #107

1.1.0 December 19, 2016

  • Improve screen reader support, ARIA, etc. #104
  • Remove non-essential files from NPM package #100

1.0.1 November 17, 2016

  • v1.0.1 Released

1.0.0-beta November 10, 2016

  • Add diacritic-insensitive highlighting #51
  • Allow for custom setting of maxPendingRequests #62
  • Fix incorrect event arguments #65
  • Fix incorrect limit with remote #52
  • Implement edge ngram tokenizer for Bloodhound #93
  • Remove requirement to have bower when installing via NPM #74
  • Fix codestyle issues #86
  • Add PhantomJS as dev dependency #87
  • Remove cursor onMouseLeave #90
  • Add matchAnyQueryToken option. #2
  • Update rendered-count after async results have displayed. #8
  • Add default on option to stop propagation when selecting an entry. #13
  • Fix link to contributing guidelines #49
  • Set cursor onHover #28
  • Complete to currently selected suggestion #27
  • Fix 404 links #41
  • Fix typos in comments in plugin.js #37
  • Update travis config to run latest supported node version #25
  • Update NPM package dependencies #19
  • Speed up Travis build #22
  • Fix npm error by adding license link #18
  • Move globally installed dependency #16

0.11.1 April 26, 2015

  • Add prepare option to prefetch. #1181
  • Handle QuotaExceededError. #1110
  • Escape HTML entities from suggestion display value when rendering with default template. #964
  • List jquery as a dependency in package.json. #1143

0.11.0 April 25, 2015

An overhaul of typeahead.js – consider this a release candidate for v1. There are bunch of API changes with this release so don't expect backwards compatibility with previous versions. There are also many new undocumented features that have been introduced. Documentation for those features will be added before v1 ships.

Beware that since this release is pretty much a rewrite, there are bound to be some bugs. To be safe, you should consider this release beta software and throughly test your integration of it before using it in production environments. This caveat only applies to this release as subsequent releases will address any issues that come up.

0.10.5 August 7, 2014

  • Increase supported version range for jQuery dependency. #917

0.10.4 July 13, 2014

Hotfix

  • Fix regression that breaks Bloodhound instances when more than 1 instance is relying on remote data. #899

0.10.3 July 10, 2014

Bug fixes

  • Bloodhound#clearPrefetchCache now works with cache keys that contain regex characters. #771
  • Prevent outdated network requests from being sent. #809
  • Add support to object tokenizers for multiple property tokenization. #811
  • Fix broken jQuery#typeahead('val') method. #815
  • Remove disabled attribute from the hint input control. #839
  • Add tt-highlight class to highlighted text. #833
  • Handle non-string types that are passed to jQuery#typeahead('val', val). #881

0.10.2 March 10, 2014

  • Prevent flickering of dropdown menu when requesting remote suggestions. #718
  • Reduce hint flickering. #754
  • Added Bloodhound#{clear, clearPrefetchCache, clearRemoteCache} and made it possible to reinitialize Bloodhound instances. #703
  • Invoke local function during initialization. #687
  • In addition to HTML strings, templates can now return DOM nodes. #742
  • Prevent jQuery#typeahead('val', val) from opening dropdown menus of non-active typeaheads. #646
  • Fix bug in IE that resulted in dropdown menus with overflow being closed when clicking on the scrollbar. #705
  • Only show dropdown menu if minLength is satisfied. #710

0.10.1 February 9, 2014

Hotfix

  • Fixed bug that prevented some ajax configs from being respected. #630
  • Event delegation on suggestion clicks is no longer broken. #118
  • Ensure dataset names are valid class name suffixes. #610
  • Added support for displayKey to be a function. #633
  • jQuery#typeahead('val') now mirrors jQuery#val(). #659
  • Datasets can now be passed to jQuery plugin as an array. #664
  • Added a noConflict method to the jQuery plugin. #612
  • Bloodhound's local property can now be a function. #485

0.10.0 February 2, 2014

Introducting Bloodhound

This release was almost a complete rewrite of typeahead.js and will hopefully lay the foundation for the 1.0.0 release. It's impossible to enumerate all of the issues that were fixed. If you want to get an idea of what issues 0.10.0 resolved, take a look at the closed issues in the 0.10.0 milestone.

The most important change in 0.10.0 is that typeahead.js was broken up into 2 individual components: Bloodhound and jQuery#typeahead. Bloodhound is an feature-rich suggestion engine. jQuery#typeahead is a jQuery plugin that turns input controls into typeaheads.

It's impossible to write a typeahead library that supports every use-case out of the box – that was the main motivation behind decomposing typeahead.js. Previously, some prospective typeahead.js users were unable to use the library because either the suggestion engine or the typeahead UI did not meet their requirements. In those cases, they were either forced to fork typeahead.js and make the necessary modifications or they had to give up on using typeahead.js entirely. Now they have the option of swapping out the component that doesn't work for them with a custom implementation.

0.9.3 June 24, 2013

  • Ensure cursor visibility in menus with overflow. #209
  • Fixed bug that led to the menu staying open when it should have been closed. #260
  • Private browsing in Safari no longer breaks prefetch. #270
  • Pressing tab while a suggestion is highlighted now results in a selection. #266
  • Dataset name is now passed as an argument for typeahead:selected event. #207

0.9.2 April 14, 2013

  • Prefetch usage no longer breaks when cookies are disabled. #190
  • Precompiled templates are now wrapped in the appropriate DOM element. #172

0.9.1 April 1, 2013

  • Multiple requests no longer get sent for a query when datasets share a remote source. #152
  • Datasets now support precompiled templates. #137
  • Cached remote suggestions now get rendered immediately. #156
  • Added typeahead:autocompleted event. #132
  • Added a plugin method for programmatically setting the query. Experimental. #159
  • Added minLength option for datasets. Experimental. #131
  • Prefetch objects now support thumbprint option. Experimental. #157

0.9.0 March 24, 2013

Custom events, no more typeahead.css, and an improved API

  • Implemented the triggering of custom events. #106
  • Got rid of typeahead.css and now apply styling through JavaScript. #15
  • Made the API more flexible and addressed a handful of remote issues by rewriting the transport component. #25
  • Added support for dataset headers and footers. #81
  • No longer cache unnamed datasets. #116
  • Made the key name of the value property configurable. #115
  • Input values set before initialization of typeaheads are now respected. #109
  • Fixed an input value/hint casing bug. #108

0.8.2 March 04, 2013

  • Fixed bug causing error to be thrown when initializing a typeahead on multiple elements. #51
  • Tokens with falsy values are now filtered out – was causing wonky behavior. #75
  • No longer making remote requests for blank queries. #74
  • Datums with regex characters in their value no longer cause errors. #77
  • Now compatible with the Closure Compiler. #48
  • Reference to jQuery is now obtained through window.jQuery, not window.$. #47
  • Added a plugin method for destroying typeaheads. Won't be documented until v0.9 and might change before then. #59

0.8.1 February 25, 2013

  • Fixed bug preventing local and prefetch from being used together. #39
  • No longer prevent default browser behavior when up or down arrow is pressed with a modifier. #6
  • Hint is hidden when user entered query is wider than the input. #26
  • Data stored in localStorage now expires properly. #34
  • Normalized search tokens and fixed query tokenization. #38
  • Remote suggestions now are appended, not prepended to suggestions list. #40
  • Fixed some typos through the codebase. #3

0.8.0 February 19, 2013

Initial public release

  • Prefetch and search data locally insanely fast.
  • Search hard-coded, prefetched, and/or remote data.
  • Hinting.
  • RTL/IME/international support.
  • Search multiple datasets.
  • Share datasets (and caching) between multiple inputs.
  • And much, much more...