-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathzepto.autocomplete.min.js
More file actions
2 lines (2 loc) · 3.27 KB
/
zepto.autocomplete.min.js
File metadata and controls
2 lines (2 loc) · 3.27 KB
1
2
!function(t){"use strict";var a={init:function(a){function o(){var o,n,e;e=t("<div>").css("display","none"),a.position&&(o={left:u.offset().left,top:u.offset().top+u.height()},e.css("position","relative").css("top",o.top).css("left",o.left).css("zIndex",1e3)),e.addClass("ac-options").addClass(a.extraClass),u.attr("data-ac","true"),e.on("mousedown.ac","div",r),n=t(a.appendTo?a.appendTo:"body"),n.append(e),a.data=a.sort(a.data),u[0]._autoCompleteData={settings:a,$optionsContainerDiv:e}}function n(){var t=u[0]._autoCompleteData.$optionsContainerDiv;t.show(),u.trigger("opened")}function e(){var t=u[0]._autoCompleteData.$optionsContainerDiv;t.hide(),u.trigger("closed")}function i(){var t=u[0]._autoCompleteData.settings;t.onBlur(e)}function r(a,o){var n,e,i=u[0]._autoCompleteData.settings;o=o||t(a.target).closest(".ac-opt").attr("data-opt-idx"),e=i.data[o],n=i.onOptionSelect(e),void 0!==n&&u.val(n),c(),setTimeout(function(){u.focus()})}function s(t){p&&p.removeClass("ac-opt-curr"),p=t,p.addClass("ac-opt-curr")}function c(){var a,o,i,r=t(),s=u.val(),c=u[0]._autoCompleteData.$optionsContainerDiv,d=u[0]._autoCompleteData.settings;return c.empty(),s.length<d.minLength?void e():(o=function(o){d.data=d.sort(o);for(var p=0;p<o.length&&r.length<=d.maxCount;p++)a=o[p],(d.dataMethod instanceof Function||d.matcher(s,a))&&(i=t("<div></div>").addClass("ac-opt"),i.attr("data-opt-idx",p),i.append(d.renderOption(a)),r=r.add(i));r.length>0?(c.append(r),n()):e()},void(d.dataMethod instanceof Function?d.dataMethod(s,o):o(d.data)))}function d(t){var a,o,n=u[0]._autoCompleteData.$optionsContainerDiv;switch(t.keyCode){case 38:p?a=p.prev():(s(n.children().eq(0)),a=p),a&&a.hasClass("ac-opt")&&s(a);break;case 40:p?o=p.next():(s(n.children().eq(0)),o=p),o&&o.hasClass("ac-opt")&&s(o);break;case 13:p&&"none"!==n.css("display")&&r(t,p.attr("data-opt-idx"));break;default:c()}}var p,u=this,l={data:[],dataMethod:void 0,minLength:1,maxCount:1/0,extraClass:"",appendTo:void 0,position:!0,sort:function(t){return this.dataMethod instanceof Function?t:t.sort()},matcher:function(t,a){return-1!==a.toString().toLowerCase().indexOf(t.toLowerCase())},lookUp:function(a,o){var n=[];return t.each(a,function(t,a){n.push(a.toString())}),n.indexOf(o.toString())},renderOption:function(t){return t.toString()},onOptionSelect:function(t){return t.toString()},onBlur:function(t){t()}},f=u[0]._autoCompleteData;return a=t.extend(l,a),a.position=a.appendTo?!1:a.position,f?void 0:(o(),c(),u.each(function(){u.bind("focus.ac",c).bind("keyup.ac",d).bind("blur.ac",i)}))},destroy:function(){return this.each(function(){var a=t(this);a.unbind(".ac"),a[0]._autoCompleteData.$optionsContainerDiv.remove(),delete a[0]._autoCompleteData})},add:function(a){function o(a){var o=[];return t.each(a,function(a,n){-1===t.inArray(n,o)&&o.push(n)}),o}var n=this,e=n[0]._autoCompleteData.settings;a=a instanceof Array?a:[a],a=o(a.concat(e.data)),e.data=e.sort(a)},remove:function(a){var o,n=this,e=n[0]._autoCompleteData.settings;a=a instanceof Array?a:[a],t.each(a,function(t,a){o=e.lookUp(e.data,a),-1!==o&&e.data.splice(o,1)})}};t.fn.autocomplete=function(o){return a[o]?a[o].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof o&&o?void t.error(o+": not-supported"):a.init.apply(this,arguments)}}(Zepto||jQuery);
//# sourceMappingURL=zepto.autocomplete.min.js.map