REAPI/public/static/plugs/jquery/autocompleter.min.js

9 lines
11 KiB
JavaScript
Raw Normal View History

2024-09-29 15:43:18 +08:00
/**
* jquery-autocompleter v0.3.0 - 2018-03-08
* Easy customisable and with localStorage cache support.
* http://github.com/ArtemFitiskin/jquery-autocompleter
*
* @license (c) 2018 Artem Fitiskin MIT Licensed
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t():"function"==typeof define&&define.amd?define(t):t()}(0,function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(t,o){var a=0,l=[9,13,17,19,20,27,33,34,35,36,37,39,44,92,113,114,115,118,119,120,122,123,144,145],n=["source","empty","limit","cache","cacheExpires","focusOpen","selectFirst","changeWhenSelect","highlightMatches","ignoredKeyCode","customLabel","customValue","template","offset","combine","callback","minLength","delay"],r=o.navigator.userAgent||o.navigator.vendor||o.opera,c=/Firefox/i.test(r),u=/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(r),i=c&&u,s=null,p=null,m="autocompleterCache",d=function(){var e=void 0!==o.localStorage;if(e)try{localStorage.setItem("autocompleter","autocompleter"),localStorage.removeItem("autocompleter")}catch(t){e=!1}return e}(),f={source:null,asLocal:!1,empty:!0,limit:10,minLength:0,delay:0,customClass:[],cache:!0,cacheExpires:86400,focusOpen:!0,hint:!1,selectFirst:!1,changeWhenSelect:!0,highlightMatches:!1,ignoredKeyCode:[],customLabel:!1,customValue:!1,template:!1,offset:!1,combine:null,callback:t.noop},h={defaults:function(o){return f=t.extend(f,o||{}),"object"!==e(this)||t(this)},option:function(e){return t(this).each(function(o,a){var l=t(a).next(".autocompleter").data("autocompleter");for(var r in e)-1!==t.inArray(r,n)&&(l[r]=e[r])})},open:function(){return t(this).each(function(e,o){var a=t(o).next(".autocompleter").data("autocompleter");a&&S(null,a)})},close:function(){return t(this).each(function(e,o){var a=t(o).next(".autocompleter").data("autocompleter");a&&k(null,a)})},clearCache:function(){O()},destroy:function(){return t(this).each(function(e,o){var a=t(o).next(".autocompleter").data("autocompleter");a&&(a.jqxhr&&a.jqxhr.abort(),a.$autocompleter.hasClass("open")&&a.$autocompleter.find(".autocompleter-selected").trigger("click.autocompleter"),a.originalAutocomplete?a.$node.attr("autocomplete",a.originalAutocomplete):a.$node.removeAttr("autocomplete"),a.$node.off(".autocompleter").removeClass("autocompleter-node"),a.$autocompleter.off(".autocompleter").remove())})}};function v(e,o){if(!e.hasClass("autocompleter-node")){"string"!=typeof(o=t.extend({},o,e.data("autocompleter-options"))).source||".json"!==o.source.slice(-5)&&!0!==o.asLocal||t.ajax({url:o.source,type:"GET",dataType:"json",async:!1}).done(function(e){o.source=e});var l='<div class="autocompleter '+o.customClass.join(" ")+'" id="autocompleter-'+(a+1)+'">';o.hint&&(l+='<div class="autocompleter-hint"></div>'),l+='<ul class="autocompleter-list"></ul>',l+="</div>",e.addClass("autocompleter-node").after(l);var n=e.next(".autocompleter").eq(0),r=e.attr("autocomplete");e.attr("autocomplete","off");var c=t.extend({$node:e,$autocompleter:n,$selected:null,$list:null,index:-1,hintText:!1,source:!1,jqxhr:!1,response:null,focused:!1,query:"",originalAutocomplete:r,guid:a++},o);c.$autocompleter.on("mousedown.autocompleter",".autocompleter-item",c,E).data("autocompleter",c),c.$node.on("keyup.autocompleter",c,x).on("keydown.autocompleter",c,C).on("focus.autocompleter",c,w).on("blur.autocompleter",c,q).on("mousedown.autocompleter",c,j)}}function y(e){clearTimeout(p),e.query=t.trim(e.$node.val()),!e.empty&&0===e.query.length||e.minLength&&e.query.length<e.minLength?g(e):e.delay?p=setTimeout(function(){$(e)},e.delay):$(e)}function $(o){if("object"===e(o.source)){g(o);var a=function(e,t,o){var a=[];if(e=e.toUpperCase(),t.length)for(var l=0;l<2;l++)for(var n in t)if(a.length<o.limit){var r=o.customLabel&&t[n][o.customLabel]?t[n][o.customLabel]:t[n].label;switch(l){case 0:0===r.toUpperCase().search(e)&&(a.push(t[n]),delete t[n]);break;case 1:-1!==r.toUpperCase().search(e)&&(a.push(t[n]),delete t[n])}}return a}(o.query,function(t){var o;if(null===t||"object"!==(void 0===t?"undefined":e(t)))return t;for(var a in o=t.constructor(),t)t.hasOwnProperty(a)&&(o[a]=t[a]);return o}(o.so