Typeahead.js input, based on [Twitter Typeahead](twitter.github.io/typeahead.js).

It is mainly replacement of typeahead in Bootstrap 3.

@class typeaheadjs @extends text @since 1.5.0 @final @example <a href=“#” id=“country” data-type=“typeaheadjs” data-pk=“1” data-url=“/post” data-title=“Input country”></a> <script> $(function(){

$('#country').editable({
    value: 'ru',
    typeahead: {
        name: 'country',
        local: [
            {value: 'ru', tokens: ['Russia']}, 
            {value: 'gb', tokens: ['Great Britain']}, 
            {value: 'us', tokens: ['United States']}
        ],
        template: function(item) {
            return item.tokens[0] + ' (' + item.value + ')'; 
        } 
    }
});

}); </script>

(function ($) {

"use strict";

var Constructor = function (options) {
    this.init('typeaheadjs', options, Constructor.defaults);
};

$.fn.editableutils.inherit(Constructor, $.fn.editabletypes.text);

$.extend(Constructor.prototype, {
    render: function() {
        this.renderClear();
        this.setClass();
        this.setAttr('placeholder');
        this.$input.typeahead(this.options.typeahead);

        // copy `input-sm | input-lg` classes to placeholder input
        if($.fn.editableform.engine === 'bs3') {
            if(this.$input.hasClass('input-sm')) {
                this.$input.siblings('input.tt-hint').addClass('input-sm');
            }
            if(this.$input.hasClass('input-lg')) {
                this.$input.siblings('input.tt-hint').addClass('input-lg');
            }
        }
    }
});      

Constructor.defaults = $.extend({}, $.fn.editabletypes.list.defaults, {

    @property tpl 
    @default <input type="text">

    tpl:'<input type="text">',
    /**
    Configuration of typeahead itself. 
    [Full list of options](https://github.com/twitter/typeahead.js#dataset).

    @property typeahead 
    @type object
    @default null
      /
    typeahead: null,
    /**
    Whether to show `clear` button 

    @property clear 
    @type boolean
    @default true        
      /
    clear: true
});

$.fn.editabletypes.typeaheadjs = Constructor;

}(window.jQuery));