/** 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));