!function(a){var b;window.UIkit&&(b=a(UIkit)),"function"==typeof define&&define.amd&&define("uikit-autocomplete",["uikit"],function(){return b||a(UIkit)})}(function(a){"use strict";var b;return a.component("autocomplete",{defaults:{minLength:3,param:"search",method:"post",delay:300,loadingClass:"uk-loading",flipDropdown:!1,skipClass:"uk-skip",hoverClass:"uk-active",source:null,renderer:null,template:'
'},visible:!1,value:null,selected:null,boot:function(){a.$html.on("focus.autocomplete.uikit","[data-uk-autocomplete]",function(b){var c=a.$(this);c.data("autocomplete")||a.autocomplete(c,a.Utils.options(c.attr("data-uk-autocomplete")))}),a.$html.on("click.autocomplete.uikit",function(a){b&&a.target!=b.input[0]&&b.hide()})},init:function(){var b=this,c=!1,d=a.Utils.debounce(function(a){return c?c=!1:void b.handle()},this.options.delay);this.dropdown=this.find(".uk-dropdown"),this.template=this.find('script[type="text/autocomplete"]').html(),this.template=a.Utils.template(this.template||this.options.template),this.input=this.find("input:first").attr("autocomplete","off"),this.dropdown.length||(this.dropdown=a.$('').appendTo(this.element)),this.options.flipDropdown&&this.dropdown.addClass("uk-dropdown-flip"),this.dropdown.attr("aria-expanded","false"),this.input.on({keydown:function(a){if(a&&a.which&&!a.shiftKey)switch(a.which){case 13:c=!0,b.selected&&(a.preventDefault(),b.select());break;case 38:a.preventDefault(),b.pick("prev",!0);break;case 40:a.preventDefault(),b.pick("next",!0);break;case 27:case 9:b.hide()}},keyup:d}),this.dropdown.on("click",".uk-autocomplete-results > *",function(){b.select()}),this.dropdown.on("mouseover",".uk-autocomplete-results > *",function(){b.pick(a.$(this))}),this.triggercomplete=d},handle:function(){var a=this,b=this.value;return this.value=this.input.val(),this.value.lengthj||h<0)&&d.dropdown.scrollTop(i+h)}},select:function(){if(this.selected){var a=this.selected.data();this.trigger("selectitem.uk.autocomplete",[a,this]),a.value&&this.input.val(a.value).trigger("change"),this.hide()}},show:function(){if(!this.visible)return this.visible=!0,this.element.addClass("uk-open"),b&&b!==this&&b.hide(),b=this,this.dropdown.attr("aria-expanded","true"),this},hide:function(){if(this.visible)return this.visible=!1,this.element.removeClass("uk-open"),b===this&&(b=!1),this.dropdown.attr("aria-expanded","false"),this},request:function(){var b=this,c=function(a){a&&b.render(a),b.element.removeClass(b.options.loadingClass)};if(this.element.addClass(this.options.loadingClass),this.options.source){var d=this.options.source;switch(typeof this.options.source){case"function":this.options.source.apply(this,[c]);break;case"object":if(d.length){var e=[];d.forEach(function(a){a.value&&a.value.toLowerCase().indexOf(b.value.toLowerCase())!=-1&&e.push(a)}),c(e)}break;case"string":var f={};f[this.options.param]=this.value,a.$.ajax({url:this.options.source,data:f,type:this.options.method,dataType:"json"}).done(function(a){c(a||[])});break;default:c(null)}}else this.element.removeClass(b.options.loadingClass)},render:function(a){return this.dropdown.empty(),this.selected=!1,this.options.renderer?this.options.renderer.apply(this,[a]):a&&a.length&&(this.dropdown.append(this.template({items:a})),this.show(),this.trigger("show.uk.autocomplete")),this}}),a.autocomplete});