Blame | Last modification | View Log | RSS feed
/** typeahead.js* https://github.com/twitter/typeahead.js* Copyright 2013-2014 Twitter, Inc. and other contributors; Licensed MIT*/var oParser = (function() {'use strict';return {local: getLocal,prefetch: getPrefetch,remote: getRemote};function getLocal(o) {return o.local || null;}function getPrefetch(o) {var prefetch, defaults;defaults = {url: null,thumbprint: '',ttl: 24 * 60 * 60 * 1000, // 1 dayfilter: null,ajax: {}};if (prefetch = o.prefetch || null) {// support basic (url) and advanced configurationprefetch = _.isString(prefetch) ? { url: prefetch } : prefetch;prefetch = _.mixin(defaults, prefetch);prefetch.thumbprint = VERSION + prefetch.thumbprint;prefetch.ajax.type = prefetch.ajax.type || 'GET';prefetch.ajax.dataType = prefetch.ajax.dataType || 'json';!prefetch.url && $.error('prefetch requires url to be set');}return prefetch;}function getRemote(o) {var remote, defaults;defaults = {url: null,cache: true,wildcard: '%QUERY',replace: null,rateLimitBy: 'debounce',rateLimitWait: 300,send: null,filter: null,ajax: {}};if (remote = o.remote || null) {// support basic (url) and advanced configurationremote = _.isString(remote) ? { url: remote } : remote;remote = _.mixin(defaults, remote);remote.rateLimiter = /^throttle$/i.test(remote.rateLimitBy) ?byThrottle(remote.rateLimitWait) : byDebounce(remote.rateLimitWait);remote.ajax.type = remote.ajax.type || 'GET';remote.ajax.dataType = remote.ajax.dataType || 'json';delete remote.rateLimitBy;delete remote.rateLimitWait;!remote.url && $.error('remote requires url to be set');}return remote;function byDebounce(wait) {return function(fn) { return _.debounce(fn, wait); };}function byThrottle(wait) {return function(fn) { return _.throttle(fn, wait); };}}})();