{"version":3,"file":"418.418.38335.js","mappings":"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","sources":["webpack://umms-html/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://umms-html/./FrontEndSrc/js/vendor/typeaheadjs/dist/bloodhound.min.js","webpack://umms-html/./FrontEndSrc/js/vendor/typeaheadjs/dist/typeahead.jquery.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\r\n * typeahead.js 1.2.0\r\n * https://github.com/twitter/typeahead.js\r\n * Copyright 2013-2017 Twitter, Inc. and other contributors; Licensed MIT\r\n */\r\n\r\n!function(a,b){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(c){return a.Bloodhound=b(c)}):\"object\"==typeof exports?module.exports=b(require(\"jquery\")):a.Bloodhound=b(a.jQuery)}(this,function(a){var b=function(){\"use strict\";return{isMsie:function(){return!!/(msie|trident)/i.test(navigator.userAgent)&&navigator.userAgent.match(/(msie |rv:)(\\d+(.\\d+)?)/i)[2]},isBlankString:function(a){return!a||/^\\s*$/.test(a)},escapeRegExChars:function(a){return a.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\")},isString:function(a){return\"string\"==typeof a},isNumber:function(a){return\"number\"==typeof a},isArray:a.isArray,isFunction:a.isFunction,isObject:a.isPlainObject,isUndefined:function(a){return\"undefined\"==typeof a},isElement:function(a){return!(!a||1!==a.nodeType)},isJQuery:function(b){return b instanceof a},toStr:function(a){return b.isUndefined(a)||null===a?\"\":a+\"\"},bind:a.proxy,each:function(b,c){function d(a,b){return c(b,a)}a.each(b,d)},map:a.map,filter:a.grep,every:function(b,c){var d=!0;return b?(a.each(b,function(a,e){if(!(d=c.call(null,e,a,b)))return!1}),!!d):d},some:function(b,c){var d=!1;return b?(a.each(b,function(a,e){if(d=c.call(null,e,a,b))return!1}),!!d):d},mixin:a.extend,identity:function(a){return a},clone:function(b){return a.extend(!0,{},b)},getIdGenerator:function(){var a=0;return function(){return a++}},templatify:function(b){function c(){return String(b)}return a.isFunction(b)?b:c},defer:function(a){setTimeout(a,0)},debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},throttle:function(a,b){var c,d,e,f,g,h;return g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)},function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,j<=0?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},stringify:function(a){return b.isString(a)?a:JSON.stringify(a)},guid:function(){function a(a){var b=(Math.random().toString(16)+\"000000000\").substr(2,8);return a?\"-\"+b.substr(0,4)+\"-\"+b.substr(4,4):b}return\"tt-\"+a()+a(!0)+a(!0)+a()},noop:function(){}}}(),c=\"1.2.0\",d=function(){\"use strict\";function a(a){return a=b.toStr(a),a?a.split(/\\s+/):[]}function c(a){return a=b.toStr(a),a?a.split(/\\W+/):[]}function d(a){a=b.toStr(a);var c=[],d=\"\";return b.each(a.split(\"\"),function(a){a.match(/\\s+/)?d=\"\":(c.push(d+a),d+=a)}),c}function e(a){return function(c){return c=b.isArray(c)?c:[].slice.call(arguments,0),function(d){var e=[];return b.each(c,function(c){e=e.concat(a(b.toStr(d[c])))}),e}}}return{nonword:c,whitespace:a,ngram:d,obj:{nonword:e(c),whitespace:e(a),ngram:e(d)}}}(),e=function(){\"use strict\";function c(c){this.maxSize=b.isNumber(c)?c:100,this.reset(),this.maxSize<=0&&(this.set=this.get=a.noop)}function d(){this.head=this.tail=null}function e(a,b){this.key=a,this.val=b,this.prev=this.next=null}return b.mixin(c.prototype,{set:function(a,b){var c,d=this.list.tail;this.size>=this.maxSize&&(this.list.remove(d),delete this.hash[d.key],this.size--),(c=this.hash[a])?(c.val=b,this.list.moveToFront(c)):(c=new e(a,b),this.list.add(c),this.hash[a]=c,this.size++)},get:function(a){var b=this.hash[a];if(b)return this.list.moveToFront(b),b.val},reset:function(){this.size=0,this.hash={},this.list=new d}}),b.mixin(d.prototype,{add:function(a){this.head&&(a.next=this.head,this.head.prev=a),this.head=a,this.tail=this.tail||a},remove:function(a){a.prev?a.prev.next=a.next:this.head=a.next,a.next?a.next.prev=a.prev:this.tail=a.prev},moveToFront:function(a){this.remove(a),this.add(a)}}),c}(),f=function(){\"use strict\";function c(a,c){this.prefix=[\"__\",a,\"__\"].join(\"\"),this.ttlKey=\"__ttl__\",this.keyMatcher=new RegExp(\"^\"+b.escapeRegExChars(this.prefix)),this.ls=c||h,!this.ls&&this._noop()}function d(){return(new Date).getTime()}function e(a){return JSON.stringify(b.isUndefined(a)?null:a)}function f(b){return a.parseJSON(b)}function g(a){var b,c,d=[],e=h.length;for(b=0;b<e;b++)(c=h.key(b)).match(a)&&d.push(c.replace(a,\"\"));return d}var h;try{h=window.localStorage,h.setItem(\"~~~\",\"!\"),h.removeItem(\"~~~\")}catch(a){h=null}return b.mixin(c.prototype,{_prefix:function(a){return this.prefix+a},_ttlKey:function(a){return this._prefix(a)+this.ttlKey},_noop:function(){this.get=this.set=this.remove=this.clear=this.isExpired=b.noop},_safeSet:function(a,b){try{this.ls.setItem(a,b)}catch(a){\"QuotaExceededError\"===a.name&&(this.clear(),this._noop())}},get:function(a){return this.isExpired(a)&&this.remove(a),f(this.ls.getItem(this._prefix(a)))},set:function(a,c,f){return b.isNumber(f)?this._safeSet(this._ttlKey(a),e(d()+f)):this.ls.removeItem(this._ttlKey(a)),this._safeSet(this._prefix(a),e(c))},remove:function(a){return this.ls.removeItem(this._ttlKey(a)),this.ls.removeItem(this._prefix(a)),this},clear:function(){var a,b=g(this.keyMatcher);for(a=b.length;a--;)this.remove(b[a]);return this},isExpired:function(a){var c=f(this.ls.getItem(this._ttlKey(a)));return!!(b.isNumber(c)&&d()>c)}}),c}(),g=function(){\"use strict\";function c(a){a=a||{},this.maxPendingRequests=a.maxPendingRequests||6,this.cancelled=!1,this.lastReq=null,this._send=a.transport,this._get=a.limiter?a.limiter(this._get):this._get,this._cache=a.cache===!1?new e(0):g}var d=0,f={},g=new e(10);return c.setMaxPendingRequests=function(a){this.maxPendingRequests=a},c.resetCache=function(){g.reset()},b.mixin(c.prototype,{_fingerprint:function(b){return b=b||{},b.url+b.type+a.param(b.data||{})},_get:function(a,b){function c(a){b(null,a),j._cache.set(h,a)}function e(){b(!0)}function g(){d--,delete f[h],j.onDeckRequestArgs&&(j._get.apply(j,j.onDeckRequestArgs),j.onDeckRequestArgs=null)}var h,i,j=this;h=this._fingerprint(a),this.cancelled||h!==this.lastReq||((i=f[h])?i.done(c).fail(e):d<this.maxPendingRequests?(d++,f[h]=this._send(a).done(c).fail(e).always(g)):this.onDeckRequestArgs=[].slice.call(arguments,0))},get:function(c,d){var e,f;d=d||a.noop,c=b.isString(c)?{url:c}:c||{},f=this._fingerprint(c),this.cancelled=!1,this.lastReq=f,(e=this._cache.get(f))?d(null,e):this._get(c,d)},cancel:function(){this.cancelled=!0}}),c}(),h=window.SearchIndex=function(){\"use strict\";function c(c){c=c||{},c.datumTokenizer&&c.queryTokenizer||a.error(\"datumTokenizer and queryTokenizer are both required\"),this.identify=c.identify||b.stringify,this.datumTokenizer=c.datumTokenizer,this.queryTokenizer=c.queryTokenizer,this.matchAnyQueryToken=c.matchAnyQueryToken,this.reset()}function d(a){return a=b.filter(a,function(a){return!!a}),a=b.map(a,function(a){return a.toLowerCase()})}function e(){var a={};return a[i]=[],a[h]={},a}function f(a){for(var b={},c=[],d=0,e=a.length;d<e;d++)b[a[d]]||(b[a[d]]=!0,c.push(a[d]));return c}function g(a,b){var c=0,d=0,e=[];a=a.sort(),b=b.sort();for(var f=a.length,g=b.length;c<f&&d<g;)a[c]<b[d]?c++:a[c]>b[d]?d++:(e.push(a[c]),c++,d++);return e}var h=\"c\",i=\"i\";return b.mixin(c.prototype,{bootstrap:function(a){this.datums=a.datums,this.trie=a.trie},add:function(a){var c=this;a=b.isArray(a)?a:[a],b.each(a,function(a){var f,g;c.datums[f=c.identify(a)]=a,g=d(c.datumTokenizer(a)),b.each(g,function(a){var b,d,g;for(b=c.trie,d=a.split(\"\");g=d.shift();)b=b[h][g]||(b[h][g]=e()),b[i].push(f)})})},get:function(a){var c=this;return b.map(a,function(a){return c.datums[a]})},search:function(a){var c,e,j=this;return c=d(this.queryTokenizer(a)),b.each(c,function(a){var b,c,d,f;if(e&&0===e.length&&!j.matchAnyQueryToken)return!1;for(b=j.trie,c=a.split(\"\");b&&(d=c.shift());)b=b[h][d];if(b&&0===c.length)f=b[i].slice(0),e=e?g(e,f):f;else if(!j.matchAnyQueryToken)return e=[],!1}),e?b.map(f(e),function(a){return j.datums[a]}):[]},all:function(){var a=[];for(var b in this.datums)a.push(this.datums[b]);return a},reset:function(){this.datums={},this.trie=e()},serialize:function(){return{datums:this.datums,trie:this.trie}}}),c}(),i=function(){\"use strict\";function a(a){this.url=a.url,this.ttl=a.ttl,this.cache=a.cache,this.prepare=a.prepare,this.transform=a.transform,this.transport=a.transport,this.thumbprint=a.thumbprint,this.storage=new f(a.cacheKey)}var c;return c={data:\"data\",protocol:\"protocol\",thumbprint:\"thumbprint\"},b.mixin(a.prototype,{_settings:function(){return{url:this.url,type:\"GET\",dataType:\"json\"}},store:function(a){this.cache&&(this.storage.set(c.data,a,this.ttl),this.storage.set(c.protocol,location.protocol,this.ttl),this.storage.set(c.thumbprint,this.thumbprint,this.ttl))},fromCache:function(){var a,b={};return this.cache?(b.data=this.storage.get(c.data),b.protocol=this.storage.get(c.protocol),b.thumbprint=this.storage.get(c.thumbprint),a=b.thumbprint!==this.thumbprint||b.protocol!==location.protocol,b.data&&!a?b.data:null):null},fromNetwork:function(a){function b(){a(!0)}function c(b){a(null,e.transform(b))}var d,e=this;a&&(d=this.prepare(this._settings()),this.transport(d).fail(b).done(c))},clear:function(){return this.storage.clear(),this}}),a}(),j=function(){\"use strict\";function a(a){this.url=a.url,this.prepare=a.prepare,this.transform=a.transform,this.indexResponse=a.indexResponse,this.transport=new g({cache:a.cache,limiter:a.limiter,transport:a.transport,maxPendingRequests:a.maxPendingRequests})}return b.mixin(a.prototype,{_settings:function(){return{url:this.url,type:\"GET\",dataType:\"json\"}},get:function(a,b){function c(a,c){b(a?[]:e.transform(c))}var d,e=this;if(b)return a=a||\"\",d=this.prepare(a,this._settings()),this.transport.get(d,c)},cancelLastRequest:function(){this.transport.cancel()}}),a}(),k=function(){\"use strict\";function d(d){var e;return d?(e={url:null,ttl:864e5,cache:!0,cacheKey:null,thumbprint:\"\",prepare:b.identity,transform:b.identity,transport:null},d=b.isString(d)?{url:d}:d,d=b.mixin(e,d),!d.url&&a.error(\"prefetch requires url to be set\"),d.transform=d.filter||d.transform,d.cacheKey=d.cacheKey||d.url,d.thumbprint=c+d.thumbprint,d.transport=d.transport?h(d.transport):a.ajax,d):null}function e(c){var d;if(c)return d={url:null,cache:!0,prepare:null,replace:null,wildcard:null,limiter:null,rateLimitBy:\"debounce\",rateLimitWait:300,transform:b.identity,transport:null},c=b.isString(c)?{url:c}:c,c=b.mixin(d,c),!c.url&&a.error(\"remote requires url to be set\"),c.transform=c.filter||c.transform,c.prepare=f(c),c.limiter=g(c),c.transport=c.transport?h(c.transport):a.ajax,delete c.replace,delete c.wildcard,delete c.rateLimitBy,delete c.rateLimitWait,c}function f(a){function b(a,b){return b.url=f(b.url,a),b}function c(a,b){return b.url=b.url.replace(g,encodeURIComponent(a)),b}function d(a,b){return b}var e,f,g;return e=a.prepare,f=a.replace,g=a.wildcard,e?e:e=f?b:a.wildcard?c:d}function g(a){function c(a){return function(c){return b.debounce(c,a)}}function d(a){return function(c){return b.throttle(c,a)}}var e,f,g;return e=a.limiter,f=a.rateLimitBy,g=a.rateLimitWait,e||(e=/^throttle$/i.test(f)?d(g):c(g)),e}function h(c){return function(d){function e(a){b.defer(function(){g.resolve(a)})}function f(a){b.defer(function(){g.reject(a)})}var g=a.Deferred();return c(d,e,f),g}}return function(c){var f,g;return f={initialize:!0,identify:b.stringify,datumTokenizer:null,queryTokenizer:null,matchAnyQueryToken:!1,sufficient:5,indexRemote:!1,sorter:null,local:[],prefetch:null,remote:null},c=b.mixin(f,c||{}),!c.datumTokenizer&&a.error(\"datumTokenizer is required\"),!c.queryTokenizer&&a.error(\"queryTokenizer is required\"),g=c.sorter,c.sorter=g?function(a){return a.sort(g)}:b.identity,c.local=b.isFunction(c.local)?c.local():c.local,c.prefetch=d(c.prefetch),c.remote=e(c.remote),c}}(),l=function(){\"use strict\";function c(a){a=k(a),this.sorter=a.sorter,this.identify=a.identify,this.sufficient=a.sufficient,this.indexRemote=a.indexRemote,this.local=a.local,this.remote=a.remote?new j(a.remote):null,this.prefetch=a.prefetch?new i(a.prefetch):null,this.index=new h({identify:this.identify,datumTokenizer:a.datumTokenizer,queryTokenizer:a.queryTokenizer}),a.initialize!==!1&&this.initialize()}var e;return e=window&&window.Bloodhound,c.noConflict=function(){return window&&(window.Bloodhound=e),c},c.tokenizers=d,b.mixin(c.prototype,{__ttAdapter:function(){function a(a,b,d){return c.search(a,b,d)}function b(a,b){return c.search(a,b)}var c=this;return this.remote?a:b},_loadPrefetch:function(){function b(a,b){return a?c.reject():(e.add(b),e.prefetch.store(e.index.serialize()),void c.resolve())}var c,d,e=this;return c=a.Deferred(),this.prefetch?(d=this.prefetch.fromCache())?(this.index.bootstrap(d),c.resolve()):this.prefetch.fromNetwork(b):c.resolve(),c.promise()},_initialize:function(){function a(){b.add(b.local)}var b=this;return this.clear(),(this.initPromise=this._loadPrefetch()).done(a),this.initPromise},initialize:function(a){return!this.initPromise||a?this._initialize():this.initPromise},add:function(a){return this.index.add(a),this},get:function(a){return a=b.isArray(a)?a:[].slice.call(arguments),this.index.get(a)},search:function(a,c,d){function e(a){var c=[];b.each(a,function(a){!b.some(f,function(b){return g.identify(a)===g.identify(b)})&&c.push(a)}),g.indexRemote&&g.add(c),d(c)}var f,g=this;return c=c||b.noop,d=d||b.noop,f=this.sorter(this.index.search(a)),c(this.remote?f.slice():f),this.remote&&f.length<this.sufficient?this.remote.get(a,e):this.remote&&this.remote.cancelLastRequest(),this},all:function(){return this.index.all()},clear:function(){return this.index.reset(),this},clearPrefetchCache:function(){return this.prefetch&&this.prefetch.clear(),this},clearRemoteCache:function(){return g.resetCache(),this},ttAdapter:function(){return this.__ttAdapter()}}),c}();return l});","/*!\r\n * typeahead.js 1.2.0\r\n * https://github.com/twitter/typeahead.js\r\n * Copyright 2013-2017 Twitter, Inc. and other contributors; Licensed MIT\r\n */\r\n\r\n(function(root, factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n define([ \"jquery\" ], function(a0) {\r\n return factory(a0);\r\n });\r\n } else if (typeof exports === \"object\") {\r\n module.exports = factory(require(\"jquery\"));\r\n } else {\r\n factory(root[\"jQuery\"]);\r\n }\r\n})(this, function($) {\r\n var _ = function() {\r\n \"use strict\";\r\n return {\r\n isMsie: function() {\r\n return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\\d+(.\\d+)?)/i)[2] : false;\r\n },\r\n isBlankString: function(str) {\r\n return !str || /^\\s*$/.test(str);\r\n },\r\n escapeRegExChars: function(str) {\r\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\r\n },\r\n isString: function(obj) {\r\n return typeof obj === \"string\";\r\n },\r\n isNumber: function(obj) {\r\n return typeof obj === \"number\";\r\n },\r\n isArray: $.isArray,\r\n isFunction: $.isFunction,\r\n isObject: $.isPlainObject,\r\n isUndefined: function(obj) {\r\n return typeof obj === \"undefined\";\r\n },\r\n isElement: function(obj) {\r\n return !!(obj && obj.nodeType === 1);\r\n },\r\n isJQuery: function(obj) {\r\n return obj instanceof $;\r\n },\r\n toStr: function toStr(s) {\r\n return _.isUndefined(s) || s === null ? \"\" : s + \"\";\r\n },\r\n bind: $.proxy,\r\n each: function(collection, cb) {\r\n $.each(collection, reverseArgs);\r\n function reverseArgs(index, value) {\r\n return cb(value, index);\r\n }\r\n },\r\n map: $.map,\r\n filter: $.grep,\r\n every: function(obj, test) {\r\n var result = true;\r\n if (!obj) {\r\n return result;\r\n }\r\n $.each(obj, function(key, val) {\r\n if (!(result = test.call(null, val, key, obj))) {\r\n return false;\r\n }\r\n });\r\n return !!result;\r\n },\r\n some: function(obj, test) {\r\n var result = false;\r\n if (!obj) {\r\n return result;\r\n }\r\n $.each(obj, function(key, val) {\r\n if (result = test.call(null, val, key, obj)) {\r\n return false;\r\n }\r\n });\r\n return !!result;\r\n },\r\n mixin: $.extend,\r\n identity: function(x) {\r\n return x;\r\n },\r\n clone: function(obj) {\r\n return $.extend(true, {}, obj);\r\n },\r\n getIdGenerator: function() {\r\n var counter = 0;\r\n return function() {\r\n return counter++;\r\n };\r\n },\r\n templatify: function templatify(obj) {\r\n return $.isFunction(obj) ? obj : template;\r\n function template() {\r\n return String(obj);\r\n }\r\n },\r\n defer: function(fn) {\r\n setTimeout(fn, 0);\r\n },\r\n debounce: function(func, wait, immediate) {\r\n var timeout, result;\r\n return function() {\r\n var context = this, args = arguments, later, callNow;\r\n later = function() {\r\n timeout = null;\r\n if (!immediate) {\r\n result = func.apply(context, args);\r\n }\r\n };\r\n callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) {\r\n result = func.apply(context, args);\r\n }\r\n return result;\r\n };\r\n },\r\n throttle: function(func, wait) {\r\n var context, args, timeout, result, previous, later;\r\n previous = 0;\r\n later = function() {\r\n previous = new Date();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n };\r\n return function() {\r\n var now = new Date(), remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n if (remaining <= 0) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n previous = now;\r\n result = func.apply(context, args);\r\n } else if (!timeout) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n return result;\r\n };\r\n },\r\n stringify: function(val) {\r\n return _.isString(val) ? val : JSON.stringify(val);\r\n },\r\n guid: function() {\r\n function _p8(s) {\r\n var p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\r\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\r\n }\r\n return \"tt-\" + _p8() + _p8(true) + _p8(true) + _p8();\r\n },\r\n noop: function() {}\r\n };\r\n }();\r\n var WWW = function() {\r\n \"use strict\";\r\n var defaultClassNames = {\r\n wrapper: \"twitter-typeahead\",\r\n input: \"tt-input\",\r\n hint: \"tt-hint\",\r\n menu: \"tt-menu\",\r\n dataset: \"tt-dataset\",\r\n suggestion: \"tt-suggestion\",\r\n selectable: \"tt-selectable\",\r\n empty: \"tt-empty\",\r\n open: \"tt-open\",\r\n cursor: \"tt-cursor\",\r\n highlight: \"tt-highlight\"\r\n };\r\n return build;\r\n function build(o) {\r\n var www, classes;\r\n classes = _.mixin({}, defaultClassNames, o);\r\n www = {\r\n css: buildCss(),\r\n classes: classes,\r\n html: buildHtml(classes),\r\n selectors: buildSelectors(classes)\r\n };\r\n return {\r\n css: www.css,\r\n html: www.html,\r\n classes: www.classes,\r\n selectors: www.selectors,\r\n mixin: function(o) {\r\n _.mixin(o, www);\r\n }\r\n };\r\n }\r\n function buildHtml(c) {\r\n return {\r\n wrapper: '<span class=\"' + c.wrapper + '\"></span>',\r\n // menu: '<div role=\"listbox\" class=\"' + c.menu + '\"></div>'\r\n menu: '<div class=\"' + c.menu + '\"></div>' // UMMREDESGN-1492\r\n };\r\n }\r\n function buildSelectors(classes) {\r\n var selectors = {};\r\n _.each(classes, function(v, k) {\r\n selectors[k] = \".\" + v;\r\n });\r\n return selectors;\r\n }\r\n function buildCss() {\r\n var css = {\r\n wrapper: {\r\n position: \"relative\",\r\n display: \"inline-block\"\r\n },\r\n hint: {\r\n position: \"absolute\",\r\n top: \"0\",\r\n left: \"0\",\r\n borderColor: \"transparent\",\r\n boxShadow: \"none\",\r\n opacity: \"1\"\r\n },\r\n input: {\r\n position: \"relative\",\r\n verticalAlign: \"top\",\r\n backgroundColor: \"transparent\"\r\n },\r\n inputWithNoHint: {\r\n position: \"relative\",\r\n verticalAlign: \"top\"\r\n },\r\n menu: {\r\n position: \"absolute\",\r\n top: \"100%\",\r\n left: \"0\",\r\n zIndex: \"100\",\r\n display: \"none\"\r\n },\r\n ltr: {\r\n left: \"0\",\r\n right: \"auto\"\r\n },\r\n rtl: {\r\n left: \"auto\",\r\n right: \" 0\"\r\n }\r\n };\r\n if (_.isMsie()) {\r\n _.mixin(css.input, {\r\n backgroundImage: \"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)\"\r\n });\r\n }\r\n return css;\r\n }\r\n }();\r\n var EventBus = function() {\r\n \"use strict\";\r\n var namespace, deprecationMap;\r\n namespace = \"typeahead:\";\r\n deprecationMap = {\r\n render: \"rendered\",\r\n cursorchange: \"cursorchanged\",\r\n select: \"selected\",\r\n autocomplete: \"autocompleted\"\r\n };\r\n function EventBus(o) {\r\n if (!o || !o.el) {\r\n $.error(\"EventBus initialized without el\");\r\n }\r\n this.$el = $(o.el);\r\n }\r\n _.mixin(EventBus.prototype, {\r\n _trigger: function(type, args) {\r\n var $e = $.Event(namespace + type);\r\n this.$el.trigger.call(this.$el, $e, args || []);\r\n return $e;\r\n },\r\n before: function(type) {\r\n var args, $e;\r\n args = [].slice.call(arguments, 1);\r\n $e = this._trigger(\"before\" + type, args);\r\n return $e.isDefaultPrevented();\r\n },\r\n trigger: function(type) {\r\n var deprecatedType;\r\n this._trigger(type, [].slice.call(arguments, 1));\r\n if (deprecatedType = deprecationMap[type]) {\r\n this._trigger(deprecatedType, [].slice.call(arguments, 1));\r\n }\r\n }\r\n });\r\n return EventBus;\r\n }();\r\n var EventEmitter = function() {\r\n \"use strict\";\r\n var splitter = /\\s+/, nextTick = getNextTick();\r\n return {\r\n onSync: onSync,\r\n onAsync: onAsync,\r\n off: off,\r\n trigger: trigger\r\n };\r\n function on(method, types, cb, context) {\r\n var type;\r\n if (!cb) {\r\n return this;\r\n }\r\n types = types.split(splitter);\r\n cb = context ? bindContext(cb, context) : cb;\r\n this._callbacks = this._callbacks || {};\r\n while (type = types.shift()) {\r\n this._callbacks[type] = this._callbacks[type] || {\r\n sync: [],\r\n async: []\r\n };\r\n this._callbacks[type][method].push(cb);\r\n }\r\n return this;\r\n }\r\n function onAsync(types, cb, context) {\r\n return on.call(this, \"async\", types, cb, context);\r\n }\r\n function onSync(types, cb, context) {\r\n return on.call(this, \"sync\", types, cb, context);\r\n }\r\n function off(types) {\r\n var type;\r\n if (!this._callbacks) {\r\n return this;\r\n }\r\n types = types.split(splitter);\r\n while (type = types.shift()) {\r\n delete this._callbacks[type];\r\n }\r\n return this;\r\n }\r\n function trigger(types) {\r\n var type, callbacks, args, syncFlush, asyncFlush;\r\n if (!this._callbacks) {\r\n return this;\r\n }\r\n types = types.split(splitter);\r\n args = [].slice.call(arguments, 1);\r\n while ((type = types.shift()) && (callbacks = this._callbacks[type])) {\r\n syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args));\r\n asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args));\r\n syncFlush() && nextTick(asyncFlush);\r\n }\r\n return this;\r\n }\r\n function getFlush(callbacks, context, args) {\r\n return flush;\r\n function flush() {\r\n var cancelled;\r\n for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) {\r\n cancelled = callbacks[i].apply(context, args) === false;\r\n }\r\n return !cancelled;\r\n }\r\n }\r\n function getNextTick() {\r\n var nextTickFn;\r\n if (window.setImmediate) {\r\n nextTickFn = function nextTickSetImmediate(fn) {\r\n setImmediate(function() {\r\n fn();\r\n });\r\n };\r\n } else {\r\n nextTickFn = function nextTickSetTimeout(fn) {\r\n setTimeout(function() {\r\n fn();\r\n }, 0);\r\n };\r\n }\r\n return nextTickFn;\r\n }\r\n function bindContext(fn, context) {\r\n return fn.bind ? fn.bind(context) : function() {\r\n fn.apply(context, [].slice.call(arguments, 0));\r\n };\r\n }\r\n }();\r\n var highlight = function(doc) {\r\n \"use strict\";\r\n var defaults = {\r\n node: null,\r\n pattern: null,\r\n tagName: \"strong\",\r\n className: null,\r\n wordsOnly: false,\r\n caseSensitive: false,\r\n diacriticInsensitive: false\r\n };\r\n var accented = {\r\n A: \"[AaªÀ-Ã…Ã -åĀ-Ä…ÇÇŽÈ€-ȃȦȧᴬᵃḀá¸áºšáº -ảâ‚â„€â„℻⒜Ⓐâ“ã±-ã´ãŽ€-㎄㎈㎉㎩-㎯ã‚ãŠãŸã¿ï¼¡ï½]\",\r\n B: \"[BbᴮᵇḂ-ḇℬâ’â’·â“‘ã´ãŽ…-㎇ãƒãˆã”ãBb]\",\r\n C: \"[CcÇçĆ-Äᶜ℀ℂ℃℅℆â„â…ⅽ⒞Ⓒⓒã¶ãŽˆãŽ‰ãŽãŽ ㎤ã„-ã‡ï¼£ï½ƒ]\",\r\n D: \"[DdÄŽÄÇ„-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓã‹ã²ã·-ã¹ãŽ—ãŽ-㎯ã…ãˆï¼¤ï½„]\",\r\n E: \"[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔã‰ã‹ã‹Žï¼¥ï½…]\",\r\n F: \"[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]\",\r\n G: \"[GgÄœ-ģǦǧǴǵᴳáµá¸ ḡℊ⒢Ⓖⓖ㋌ã‹ãŽ‡ãŽ-ãŽãŽ“㎬ã†ã‰ã’ã¿ï¼§ï½‡]\",\r\n H: \"[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌ã±ãŽ-㎔ãŠã‹ã—Hh]\",\r\n I: \"[IiÃŒ-Ãì-ïĨ-İIJijÇÇȈ-ȋᴵᵢḬá¸á»ˆ-ịâ±â„â„‘â„¹â…ˆâ… -ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤ⒾⓘãºãŒã•ï¬ï¬ƒï¼©ï½‰]\",\r\n J: \"[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]\",\r\n K: \"[KkĶķǨǩᴷáµá¸°-ḵK⒦Ⓚⓚ㎄㎅㎉ãŽãŽ‘㎘㎞㎢㎦㎪㎸㎾ã€ã†ã-ãKk]\",\r\n L: \"[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧â“â“›ã‹ãŽˆãŽ‰ã-ã“ã•ã–ã¿ï¬‚fflLl]\",\r\n M: \"[Mmá´¹áµá¸¾-ṃ℠™ℳⅯⅿ⒨Ⓜⓜã·-ã¹ãŽƒãŽ†ãŽŽãŽ’㎖㎙-㎨㎫㎳㎷㎹㎽㎿ãã‚ãŽãã”-ã–ã˜ã™ãžãŸï¼ï½]\",\r\n N: \"[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋâ¿â„•â„–⒩Ⓝâ“ãŽãŽ‹ãŽšãŽ±ãŽµãŽ»ãŒã‘Nn]\",\r\n O: \"[OoºÒ-Öò-öŌ-Å‘Æ Æ¡Ç‘Ç’ÇªÇ«ÈŒ-ÈȮȯᴼᵒỌ-á»â‚’℅№ℴ⒪Ⓞⓞãµã‡ã’ã–Oï½]\",\r\n P: \"[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟã‰ã±ã¶ãŽ€ãŽŠãŽ©-㎬㎰㎴㎺ã‹ã—-ãšï¼°ï½]\",\r\n Q: \"[Qqℚ⒬Ⓠⓠãƒï¼±ï½‘]\",\r\n R: \"[RrÅ”-Å™È-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-â„â’Ⓡⓡã‹ã´ãŽ-㎯ãšã›ï¼²ï½’]\",\r\n S: \"[SsÅš-šſȘșˢṠ-ṣ₨â„℠⒮Ⓢⓢ㎧㎨㎮-㎳ã›ãœï¬†ï¼³ï½“]\",\r\n T: \"[TtÅ¢-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣã‰ã‹ãŽ”ãſtstTt]\",\r\n U: \"[UuÙ-Üù-üŨ-ųƯưǓǔȔ-È—áµáµ˜áµ¤á¹²-ṷỤ-ủ℆⒰Ⓤⓤã³ãºï¼µï½•]\",\r\n V: \"[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎ãµãŽ´-㎹ãœãžï¼¶ï½–]\",\r\n W: \"[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿ãï¼·ï½—]\",\r\n X: \"[XxˣẊ-áºâ‚“℻Ⅸ-â…«â…¸-ⅻ⒳â“ⓧã“Xx]\",\r\n Y: \"[YyÃýÿŶ-ŸȲȳʸẎáºáº™á»²-ỹ⒴Ⓨⓨã‰ï¼¹ï½™]\",\r\n Z: \"[ZzŹ-žDZ-dzᶻáº-ẕℤℨ⒵â“â“©ãŽ-㎔Zz]\"\r\n };\r\n return function hightlight(o) {\r\n var regex;\r\n o = _.mixin({}, defaults, o);\r\n if (!o.node || !o.pattern) {\r\n return;\r\n }\r\n o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ];\r\n regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive);\r\n traverse(o.node, hightlightTextNode);\r\n function hightlightTextNode(textNode) {\r\n var match, patternNode, wrapperNode;\r\n if (match = regex.exec(textNode.data)) {\r\n wrapperNode = doc.createElement(o.tagName);\r\n o.className && (wrapperNode.className = o.className);\r\n patternNode = textNode.splitText(match.index);\r\n patternNode.splitText(match[0].length);\r\n wrapperNode.appendChild(patternNode.cloneNode(true));\r\n textNode.parentNode.replaceChild(wrapperNode, patternNode);\r\n }\r\n return !!match;\r\n }\r\n function traverse(el, hightlightTextNode) {\r\n var childNode, TEXT_NODE_TYPE = 3;\r\n for (var i = 0; i < el.childNodes.length; i++) {\r\n childNode = el.childNodes[i];\r\n if (childNode.nodeType === TEXT_NODE_TYPE) {\r\n i += hightlightTextNode(childNode) ? 1 : 0;\r\n } else {\r\n traverse(childNode, hightlightTextNode);\r\n }\r\n }\r\n }\r\n };\r\n function accent_replacer(chr) {\r\n return accented[chr.toUpperCase()] || chr;\r\n }\r\n function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) {\r\n var escapedPatterns = [], regexStr;\r\n for (var i = 0, len = patterns.length; i < len; i++) {\r\n var escapedWord = _.escapeRegExChars(patterns[i]);\r\n if (diacriticInsensitive) {\r\n escapedWord = escapedWord.replace(/\\S/g, accent_replacer);\r\n }\r\n escapedPatterns.push(escapedWord);\r\n }\r\n regexStr = wordsOnly ? \"\\\\b(\" + escapedPatterns.join(\"|\") + \")\\\\b\" : \"(\" + escapedPatterns.join(\"|\") + \")\";\r\n return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, \"i\");\r\n }\r\n }(window.document);\r\n var Input = function() {\r\n \"use strict\";\r\n var specialKeyCodeMap;\r\n specialKeyCodeMap = {\r\n 9: \"tab\",\r\n 27: \"esc\",\r\n 37: \"left\",\r\n 39: \"right\",\r\n 13: \"enter\",\r\n 38: \"up\",\r\n 40: \"down\"\r\n };\r\n function Input(o, www) {\r\n o = o || {};\r\n if (!o.input) {\r\n $.error(\"input is missing\");\r\n }\r\n www.mixin(this);\r\n this.$hint = $(o.hint);\r\n this.$input = $(o.input);\r\n this.$input.attr({\r\n \"aria-activedescendant\": \"\",\r\n \"aria-owns\": this.$input.attr(\"id\") + \"_listbox\",\r\n // removed for UMMS-1501\r\n // \"role\": \"combobox\",\r\n \"aria-readonly\": \"true\",\r\n \"aria-autocomplete\": \"list\"\r\n });\r\n $(www.menu).attr(\"id\", this.$input.attr(\"id\") + \"_listbox\");\r\n this.query = this.$input.val();\r\n this.queryWhenFocused = this.hasFocus() ? this.query : null;\r\n this.$overflowHelper = buildOverflowHelper(this.$input);\r\n this._checkLanguageDirection();\r\n if (this.$hint.length === 0) {\r\n this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop;\r\n }\r\n this.onSync(\"cursorchange\", this._updateDescendent);\r\n }\r\n Input.normalizeQuery = function(str) {\r\n return _.toStr(str).replace(/^\\s*/g, \"\").replace(/\\s{2,}/g, \" \");\r\n };\r\n _.mixin(Input.prototype, EventEmitter, {\r\n _onBlur: function onBlur() {\r\n this.resetInputValue();\r\n this.trigger(\"blurred\");\r\n },\r\n _onFocus: function onFocus() {\r\n this.queryWhenFocused = this.query;\r\n this.trigger(\"focused\");\r\n },\r\n _onKeydown: function onKeydown($e) {\r\n var keyName = specialKeyCodeMap[$e.which || $e.keyCode];\r\n this._managePreventDefault(keyName, $e);\r\n if (keyName && this._shouldTrigger(keyName, $e)) {\r\n this.trigger(keyName + \"Keyed\", $e);\r\n }\r\n },\r\n _onInput: function onInput() {\r\n this._setQuery(this.getInputValue());\r\n this.clearHintIfInvalid();\r\n this._checkLanguageDirection();\r\n },\r\n _managePreventDefault: function managePreventDefault(keyName, $e) {\r\n var preventDefault;\r\n switch (keyName) {\r\n case \"up\":\r\n case \"down\":\r\n preventDefault = !withModifier($e);\r\n break;\r\n\r\n default:\r\n preventDefault = false;\r\n }\r\n preventDefault && $e.preventDefault();\r\n },\r\n _shouldTrigger: function shouldTrigger(keyName, $e) {\r\n var trigger;\r\n switch (keyName) {\r\n case \"tab\":\r\n trigger = !withModifier($e);\r\n break;\r\n\r\n default:\r\n trigger = true;\r\n }\r\n return trigger;\r\n },\r\n _checkLanguageDirection: function checkLanguageDirection() {\r\n var dir = (this.$input.css(\"direction\") || \"ltr\").toLowerCase();\r\n if (this.dir !== dir) {\r\n this.dir = dir;\r\n this.$hint.attr(\"dir\", dir);\r\n this.trigger(\"langDirChanged\", dir);\r\n }\r\n },\r\n _setQuery: function setQuery(val, silent) {\r\n var areEquivalent, hasDifferentWhitespace;\r\n areEquivalent = areQueriesEquivalent(val, this.query);\r\n hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false;\r\n this.query = val;\r\n if (!silent && !areEquivalent) {\r\n this.trigger(\"queryChanged\", this.query);\r\n } else if (!silent && hasDifferentWhitespace) {\r\n this.trigger(\"whitespaceChanged\", this.query);\r\n }\r\n },\r\n _updateDescendent: function updateDescendent(event, id) {\r\n this.$input.attr(\"aria-activedescendant\", id);\r\n },\r\n bind: function() {\r\n var that = this, onBlur, onFocus, onKeydown, onInput;\r\n onBlur = _.bind(this._onBlur, this);\r\n onFocus = _.bind(this._onFocus, this);\r\n onKeydown = _.bind(this._onKeydown, this);\r\n onInput = _.bind(this._onInput, this);\r\n this.$input.on(\"blur.tt\", onBlur).on(\"focus.tt\", onFocus).on(\"keydown.tt\", onKeydown);\r\n if (!_.isMsie() || _.isMsie() > 9) {\r\n this.$input.on(\"input.tt\", onInput);\r\n } else {\r\n this.$input.on(\"keydown.tt keypress.tt cut.tt paste.tt\", function($e) {\r\n if (specialKeyCodeMap[$e.which || $e.keyCode]) {\r\n return;\r\n }\r\n _.defer(_.bind(that._onInput, that, $e));\r\n });\r\n }\r\n return this;\r\n },\r\n focus: function focus() {\r\n this.$input.focus();\r\n },\r\n blur: function blur() {\r\n this.$input.blur();\r\n },\r\n getLangDir: function getLangDir() {\r\n return this.dir;\r\n },\r\n getQuery: function getQuery() {\r\n return this.query || \"\";\r\n },\r\n setQuery: function setQuery(val, silent) {\r\n this.setInputValue(val);\r\n this._setQuery(val, silent);\r\n },\r\n hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() {\r\n return this.query !== this.queryWhenFocused;\r\n },\r\n getInputValue: function getInputValue() {\r\n return this.$input.val();\r\n },\r\n setInputValue: function setInputValue(value) {\r\n this.$input.val(value);\r\n this.clearHintIfInvalid();\r\n this._checkLanguageDirection();\r\n },\r\n resetInputValue: function resetInputValue() {\r\n this.setInputValue(this.query);\r\n },\r\n getHint: function getHint() {\r\n return this.$hint.val();\r\n },\r\n setHint: function setHint(value) {\r\n this.$hint.val(value);\r\n },\r\n clearHint: function clearHint() {\r\n this.setHint(\"\");\r\n },\r\n clearHintIfInvalid: function clearHintIfInvalid() {\r\n var val, hint, valIsPrefixOfHint, isValid;\r\n val = this.getInputValue();\r\n hint = this.getHint();\r\n valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0;\r\n isValid = val !== \"\" && valIsPrefixOfHint && !this.hasOverflow();\r\n !isValid && this.clearHint();\r\n },\r\n hasFocus: function hasFocus() {\r\n return this.$input.is(\":focus\");\r\n },\r\n hasOverflow: function hasOverflow() {\r\n var constraint = this.$input.width() - 2;\r\n this.$overflowHelper.text(this.getInputValue());\r\n return this.$overflowHelper.width() >= constraint;\r\n },\r\n isCursorAtEnd: function() {\r\n var valueLength, selectionStart, range;\r\n valueLength = this.$input.val().length;\r\n selectionStart = this.$input[0].selectionStart;\r\n if (_.isNumber(selectionStart)) {\r\n return selectionStart === valueLength;\r\n } else if (document.selection) {\r\n range = document.selection.createRange();\r\n range.moveStart(\"character\", -valueLength);\r\n return valueLength === range.text.length;\r\n }\r\n return true;\r\n },\r\n destroy: function destroy() {\r\n this.$hint.off(\".tt\");\r\n this.$input.off(\".tt\");\r\n this.$overflowHelper.remove();\r\n this.$hint = this.$input = this.$overflowHelper = $(\"<div>\");\r\n }\r\n });\r\n return Input;\r\n function buildOverflowHelper($input) {\r\n return $('<pre aria-hidden=\"true\"></pre>').css({\r\n position: \"absolute\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n fontFamily: $input.css(\"font-family\"),\r\n fontSize: $input.css(\"font-size\"),\r\n fontStyle: $input.css(\"font-style\"),\r\n fontVariant: $input.css(\"font-variant\"),\r\n fontWeight: $input.css(\"font-weight\"),\r\n wordSpacing: $input.css(\"word-spacing\"),\r\n letterSpacing: $input.css(\"letter-spacing\"),\r\n textIndent: $input.css(\"text-indent\"),\r\n textRendering: $input.css(\"text-rendering\"),\r\n textTransform: $input.css(\"text-transform\")\r\n }).insertAfter($input);\r\n }\r\n function areQueriesEquivalent(a, b) {\r\n return Input.normalizeQuery(a) === Input.normalizeQuery(b);\r\n }\r\n function withModifier($e) {\r\n return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey;\r\n }\r\n }();\r\n var Dataset = function() {\r\n \"use strict\";\r\n var keys, nameGenerator;\r\n keys = {\r\n dataset: \"tt-selectable-dataset\",\r\n val: \"tt-selectable-display\",\r\n obj: \"tt-selectable-object\"\r\n };\r\n nameGenerator = _.getIdGenerator();\r\n function Dataset(o, www) {\r\n o = o || {};\r\n o.templates = o.templates || {};\r\n o.templates.notFound = o.templates.notFound || o.templates.empty;\r\n if (!o.source) {\r\n $.error(\"missing source\");\r\n }\r\n if (!o.node) {\r\n $.error(\"missing node\");\r\n }\r\n if (o.name && !isValidName(o.name)) {\r\n $.error(\"invalid dataset name: \" + o.name);\r\n }\r\n www.mixin(this);\r\n this.highlight = !!o.highlight;\r\n this.name = _.toStr(o.name || nameGenerator());\r\n this.limit = o.limit || 5;\r\n this.displayFn = getDisplayFn(o.display || o.displayKey);\r\n this.templates = getTemplates(o.templates, this.displayFn);\r\n this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source;\r\n this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async;\r\n this._resetLastSuggestion();\r\n this.$el = $(o.node).attr(\"role\", \"presentation\").addClass(this.classes.dataset).addClass(this.classes.dataset + \"-\" + this.name);\r\n }\r\n Dataset.extractData = function extractData(el) {\r\n var $el = $(el);\r\n if ($el.data(keys.obj)) {\r\n return {\r\n dataset: $el.data(keys.dataset) || \"\",\r\n val: $el.data(keys.val) || \"\",\r\n obj: $el.data(keys.obj) || null\r\n };\r\n }\r\n return null;\r\n };\r\n _.mixin(Dataset.prototype, EventEmitter, {\r\n _overwrite: function overwrite(query, suggestions) {\r\n suggestions = suggestions || [];\r\n if (suggestions.length) {\r\n this._renderSuggestions(query, suggestions);\r\n } else if (this.async && this.templates.pending) {\r\n this._renderPending(query);\r\n } else if (!this.async && this.templates.notFound) {\r\n this._renderNotFound(query);\r\n } else {\r\n this._empty();\r\n }\r\n this.trigger(\"rendered\", suggestions, false, this.name);\r\n },\r\n _append: function append(query, suggestions) {\r\n suggestions = suggestions || [];\r\n if (suggestions.length && this.$lastSuggestion.length) {\r\n this._appendSuggestions(query, suggestions);\r\n } else if (suggestions.length) {\r\n this._renderSuggestions(query, suggestions);\r\n } else if (!this.$lastSuggestion.length && this.templates.notFound) {\r\n this._renderNotFound(query);\r\n }\r\n this.trigger(\"rendered\", suggestions, true, this.name);\r\n },\r\n _renderSuggestions: function renderSuggestions(query, suggestions) {\r\n var $fragment;\r\n $fragment = this._getSuggestionsFragment(query, suggestions);\r\n this.$lastSuggestion = $fragment.children().last();\r\n this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions));\r\n },\r\n _appendSuggestions: function appendSuggestions(query, suggestions) {\r\n var $fragment, $lastSuggestion;\r\n $fragment = this._getSuggestionsFragment(query, suggestions);\r\n $lastSuggestion = $fragment.children().last();\r\n this.$lastSuggestion.after($fragment);\r\n this.$lastSuggestion = $lastSuggestion;\r\n },\r\n _renderPending: function renderPending(query) {\r\n var template = this.templates.pending;\r\n this._resetLastSuggestion();\r\n template && this.$el.html(template({\r\n query: query,\r\n dataset: this.name\r\n }));\r\n },\r\n _renderNotFound: function renderNotFound(query) {\r\n var template = this.templates.notFound;\r\n this._resetLastSuggestion();\r\n template && this.$el.html(template({\r\n query: query,\r\n dataset: this.name\r\n }));\r\n },\r\n _empty: function empty() {\r\n this.$el.empty();\r\n this._resetLastSuggestion();\r\n },\r\n _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) {\r\n var that = this, fragment;\r\n fragment = document.createDocumentFragment();\r\n _.each(suggestions, function getSuggestionNode(suggestion) {\r\n var $el, context;\r\n context = that._injectQuery(query, suggestion);\r\n $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + \" \" + that.classes.selectable);\r\n fragment.appendChild($el[0]);\r\n });\r\n this.highlight && highlight({\r\n className: this.classes.highlight,\r\n node: fragment,\r\n pattern: query\r\n });\r\n return $(fragment);\r\n },\r\n _getFooter: function getFooter(query, suggestions) {\r\n return this.templates.footer ? this.templates.footer({\r\n query: query,\r\n suggestions: suggestions,\r\n dataset: this.name\r\n }) : null;\r\n },\r\n _getHeader: function getHeader(query, suggestions) {\r\n return this.templates.header ? this.templates.header({\r\n query: query,\r\n suggestions: suggestions,\r\n dataset: this.name\r\n }) : null;\r\n },\r\n _resetLastSuggestion: function resetLastSuggestion() {\r\n this.$lastSuggestion = $();\r\n },\r\n _injectQuery: function injectQuery(query, obj) {\r\n return _.isObject(obj) ? _.mixin({\r\n _query: query\r\n }, obj) : obj;\r\n },\r\n update: function update(query) {\r\n var that = this, canceled = false, syncCalled = false, rendered = 0;\r\n this.cancel();\r\n this.cancel = function cancel() {\r\n canceled = true;\r\n that.cancel = $.noop;\r\n that.async && that.trigger(\"asyncCanceled\", query, that.name);\r\n };\r\n this.source(query, sync, async);\r\n !syncCalled && sync([]);\r\n function sync(suggestions) {\r\n if (syncCalled) {\r\n return;\r\n }\r\n syncCalled = true;\r\n suggestions = (suggestions || []).slice(0, that.limit);\r\n rendered = suggestions.length;\r\n that._overwrite(query, suggestions);\r\n if (rendered < that.limit && that.async) {\r\n that.trigger(\"asyncRequested\", query, that.name);\r\n }\r\n }\r\n function async(suggestions) {\r\n suggestions = suggestions || [];\r\n if (!canceled && rendered < that.limit) {\r\n that.cancel = $.noop;\r\n var idx = Math.abs(rendered - that.limit);\r\n rendered += idx;\r\n that._append(query, suggestions.slice(0, idx));\r\n that.async && that.trigger(\"asyncReceived\", query, that.name);\r\n }\r\n }\r\n },\r\n cancel: $.noop,\r\n clear: function clear() {\r\n this._empty();\r\n this.cancel();\r\n this.trigger(\"cleared\");\r\n },\r\n isEmpty: function isEmpty() {\r\n return this.$el.is(\":empty\");\r\n },\r\n destroy: function destroy() {\r\n this.$el = $(\"<div>\");\r\n }\r\n });\r\n return Dataset;\r\n function getDisplayFn(display) {\r\n display = display || _.stringify;\r\n return _.isFunction(display) ? display : displayFn;\r\n function displayFn(obj) {\r\n return obj[display];\r\n }\r\n }\r\n function getTemplates(templates, displayFn) {\r\n return {\r\n notFound: templates.notFound && _.templatify(templates.notFound),\r\n pending: templates.pending && _.templatify(templates.pending),\r\n header: templates.header && _.templatify(templates.header),\r\n footer: templates.footer && _.templatify(templates.footer),\r\n suggestion: templates.suggestion || suggestionTemplate\r\n };\r\n function suggestionTemplate(context) {\r\n return $('<div role=\"option\">').attr(\"id\", _.guid()).text(displayFn(context));\r\n }\r\n }\r\n function isValidName(str) {\r\n return /^[_a-zA-Z0-9-]+$/.test(str);\r\n }\r\n }();\r\n var Menu = function() {\r\n \"use strict\";\r\n function Menu(o, www) {\r\n var that = this;\r\n o = o || {};\r\n if (!o.node) {\r\n $.error(\"node is required\");\r\n }\r\n www.mixin(this);\r\n this.$node = $(o.node);\r\n this.query = null;\r\n this.datasets = _.map(o.datasets, initializeDataset);\r\n function initializeDataset(oDataset) {\r\n var node = that.$node.find(oDataset.node).first();\r\n oDataset.node = node.length ? node : $(\"<div>\").appendTo(that.$node);\r\n return new Dataset(oDataset, www);\r\n }\r\n }\r\n _.mixin(Menu.prototype, EventEmitter, {\r\n _onSelectableClick: function onSelectableClick($e) {\r\n this.trigger(\"selectableClicked\", $($e.currentTarget));\r\n },\r\n _onRendered: function onRendered(type, dataset, suggestions, async) {\r\n this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty());\r\n this.trigger(\"datasetRendered\", dataset, suggestions, async);\r\n },\r\n _onCleared: function onCleared() {\r\n this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty());\r\n this.trigger(\"datasetCleared\");\r\n },\r\n _propagate: function propagate() {\r\n this.trigger.apply(this, arguments);\r\n },\r\n _allDatasetsEmpty: function allDatasetsEmpty() {\r\n return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) {\r\n var isEmpty = dataset.isEmpty();\r\n this.$node.attr(\"aria-expanded\", !isEmpty);\r\n return isEmpty;\r\n }, this));\r\n },\r\n _getSelectables: function getSelectables() {\r\n return this.$node.find(this.selectors.selectable);\r\n },\r\n _removeCursor: function _removeCursor() {\r\n var $selectable = this.getActiveSelectable();\r\n $selectable && $selectable.removeClass(this.classes.cursor);\r\n },\r\n _ensureVisible: function ensureVisible($el) {\r\n var elTop, elBottom, nodeScrollTop, nodeHeight;\r\n elTop = $el.position().top;\r\n elBottom = elTop + $el.outerHeight(true);\r\n nodeScrollTop = this.$node.scrollTop();\r\n nodeHeight = this.$node.height() + parseInt(this.$node.css(\"paddingTop\"), 10) + parseInt(this.$node.css(\"paddingBottom\"), 10);\r\n if (elTop < 0) {\r\n this.$node.scrollTop(nodeScrollTop + elTop);\r\n } else if (nodeHeight < elBottom) {\r\n this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight));\r\n }\r\n },\r\n bind: function() {\r\n var that = this, onSelectableClick;\r\n onSelectableClick = _.bind(this._onSelectableClick, this);\r\n this.$node.on(\"click.tt\", this.selectors.selectable, onSelectableClick);\r\n this.$node.on(\"mouseover\", this.selectors.selectable, function() {\r\n that.setCursor($(this));\r\n });\r\n this.$node.on(\"mouseleave\", function() {\r\n that._removeCursor();\r\n });\r\n _.each(this.datasets, function(dataset) {\r\n dataset.onSync(\"asyncRequested\", that._propagate, that).onSync(\"asyncCanceled\", that._propagate, that).onSync(\"asyncReceived\", that._propagate, that).onSync(\"rendered\", that._onRendered, that).onSync(\"cleared\", that._onCleared, that);\r\n });\r\n return this;\r\n },\r\n isOpen: function isOpen() {\r\n return this.$node.hasClass(this.classes.open);\r\n },\r\n open: function open() {\r\n this.$node.scrollTop(0);\r\n this.$node.addClass(this.classes.open);\r\n },\r\n close: function close() {\r\n this.$node.attr(\"aria-expanded\", false);\r\n this.$node.removeClass(this.classes.open);\r\n this._removeCursor();\r\n },\r\n setLanguageDirection: function setLanguageDirection(dir) {\r\n this.$node.attr(\"dir\", dir);\r\n },\r\n selectableRelativeToCursor: function selectableRelativeToCursor(delta) {\r\n var $selectables, $oldCursor, oldIndex, newIndex;\r\n $oldCursor = this.getActiveSelectable();\r\n $selectables = this._getSelectables();\r\n oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1;\r\n newIndex = oldIndex + delta;\r\n newIndex = (newIndex + 1) % ($selectables.length + 1) - 1;\r\n newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex;\r\n return newIndex === -1 ? null : $selectables.eq(newIndex);\r\n },\r\n setCursor: function setCursor($selectable) {\r\n this._removeCursor();\r\n if ($selectable = $selectable && $selectable.first()) {\r\n $selectable.addClass(this.classes.cursor);\r\n this._ensureVisible($selectable);\r\n }\r\n },\r\n getSelectableData: function getSelectableData($el) {\r\n return $el && $el.length ? Dataset.extractData($el) : null;\r\n },\r\n getActiveSelectable: function getActiveSelectable() {\r\n var $selectable = this._getSelectables().filter(this.selectors.cursor).first();\r\n return $selectable.length ? $selectable : null;\r\n },\r\n getTopSelectable: function getTopSelectable() {\r\n var $selectable = this._getSelectables().first();\r\n return $selectable.length ? $selectable : null;\r\n },\r\n update: function update(query) {\r\n var isValidUpdate = query !== this.query;\r\n if (isValidUpdate) {\r\n this.query = query;\r\n _.each(this.datasets, updateDataset);\r\n }\r\n return isValidUpdate;\r\n function updateDataset(dataset) {\r\n dataset.update(query);\r\n }\r\n },\r\n empty: function empty() {\r\n _.each(this.datasets, clearDataset);\r\n this.query = null;\r\n this.$node.addClass(this.classes.empty);\r\n function clearDataset(dataset) {\r\n dataset.clear();\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.$node.off(\".tt\");\r\n this.$node = $(\"<div>\");\r\n _.each(this.datasets, destroyDataset);\r\n function destroyDataset(dataset) {\r\n dataset.destroy();\r\n }\r\n }\r\n });\r\n return Menu;\r\n }();\r\n var Status = function() {\r\n \"use strict\";\r\n function Status(options) {\r\n this.$el = $(\"<span></span>\", {\r\n role: \"status\",\r\n \"aria-live\": \"polite\"\r\n }).css({\r\n position: \"absolute\",\r\n padding: \"0\",\r\n border: \"0\",\r\n height: \"1px\",\r\n width: \"1px\",\r\n \"margin-bottom\": \"-1px\",\r\n \"margin-right\": \"-1px\",\r\n overflow: \"hidden\",\r\n clip: \"rect(0 0 0 0)\",\r\n \"white-space\": \"nowrap\"\r\n });\r\n options.$input.after(this.$el);\r\n _.each(options.menu.datasets, _.bind(function(dataset) {\r\n if (dataset.onSync) {\r\n dataset.onSync(\"rendered\", _.bind(this.update, this));\r\n dataset.onSync(\"cleared\", _.bind(this.cleared, this));\r\n }\r\n }, this));\r\n }\r\n _.mixin(Status.prototype, {\r\n update: function update(event, suggestions) {\r\n var length = suggestions.length;\r\n var words;\r\n if (length === 1) {\r\n words = {\r\n result: \"result\",\r\n is: \"is\"\r\n };\r\n } else {\r\n words = {\r\n result: \"results\",\r\n is: \"are\"\r\n };\r\n }\r\n this.$el.text(length + \" \" + words.result + \" \" + words.is + \" available, use up and down arrow keys to navigate.\");\r\n },\r\n cleared: function() {\r\n this.$el.text(\"\");\r\n }\r\n });\r\n return Status;\r\n }();\r\n var DefaultMenu = function() {\r\n \"use strict\";\r\n var s = Menu.prototype;\r\n function DefaultMenu() {\r\n Menu.apply(this, [].slice.call(arguments, 0));\r\n }\r\n _.mixin(DefaultMenu.prototype, Menu.prototype, {\r\n open: function open() {\r\n !this._allDatasetsEmpty() && this._show();\r\n return s.open.apply(this, [].slice.call(arguments, 0));\r\n },\r\n close: function close() {\r\n this._hide();\r\n return s.close.apply(this, [].slice.call(arguments, 0));\r\n },\r\n _onRendered: function onRendered() {\r\n if (this._allDatasetsEmpty()) {\r\n this._hide();\r\n } else {\r\n this.isOpen() && this._show();\r\n }\r\n return s._onRendered.apply(this, [].slice.call(arguments, 0));\r\n },\r\n _onCleared: function onCleared() {\r\n if (this._allDatasetsEmpty()) {\r\n this._hide();\r\n } else {\r\n this.isOpen() && this._show();\r\n }\r\n return s._onCleared.apply(this, [].slice.call(arguments, 0));\r\n },\r\n setLanguageDirection: function setLanguageDirection(dir) {\r\n this.$node.css(dir === \"ltr\" ? this.css.ltr : this.css.rtl);\r\n return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0));\r\n },\r\n _hide: function hide() {\r\n this.$node.hide();\r\n },\r\n _show: function show() {\r\n this.$node.css(\"display\", \"block\");\r\n }\r\n });\r\n return DefaultMenu;\r\n }();\r\n var Typeahead = function() {\r\n \"use strict\";\r\n function Typeahead(o, www) {\r\n var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged;\r\n o = o || {};\r\n if (!o.input) {\r\n $.error(\"missing input\");\r\n }\r\n if (!o.menu) {\r\n $.error(\"missing menu\");\r\n }\r\n if (!o.eventBus) {\r\n $.error(\"missing event bus\");\r\n }\r\n www.mixin(this);\r\n this.eventBus = o.eventBus;\r\n this.minLength = _.isNumber(o.minLength) ? o.minLength : 1;\r\n this.input = o.input;\r\n this.menu = o.menu;\r\n this.enabled = true;\r\n this.autoselect = !!o.autoselect;\r\n this.active = false;\r\n this.input.hasFocus() && this.activate();\r\n this.dir = this.input.getLangDir();\r\n this._hacks();\r\n this.menu.bind().onSync(\"selectableClicked\", this._onSelectableClicked, this).onSync(\"asyncRequested\", this._onAsyncRequested, this).onSync(\"asyncCanceled\", this._onAsyncCanceled, this).onSync(\"asyncReceived\", this._onAsyncReceived, this).onSync(\"datasetRendered\", this._onDatasetRendered, this).onSync(\"datasetCleared\", this._onDatasetCleared, this);\r\n onFocused = c(this, \"activate\", \"open\", \"_onFocused\");\r\n onBlurred = c(this, \"deactivate\", \"_onBlurred\");\r\n onEnterKeyed = c(this, \"isActive\", \"isOpen\", \"_onEnterKeyed\");\r\n onTabKeyed = c(this, \"isActive\", \"isOpen\", \"_onTabKeyed\");\r\n onEscKeyed = c(this, \"isActive\", \"_onEscKeyed\");\r\n onUpKeyed = c(this, \"isActive\", \"open\", \"_onUpKeyed\");\r\n onDownKeyed = c(this, \"isActive\", \"open\", \"_onDownKeyed\");\r\n onLeftKeyed = c(this, \"isActive\", \"isOpen\", \"_onLeftKeyed\");\r\n onRightKeyed = c(this, \"isActive\", \"isOpen\", \"_onRightKeyed\");\r\n onQueryChanged = c(this, \"_openIfActive\", \"_onQueryChanged\");\r\n onWhitespaceChanged = c(this, \"_openIfActive\", \"_onWhitespaceChanged\");\r\n this.input.bind().onSync(\"focused\", onFocused, this).onSync(\"blurred\", onBlurred, this).onSync(\"enterKeyed\", onEnterKeyed, this).onSync(\"tabKeyed\", onTabKeyed, this).onSync(\"escKeyed\", onEscKeyed, this).onSync(\"upKeyed\", onUpKeyed, this).onSync(\"downKeyed\", onDownKeyed, this).onSync(\"leftKeyed\", onLeftKeyed, this).onSync(\"rightKeyed\", onRightKeyed, this).onSync(\"queryChanged\", onQueryChanged, this).onSync(\"whitespaceChanged\", onWhitespaceChanged, this).onSync(\"langDirChanged\", this._onLangDirChanged, this);\r\n }\r\n _.mixin(Typeahead.prototype, {\r\n _hacks: function hacks() {\r\n var $input, $menu;\r\n $input = this.input.$input || $(\"<div>\");\r\n $menu = this.menu.$node || $(\"<div>\");\r\n $input.on(\"blur.tt\", function($e) {\r\n var active, isActive, hasActive;\r\n active = document.activeElement;\r\n isActive = $menu.is(active);\r\n hasActive = $menu.has(active).length > 0;\r\n if (_.isMsie() && (isActive || hasActive)) {\r\n $e.preventDefault();\r\n $e.stopImmediatePropagation();\r\n _.defer(function() {\r\n $input.focus();\r\n });\r\n }\r\n });\r\n $menu.on(\"mousedown.tt\", function($e) {\r\n $e.preventDefault();\r\n });\r\n },\r\n _onSelectableClicked: function onSelectableClicked(type, $el) {\r\n this.select($el);\r\n },\r\n _onDatasetCleared: function onDatasetCleared() {\r\n this._updateHint();\r\n },\r\n _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) {\r\n this._updateHint();\r\n if (this.autoselect) {\r\n var cursorClass = this.selectors.cursor.substr(1);\r\n this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass);\r\n }\r\n this.eventBus.trigger(\"render\", suggestions, async, dataset);\r\n },\r\n _onAsyncRequested: function onAsyncRequested(type, dataset, query) {\r\n this.eventBus.trigger(\"asyncrequest\", query, dataset);\r\n },\r\n _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) {\r\n this.eventBus.trigger(\"asynccancel\", query, dataset);\r\n },\r\n _onAsyncReceived: function onAsyncReceived(type, dataset, query) {\r\n this.eventBus.trigger(\"asyncreceive\", query, dataset);\r\n },\r\n _onFocused: function onFocused() {\r\n this._minLengthMet() && this.menu.update(this.input.getQuery());\r\n },\r\n _onBlurred: function onBlurred() {\r\n if (this.input.hasQueryChangedSinceLastFocus()) {\r\n this.eventBus.trigger(\"change\", this.input.getQuery());\r\n }\r\n },\r\n _onEnterKeyed: function onEnterKeyed(type, $e) {\r\n var $selectable;\r\n if ($selectable = this.menu.getActiveSelectable()) {\r\n if (this.select($selectable)) {\r\n $e.preventDefault();\r\n $e.stopPropagation();\r\n }\r\n } else if (this.autoselect) {\r\n if (this.select(this.menu.getTopSelectable())) {\r\n $e.preventDefault();\r\n $e.stopPropagation();\r\n }\r\n }\r\n },\r\n _onTabKeyed: function onTabKeyed(type, $e) {\r\n var $selectable;\r\n if ($selectable = this.menu.getActiveSelectable()) {\r\n this.select($selectable) && $e.preventDefault();\r\n } else if ($selectable = this.menu.getTopSelectable()) {\r\n this.autocomplete($selectable) && $e.preventDefault();\r\n }\r\n },\r\n _onEscKeyed: function onEscKeyed() {\r\n this.close();\r\n },\r\n _onUpKeyed: function onUpKeyed() {\r\n this.moveCursor(-1);\r\n },\r\n _onDownKeyed: function onDownKeyed() {\r\n this.moveCursor(+1);\r\n },\r\n _onLeftKeyed: function onLeftKeyed() {\r\n if (this.dir === \"rtl\" && this.input.isCursorAtEnd()) {\r\n this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());\r\n }\r\n },\r\n _onRightKeyed: function onRightKeyed() {\r\n if (this.dir === \"ltr\" && this.input.isCursorAtEnd()) {\r\n this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());\r\n }\r\n },\r\n _onQueryChanged: function onQueryChanged(e, query) {\r\n this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty();\r\n },\r\n _onWhitespaceChanged: function onWhitespaceChanged() {\r\n this._updateHint();\r\n },\r\n _onLangDirChanged: function onLangDirChanged(e, dir) {\r\n if (this.dir !== dir) {\r\n this.dir = dir;\r\n this.menu.setLanguageDirection(dir);\r\n }\r\n },\r\n _openIfActive: function openIfActive() {\r\n this.isActive() && this.open();\r\n },\r\n _minLengthMet: function minLengthMet(query) {\r\n query = _.isString(query) ? query : this.input.getQuery() || \"\";\r\n return query.length >= this.minLength;\r\n },\r\n _updateHint: function updateHint() {\r\n var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match;\r\n $selectable = this.menu.getTopSelectable();\r\n data = this.menu.getSelectableData($selectable);\r\n val = this.input.getInputValue();\r\n if (data && !_.isBlankString(val) && !this.input.hasOverflow()) {\r\n query = Input.normalizeQuery(val);\r\n escapedQuery = _.escapeRegExChars(query);\r\n frontMatchRegEx = new RegExp(\"^(?:\" + escapedQuery + \")(.+$)\", \"i\");\r\n match = frontMatchRegEx.exec(data.val);\r\n match && this.input.setHint(val + match[1]);\r\n } else {\r\n this.input.clearHint();\r\n }\r\n },\r\n isEnabled: function isEnabled() {\r\n return this.enabled;\r\n },\r\n enable: function enable() {\r\n this.enabled = true;\r\n },\r\n disable: function disable() {\r\n this.enabled = false;\r\n },\r\n isActive: function isActive() {\r\n return this.active;\r\n },\r\n activate: function activate() {\r\n if (this.isActive()) {\r\n return true;\r\n } else if (!this.isEnabled() || this.eventBus.before(\"active\")) {\r\n return false;\r\n } else {\r\n this.active = true;\r\n this.eventBus.trigger(\"active\");\r\n return true;\r\n }\r\n },\r\n deactivate: function deactivate() {\r\n if (!this.isActive()) {\r\n return true;\r\n } else if (this.eventBus.before(\"idle\")) {\r\n return false;\r\n } else {\r\n this.active = false;\r\n this.close();\r\n this.eventBus.trigger(\"idle\");\r\n return true;\r\n }\r\n },\r\n isOpen: function isOpen() {\r\n return this.menu.isOpen();\r\n },\r\n open: function open() {\r\n if (!this.isOpen() && !this.eventBus.before(\"open\")) {\r\n this.menu.open();\r\n this._updateHint();\r\n this.eventBus.trigger(\"open\");\r\n }\r\n return this.isOpen();\r\n },\r\n close: function close() {\r\n if (this.isOpen() && !this.eventBus.before(\"close\")) {\r\n this.menu.close();\r\n this.input.clearHint();\r\n this.input.resetInputValue();\r\n this.eventBus.trigger(\"close\");\r\n }\r\n return !this.isOpen();\r\n },\r\n setVal: function setVal(val) {\r\n this.input.setQuery(_.toStr(val));\r\n },\r\n getVal: function getVal() {\r\n return this.input.getQuery();\r\n },\r\n select: function select($selectable) {\r\n var data = this.menu.getSelectableData($selectable);\r\n if (data && !this.eventBus.before(\"select\", data.obj, data.dataset)) {\r\n this.input.setQuery(data.val, true);\r\n this.eventBus.trigger(\"select\", data.obj, data.dataset);\r\n this.close();\r\n return true;\r\n }\r\n return false;\r\n },\r\n autocomplete: function autocomplete($selectable) {\r\n var query, data, isValid;\r\n query = this.input.getQuery();\r\n data = this.menu.getSelectableData($selectable);\r\n isValid = data && query !== data.val;\r\n if (isValid && !this.eventBus.before(\"autocomplete\", data.obj, data.dataset)) {\r\n this.input.setQuery(data.val);\r\n this.eventBus.trigger(\"autocomplete\", data.obj, data.dataset);\r\n return true;\r\n }\r\n return false;\r\n },\r\n moveCursor: function moveCursor(delta) {\r\n var query, $candidate, data, suggestion, datasetName, cancelMove, id;\r\n query = this.input.getQuery();\r\n $candidate = this.menu.selectableRelativeToCursor(delta);\r\n data = this.menu.getSelectableData($candidate);\r\n suggestion = data ? data.obj : null;\r\n datasetName = data ? data.dataset : null;\r\n id = $candidate ? $candidate.attr(\"id\") : null;\r\n this.input.trigger(\"cursorchange\", id);\r\n cancelMove = this._minLengthMet() && this.menu.update(query);\r\n if (!cancelMove && !this.eventBus.before(\"cursorchange\", suggestion, datasetName)) {\r\n this.menu.setCursor($candidate);\r\n if (data) {\r\n this.input.setInputValue(data.val);\r\n } else {\r\n this.input.resetInputValue();\r\n this._updateHint();\r\n }\r\n this.eventBus.trigger(\"cursorchange\", suggestion, datasetName);\r\n return true;\r\n }\r\n return false;\r\n },\r\n destroy: function destroy() {\r\n this.input.destroy();\r\n this.menu.destroy();\r\n }\r\n });\r\n return Typeahead;\r\n function c(ctx) {\r\n var methods = [].slice.call(arguments, 1);\r\n return function() {\r\n var args = [].slice.call(arguments);\r\n _.each(methods, function(method) {\r\n return ctx[method].apply(ctx, args);\r\n });\r\n };\r\n }\r\n }();\r\n (function() {\r\n \"use strict\";\r\n var old, keys, methods;\r\n old = $.fn.typeahead;\r\n keys = {\r\n www: \"tt-www\",\r\n attrs: \"tt-attrs\",\r\n typeahead: \"tt-typeahead\"\r\n };\r\n methods = {\r\n initialize: function initialize(o, datasets) {\r\n var www;\r\n datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1);\r\n o = o || {};\r\n www = WWW(o.classNames);\r\n return this.each(attach);\r\n function attach() {\r\n var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor;\r\n _.each(datasets, function(d) {\r\n d.highlight = !!o.highlight;\r\n });\r\n $input = $(this);\r\n $wrapper = $(www.html.wrapper);\r\n $hint = $elOrNull(o.hint);\r\n $menu = $elOrNull(o.menu);\r\n defaultHint = o.hint !== false && !$hint;\r\n defaultMenu = o.menu !== false && !$menu;\r\n defaultHint && ($hint = buildHintFromInput($input, www));\r\n defaultMenu && ($menu = $(www.html.menu).css(www.css.menu));\r\n $hint && $hint.val(\"\");\r\n $input = prepInput($input, www);\r\n if (defaultHint || defaultMenu) {\r\n $wrapper.css(www.css.wrapper);\r\n $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint);\r\n $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null);\r\n }\r\n MenuConstructor = defaultMenu ? DefaultMenu : Menu;\r\n eventBus = new EventBus({\r\n el: $input\r\n });\r\n input = new Input({\r\n hint: $hint,\r\n input: $input\r\n }, www);\r\n menu = new MenuConstructor({\r\n node: $menu,\r\n datasets: datasets\r\n }, www);\r\n status = new Status({\r\n $input: $input,\r\n menu: menu\r\n });\r\n typeahead = new Typeahead({\r\n input: input,\r\n menu: menu,\r\n eventBus: eventBus,\r\n minLength: o.minLength,\r\n autoselect: o.autoselect\r\n }, www);\r\n $input.data(keys.www, www);\r\n $input.data(keys.typeahead, typeahead);\r\n }\r\n },\r\n isEnabled: function isEnabled() {\r\n var enabled;\r\n ttEach(this.first(), function(t) {\r\n enabled = t.isEnabled();\r\n });\r\n return enabled;\r\n },\r\n enable: function enable() {\r\n ttEach(this, function(t) {\r\n t.enable();\r\n });\r\n return this;\r\n },\r\n disable: function disable() {\r\n ttEach(this, function(t) {\r\n t.disable();\r\n });\r\n return this;\r\n },\r\n isActive: function isActive() {\r\n var active;\r\n ttEach(this.first(), function(t) {\r\n active = t.isActive();\r\n });\r\n return active;\r\n },\r\n activate: function activate() {\r\n ttEach(this, function(t) {\r\n t.activate();\r\n });\r\n return this;\r\n },\r\n deactivate: function deactivate() {\r\n ttEach(this, function(t) {\r\n t.deactivate();\r\n });\r\n return this;\r\n },\r\n isOpen: function isOpen() {\r\n var open;\r\n ttEach(this.first(), function(t) {\r\n open = t.isOpen();\r\n });\r\n return open;\r\n },\r\n open: function open() {\r\n ttEach(this, function(t) {\r\n t.open();\r\n });\r\n return this;\r\n },\r\n close: function close() {\r\n ttEach(this, function(t) {\r\n t.close();\r\n });\r\n return this;\r\n },\r\n select: function select(el) {\r\n var success = false, $el = $(el);\r\n ttEach(this.first(), function(t) {\r\n success = t.select($el);\r\n });\r\n return success;\r\n },\r\n autocomplete: function autocomplete(el) {\r\n var success = false, $el = $(el);\r\n ttEach(this.first(), function(t) {\r\n success = t.autocomplete($el);\r\n });\r\n return success;\r\n },\r\n moveCursor: function moveCursoe(delta) {\r\n var success = false;\r\n ttEach(this.first(), function(t) {\r\n success = t.moveCursor(delta);\r\n });\r\n return success;\r\n },\r\n val: function val(newVal) {\r\n var query;\r\n if (!arguments.length) {\r\n ttEach(this.first(), function(t) {\r\n query = t.getVal();\r\n });\r\n return query;\r\n } else {\r\n ttEach(this, function(t) {\r\n t.setVal(_.toStr(newVal));\r\n });\r\n return this;\r\n }\r\n },\r\n destroy: function destroy() {\r\n ttEach(this, function(typeahead, $input) {\r\n revert($input);\r\n typeahead.destroy();\r\n });\r\n return this;\r\n }\r\n };\r\n $.fn.typeahead = function(method) {\r\n if (methods[method]) {\r\n return methods[method].apply(this, [].slice.call(arguments, 1));\r\n } else {\r\n return methods.initialize.apply(this, arguments);\r\n }\r\n };\r\n $.fn.typeahead.noConflict = function noConflict() {\r\n $.fn.typeahead = old;\r\n return this;\r\n };\r\n function ttEach($els, fn) {\r\n $els.each(function() {\r\n var $input = $(this), typeahead;\r\n (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input);\r\n });\r\n }\r\n function buildHintFromInput($input, www) {\r\n return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({\r\n readonly: true,\r\n required: false\r\n }).removeAttr(\"id name placeholder\").removeClass(\"required\").attr({\r\n spellcheck: \"false\",\r\n tabindex: -1\r\n });\r\n }\r\n function prepInput($input, www) {\r\n $input.data(keys.attrs, {\r\n dir: $input.attr(\"dir\"),\r\n autocomplete: $input.attr(\"autocomplete\"),\r\n spellcheck: $input.attr(\"spellcheck\"),\r\n style: $input.attr(\"style\")\r\n });\r\n $input.addClass(www.classes.input).attr({\r\n spellcheck: false\r\n });\r\n try {\r\n !$input.attr(\"dir\") && $input.attr(\"dir\", \"auto\");\r\n } catch (e) {}\r\n return $input;\r\n }\r\n function getBackgroundStyles($el) {\r\n return {\r\n backgroundAttachment: $el.css(\"background-attachment\"),\r\n backgroundClip: $el.css(\"background-clip\"),\r\n backgroundColor: $el.css(\"background-color\"),\r\n backgroundImage: $el.css(\"background-image\"),\r\n backgroundOrigin: $el.css(\"background-origin\"),\r\n backgroundPosition: $el.css(\"background-position\"),\r\n backgroundRepeat: $el.css(\"background-repeat\"),\r\n backgroundSize: $el.css(\"background-size\")\r\n };\r\n }\r\n function revert($input) {\r\n var www, $wrapper;\r\n www = $input.data(keys.www);\r\n $wrapper = $input.parent().filter(www.selectors.wrapper);\r\n _.each($input.data(keys.attrs), function(val, key) {\r\n _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val);\r\n });\r\n $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input);\r\n if ($wrapper.length) {\r\n $input.detach().insertAfter($wrapper);\r\n $wrapper.remove();\r\n }\r\n }\r\n function $elOrNull(obj) {\r\n var isValid, $el;\r\n isValid = _.isJQuery(obj) || _.isElement(obj);\r\n $el = isValid ? $(obj).first() : [];\r\n return $el.length ? $el : null;\r\n }\r\n })();\r\n});\r\n"],"names":["module","exports","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","a","this","define","c","Bloodhound","b","isMsie","test","navigator","userAgent","match","isBlankString","escapeRegExChars","replace","isString","isNumber","isArray","isFunction","isObject","isPlainObject","isUndefined","isElement","nodeType","isJQuery","toStr","bind","proxy","each","map","filter","grep","every","d","e","call","some","mixin","extend","identity","clone","getIdGenerator","templatify","String","defer","setTimeout","debounce","f","g","h","i","arguments","apply","clearTimeout","throttle","Date","j","stringify","JSON","guid","Math","random","toString","substr","noop","split","push","slice","concat","nonword","whitespace","ngram","maxSize","reset","set","get","head","tail","val","prev","next","prototype","list","size","remove","hash","moveToFront","add","prefix","join","ttlKey","keyMatcher","RegExp","ls","_noop","getTime","parseJSON","window","localStorage","setItem","removeItem","_prefix","_ttlKey","clear","isExpired","_safeSet","name","getItem","length","maxPendingRequests","cancelled","lastReq","_send","transport","_get","limiter","_cache","cache","setMaxPendingRequests","resetCache","_fingerprint","url","type","param","data","onDeckRequestArgs","done","fail","always","cancel","SearchIndex","datumTokenizer","queryTokenizer","error","identify","matchAnyQueryToken","toLowerCase","bootstrap","datums","trie","shift","search","sort","all","serialize","ttl","prepare","transform","thumbprint","storage","cacheKey","protocol","_settings","dataType","store","location","fromCache","fromNetwork","indexResponse","cancelLastRequest","k","ajax","wildcard","rateLimitBy","rateLimitWait","encodeURIComponent","Deferred","resolve","reject","initialize","sufficient","indexRemote","sorter","local","prefetch","remote","l","index","noConflict","tokenizers","__ttAdapter","_loadPrefetch","promise","_initialize","initPromise","clearPrefetchCache","clearRemoteCache","ttAdapter","a0","$","_","str","s","collection","cb","result","x","counter","fn","func","wait","immediate","timeout","later","callNow","context","args","previous","now","remaining","_p8","p","WWW","defaultClassNames","wrapper","input","hint","menu","dataset","suggestion","selectable","empty","open","cursor","highlight","o","www","classes","css","position","display","top","left","borderColor","boxShadow","opacity","verticalAlign","backgroundColor","inputWithNoHint","zIndex","ltr","right","rtl","backgroundImage","html","selectors","buildSelectors","v","EventBus","deprecationMap","el","$el","render","cursorchange","select","autocomplete","_trigger","$e","Event","trigger","before","isDefaultPrevented","deprecatedType","EventEmitter","splitter","nextTick","setImmediate","onSync","types","on","onAsync","off","_callbacks","callbacks","syncFlush","asyncFlush","getFlush","sync","async","method","bindContext","len","doc","defaults","node","pattern","tagName","className","wordsOnly","caseSensitive","diacriticInsensitive","accented","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","regex","patterns","regexStr","escapedPatterns","escapedWord","accent_replacer","getRegex","traverse","hightlightTextNode","childNode","childNodes","textNode","patternNode","wrapperNode","exec","createElement","splitText","appendChild","cloneNode","parentNode","replaceChild","chr","toUpperCase","document","Input","specialKeyCodeMap","$input","$hint","attr","query","queryWhenFocused","hasFocus","$overflowHelper","visibility","whiteSpace","fontFamily","fontSize","fontStyle","fontVariant","fontWeight","wordSpacing","letterSpacing","textIndent","textRendering","textTransform","insertAfter","_checkLanguageDirection","setHint","getHint","clearHint","clearHintIfInvalid","_updateDescendent","normalizeQuery","_onBlur","resetInputValue","_onFocus","_onKeydown","keyName","which","keyCode","_managePreventDefault","_shouldTrigger","_onInput","_setQuery","getInputValue","preventDefault","withModifier","dir","silent","areEquivalent","hasDifferentWhitespace","event","id","onBlur","onFocus","onKeydown","onInput","that","focus","blur","getLangDir","getQuery","setQuery","setInputValue","hasQueryChangedSinceLastFocus","valIsPrefixOfHint","indexOf","hasOverflow","is","constraint","width","text","isCursorAtEnd","valueLength","selectionStart","range","selection","createRange","moveStart","destroy","altKey","ctrlKey","metaKey","shiftKey","Dataset","keys","nameGenerator","templates","notFound","source","limit","displayFn","getDisplayFn","displayKey","pending","header","footer","suggestionTemplate","getTemplates","_resetLastSuggestion","addClass","extractData","_overwrite","suggestions","_renderSuggestions","_renderPending","_renderNotFound","_empty","_append","$lastSuggestion","_appendSuggestions","$fragment","_getSuggestionsFragment","children","last","prepend","_getHeader","append","_getFooter","after","template","fragment","createDocumentFragment","_injectQuery","_query","update","canceled","syncCalled","rendered","idx","abs","isEmpty","Menu","$node","datasets","oDataset","find","first","appendTo","_onSelectableClick","currentTarget","_onRendered","toggleClass","_allDatasetsEmpty","_onCleared","_propagate","_getSelectables","_removeCursor","$selectable","getActiveSelectable","removeClass","_ensureVisible","elTop","elBottom","nodeScrollTop","nodeHeight","outerHeight","scrollTop","height","parseInt","onSelectableClick","setCursor","isOpen","hasClass","close","setLanguageDirection","selectableRelativeToCursor","delta","$selectables","$oldCursor","newIndex","eq","getSelectableData","getTopSelectable","isValidUpdate","Status","options","role","padding","border","overflow","clip","cleared","words","DefaultMenu","_show","_hide","hide","Typeahead","onFocused","onBlurred","onEnterKeyed","onTabKeyed","onEscKeyed","onUpKeyed","onDownKeyed","onLeftKeyed","onRightKeyed","onQueryChanged","onWhitespaceChanged","eventBus","minLength","enabled","autoselect","active","activate","_hacks","_onSelectableClicked","_onAsyncRequested","_onAsyncCanceled","_onAsyncReceived","_onDatasetRendered","_onDatasetCleared","_onLangDirChanged","$menu","isActive","hasActive","activeElement","has","stopImmediatePropagation","_updateHint","cursorClass","_onFocused","_minLengthMet","_onBlurred","_onEnterKeyed","stopPropagation","_onTabKeyed","_onEscKeyed","_onUpKeyed","moveCursor","_onDownKeyed","_onLeftKeyed","_onRightKeyed","_onQueryChanged","_onWhitespaceChanged","_openIfActive","escapedQuery","isEnabled","enable","disable","deactivate","setVal","getVal","$candidate","datasetName","ctx","methods","old","ttEach","$els","typeahead","buildHintFromInput","removeData","backgroundAttachment","backgroundClip","backgroundOrigin","backgroundPosition","backgroundRepeat","backgroundSize","prop","readonly","required","removeAttr","spellcheck","tabindex","prepInput","attrs","style","$elOrNull","classNames","attach","$wrapper","defaultHint","defaultMenu","MenuConstructor","wrap","parent","t","success","newVal","detach","revert"],"sourceRoot":""}