PageSourceSearch

https://avrmachinery.com/modules/custom/aware/libraries/magicsearch/js/jquery.magicsearch.min.js?v=1.1

js avrmachinery.com collected 2026-10-09 16:56:33 UTC 19,389 bytes, 1 lines download raw bytes

1"use strict";function _toConsumableArray(t){if(Array.isArray(t)){for(var i=0,e=Array(t.length);i<t.length;i++)e[i]=t[i];return e}return Array.from(t)}!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t("undefined"!=typeof jQuery?jQuery:window.Zepto)}(function(t){var i="%",e=57,s=3,o=500,a=100,r=200,n=200,d=24,h={BACKSPACE:8,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40},l={wrapper:"magicsearch-wrapper",box:"magicsearch-box",arrow:"magicsearch-arrow",loading:"magicsearch-loading",hidden:"magicsearch-hidden",items:"multi-items",item:"multi-item",close:"multi-item-close"},p=function(i){return"string"===t.type(i)},c=function(t,e){var s=t.match(new RegExp("\\"+i+"[^\\"+i+"]+\\"+i,"g"));if(!s)return t;for(var o=0;o<s.length;o++)s[o]=s[o].replace(new RegExp("\\"+i,"g"),"");for(var a=0;a<s.length;a++)t=t.replace(i+s[a]+i,e[s[a]]?e[s[a]]:"error");return t},u=function(t){var i=t.lastIndexOf("px");return i<0?Number(t):Number(t.substring(0,i))},f=function(i,e){return t.isNumeric(i)?(i=Math.ceil(Number(i)),i<=0&&(i=m.defaults[e])):i=m.defaults[e],i},m=function(i,e){this.element=i,this.$element=t(i),this.options=e};m.defaults={dataSource:[],type:"",ajaxOptions:{},id:"",hidden:!1,fields:"",format:"",inputFormat:"",maxShow:5,isClear:!0,showSelected:!0,dropdownBtn:!1,dropdownMaxItem:8,multiple:!1,maxItem:!0,showMultiSkin:!0,multiStyle:{},multiField:"",focusShow:!1,noResult:"",skin:"",disableRule:function(t){return!1},success:function(t,i){return!0},afterDelete:function(t,i){return!0}},m.prototype={init:function(){var i=this;window.MagicSearch.index+=1;var a=this.$element;if(this.options=t.extend({},m.defaults,this.options),this.props={isFirstGetDataSource:!0,style:t.extend({},this.element.style),objDataSource:{},multiStyle:{space:s,width:e}},!this.$element.is("input:text"))return console.error("magicsearch: Can not bind magicsearch to other elements except input which type is text."),!1;if(!p(this.options.id)||""===this.options.id)return console.error("magicsearch: The option id must be a string which is not empty."),!1;this.options.multiple?this.options.isClear=!0:this.options.isClear||(this.options.hidden=!1),this.props.styles={borderTopWidth:u(a.css("border-top-width")),borderRightWidth:u(a.css("border-right-width")),borderBottomWidth:u(a.css("border-bottom-width")),borderLeftWidth:u(a.css("border-left-width")),paddingTop:u(a.css("padding-top")),paddingRight:u(a.css("padding-right")),paddingBottom:u(a.css("padding-bottom")),paddingLeft:u(a.css("padding-left")),maxWidth:u(a.css("max-width"))||o},this.props.styles.height=a.height()+this.props.styles.borderTopWidth+this.props.styles.borderBottomWidth+this.props.styles.paddingTop+this.props.styles.paddingBottom,this.props.styles.sightHeight=this.props.styles.height-this.props.styles.borderTopWidth-this.props.styles.borderBottomWidth,this.props.styles.width=a.width()+this.props.styles.borderLeftWidth+this.props.styles.borderRightWidth+this.props.styles.paddingLeft+this.props.styles.paddingRight;var r=this.props.styles,n=a.attr("data-id");if("magicsearch"!==a.parent().attr("data-belong")){var h=t('<div class="'+(l.wrapper+(this.options.skin?" "+this.options.skin:""))+'" data-belong="magicsearch"></div>');h.css("width",r.width),a.wrap(h)}var c=a.parent(),f=a.css("display");if(c.css({display:"inline"===f?"inline-block":f,float:a.css("float"),margin:a.css("margin")}),c.attr("data-index",window.MagicSearch.index),a.css({margin:0,"box-sizing":"border-box",width:r.width,height:r.height}),a.attr("placeholder")&&a.attr("data-placeholder",a.attr("placeholder")),a.removeAttr("disabled"),this.options.isClear&&a.val(""),void 0===n&&(a.attr("data-id",""),n=""),0===c.find("."+l.box).length&&c.append('<div class="'+l.box+'"></div>'),c.find("."+l.box).css({top:r.height}),this.options.hidden){var g=a.attr("name"),v=t('<input class="'+l.hidden+'" type="hidden" value="'+n+'">');g&&(v.attr("name",g),a.removeAttr("name")),c.append(v)}if(this.options.dropdownBtn){var w=t('<div class="'+l.arrow+'"><i></i></div>');a.addClass("dropdown"),a.css("padding-right",r.paddingRight+d),w.css({top:r.borderTopWidth,bottom:r.borderBottomWidth,right:r.borderRightWidth}),c.append(w)}if("ajax"==this.options.type){var S=t('<div class="'+l.loading+'"><div></div></div>');c.append(S);var y=setTimeout(function(){c.find("."+l.loading).find("div").show()},500),x={type:"GET",url:this.options.dataSource,dataType:"json",error:function(){console.error("magicsearch: Error with xhr.Index: "+window.MagicSearch.index)},success:function(t){}}
1;x=t.extend({},x,this.options.ajaxOptions);var b=x.success;x.success=function(t){clearTimeout(y),i.options.dataSource=t,c.find("."+l.loading).remove(),i.initAfterAjax(),b(t)},t.ajax(x)}else this.initAfterAjax();return this},initAfterAjax:function(){var o=this.$element,a=o.parent(),r=this.props.styles,n=o.attr("data-id");if(t.isFunction(this.options.dataSource)&&(this.options.dataSource=this.options.dataSource(this.$element)),this.options.dataSource){if(p(this.options.dataSource))if("null"==this.options.dataSource.toLowerCase())this.options.dataSource=[];else try{if(this.options.dataSource=t.parseJSON(this.options.dataSource),!t.isArray(this.options.dataSource)){var h=[];for(var u in this.options.dataSource)h.push(this.options.dataSource[u]);this.options.dataSource=h}}catch(t){return this.options.dataSource=[],console.error("magicsearch: A problem is occured during parsing dataSource,please check.Index: "+window.MagicSearch.index),!1}else if(!t.isArray(this.options.dataSource)){var m=[];for(var g in this.options.dataSource)m.push(this.options.dataSource[g]);this.options.dataSource=m}}else this.options.dataSource=[];if(p(this.options.fields)?this.options.fields=[""===this.options.fields?this.options.id:this.options.fields]:t.isArray(this.options.fields)||(this.options.fields=[this.options.id]),p(this.options.format)&&""!==this.options.format||(this.options.format=i+this.options.id+i),this.options.maxShow=f(this.options.maxShow,"maxShow"),this.options.dropdownBtn&&(this.options.dropdownMaxItem=f(this.options.dropdownMaxItem,"dropdownMaxItem")),this.options.multiple&&(this.options.maxItem!==!0&&(this.options.maxItem=f(this.options.maxItem,"maxItem")),this.options.showMultiSkin&&(p(this.options.multiField)&&""!==this.options.multiField||(this.options.multiField=this.options.id)),this.options.multiStyle&&(this.props.multiStyle.space=this.options.multiStyle.space?this.options.multiStyle.space:s,this.props.multiStyle.width=this.options.multiStyle.width?this.options.multiStyle.width:e)),t.isFunction(this.options.success)||(this.options.success=function(t,i){return!0}),t.isFunction(this.options.disableRule)||(this.options.disableRule=function(t){return!1}),""!==n&&this.getDataSource(),this.options.multiple&&(o.addClass("multi"),this.options.showMultiSkin&&0===a.find("."+l.items).length)){var v=t('<div class="'+l.items+'"></div>');v.css({top:this.props.multiStyle.space+r.borderTopWidth,left:this.props.multiStyle.space+r.borderLeftWidth,bottom:this.props.multiStyle.space+r.borderBottomWidth,right:this.props.multiStyle.space+r.borderRightWidth+(this.options.dropdownBtn?d:0)}),a.append(v)}if(this.options.multiple){var w=n?n.split(","):[];if(this.options.maxItem!==!0&&w.length>=this.options.maxItem&&(o.attr("disabled","disabled"),a.addClass("disabled")),this.options.showMultiSkin)for(var S=[],y=0;y<w.length;y++)S.push(w[y]),o.attr("data-id",S.join(",")),this.options.hidden&&a.find("."+l.hidden).val(S.join(",")),this.appendHtml(this.props.objDataSource[w[y]])}else if(""!==n){var x=this.props.objDataSource[n],b=this.options.inputFormat?this.options.inputFormat:this.options.format;o.val(c(b,x))}},destroy:function(){var t=this.$element,i=t.parent();if("magicsearch"===i.attr("data-belong")){this.element.style=this.props.style,t.css({margin:i.css("margin"),"padding-top":this.props.styles.paddingTop,"padding-right":this.props.styles.paddingRight,"padding-bottom":this.props.styles.paddingBottom,"padding-left":this.props.styles.paddingLeft,height:this.props.styles.height,width:this.props.styles.width});var e=t.attr("data-placeholder");void 0!==e&&(t.attr("placeholder",e),t.removeAttr("data-placeholder")),t.removeClass("dropdown multi").removeAttr("disabled data-id"),t.siblings().remove(),t.unwrap(),t.off(),t.val("")}},getDataSource:function(){var t=this.options.dataSource;if(this.props.isFirstGetDataSource){for(var i={},e=0;e<t.length;e++)for(var s in t[e])this.options.dataSource[e][s]=String(t[e][s]);this.props.isFirstGetDataSource=!1;for(var o=0;o<t.length;o++)i[t[o][this.options.id]]=t[o];this.props.objDataSource=i}return this.options.dataSource},setData:function(){var t=this.$element,i=t.parent(),e=i.find("."+l.box),s=(i.find("."+l.arrow),e.find("li.ishover")),o=this.options,a=t.attr("data-id"),r=this.props.objDataSource[s.attr("data-id")];if(o.multiple){if(e.is(":hidden"))return;t.val("");var n=a?a.split(","):[];if(o.maxItem!==!0&&n.length>=o.maxItem)return this;n.push(s.attr("data-id")),o.maxItem!==!0&&n.length==o.maxItem&&(t.attr("disabled","disabled"),i.addClass("disabled")),t.attr("data-id",n.join(",")),o.hidden&&i.find("."+l.hidden).val(n.join(",")),o.showMultiSkin&&this.appendHtml(r)}else t.val(o.inputFormat?c(o.inputFormat,r):s.text()),t.attr("data-id",s.attr("data-id")),o.hidden&&i.find("."+l.hidden).val(s.attr("data-id"));return o.success(t,r),this},deleteData:function(i){var e=this.$element,s=e.parent(),o=s.find("."+l.box),a=(s.find("."+l.arrow),this),r=i?i.split(","):[],n=e.attr("data-id"),h=n?n.split(","):[],p=this.options,c=this.props.styles;if(!p.multiple)return i=e.attr("data-id"),e.val("").attr("data-id",""),p.hidden&&s.find("."+l.hidden).val(""),p.afterDelete(e,a.props.objDataSource[i]),this;for(var u=function(){t(this).remove()},f=0;f<r.length;f++)s.find("."+l.item+'[data-id="'+r[f]+'"]').fadeOut(400,u),h.splice(h.indexOf(r[f]),1);return setTimeout(function(){var t=parseInt((c.maxWidth-(p.dropdownBtn?d:0)-c.borderLeftWidth-c.borderRightWidth-a.props.multiStyle.space)/(a.props.multiStyle.width+a.props.multiStyle.space)),i=parseInt(h.length/t);if(e.attr("data-id",h.join(",")),p.hidden&&s.find("."+l.hidden).val(h.join(",")),s.removeClass("disabled"),e.removeAttr("disabled"),p.showMultiSkin&&(0===h.length&&e.attr("data-placeholder")&&e.attr("placeholder",e.attr("data-placeholder")),e.css("padding-left",h.length%t*(a.props.multiStyle.width+a.props.multiStyle.space)+c.paddingLeft),e.css("height",c.height+i*c.sightHeight),e.css("padding-top",i*c.sightHeight+c.paddingTop),o.css("top",c.height+i*c.sightHeight),0===i)){var n=(h.length%t+1)*(a.props.multiStyle.width+a.props.multiStyle.space)+2*a.props.multiStyle.space+c.borderLeftWidth+c.borderRightWidth+(p.dropdownBtn?d:0);e.css("min-width",n),s.css("min-width",n)}1==r.length&&p.afterDelete(e,a.props.objDataSource[r[0]])},400),this},searchData:function(i,e){var s=this.$element,o=s.parent().find("."+l.box),r=this.options,n=this.getDataSource(),d=s.attr("data-id"),h=d?d.split(","):[],p=t.trim(s.val()),u="",f=[],m=!0;if(e!==!0&&o.html(""),""===p&&!i)return this;if(i){var g=s.data("page")||1;if(f=n.slice(0),!r.showSelected)for(var v=0,w=0;v<f.length;v++){var S=h.indexOf(f[v][r.id]);if(S>-1&&(f.splice(v,1),w++,v--,w==h.length))break}g<=Math.ceil(f.length/a)&&s.data("page",g+1),f=f.slice((g-1)*a,g*a),1!=g&&0===f.length&&(m=!1)}else{for(var y=[].concat(_toConsumableArray(new Set(p.toLowerCase().split(" ")))),x=[],b=0;b<y.length;b++)""!==y[b]&&x.push({value:y[b],flag:!1});for(var C=0;C<n.length;C++)if(r.showSelected||!h.includes(n[C][r.id])){x=x.map(function(t){return t.flag=!1,t});for(var B=0;B<r.fields.length;B++){for(var D=0;D<x.length;D++)null!==n[C][r.fields[B]]&&n[C][r.fields[B]].toLowerCase().includes(x[D].value)&&(x[D].flag=!0);var A=x.every(function(t){return t.flag});if(A){f.push(n[C]);break}}if(f.length>=r.maxShow)break}}if(0===f.length){var W=r.noResult?r.noResult:"&#x672a;&#x641c;&#x7d22;&#x5230;&#x7ed3;&#x679c;";u='<span class="no-result">'+W+"</span>"}else{for(var T=[].concat(_toConsumableArray(new Set(p.split(" ")))).filter(function(t){return""!==t}),E=[],R=0;R<T.length-1;R++)for(var I=R+1;I<T.length;I++)E.push(T[R]+" "+T[I]);T=T.concat(E);var j=void 0;i||(j=t.extend(!0,[],f),f.forEach(function(t,i){r.fields.forEach(function(e){var s=[];if(null!==t[e]){for(var o=0;o<t[e].length;o++)s[o]=0;T.forEach(function(i){var o=t[e].toLowerCase().indexOf(i.toLowerCase());if(o>-1)for(var a=o;a<i.length+o;a++)s[a]=1})}for(var a=[],r=!1,n=-1,d=0,h=s.length-1;h>=0;h--)1==s[h]?(r?n--:(r=!0,n=h),d++,0===h&&a.push({start:n,length:d})):r&&(r=!1,a.push({start:n,length:d}),d=0);void 0!==j[i][e]&&(j[i][e]=a)})})),u+="<ul>",f.forEach(function(e,s){var o=t.extend({},e);u+='<li class="',u+=r.disableRule(e)?"disabled":"enabled",r.showSelected&&(u+=h.includes(e[r.id])?" selected":""),u+='" data-id="'+(void 0===e[r.id]?"":e[r.id])+'"',i||r.fields.forEach(function(t){null!==e[t]&&j[s][t].forEach(function(i){var e=o[t].substr(i.start,i.length);o[t]=o[t].replace(new RegExp(e,"i"),'<span class="keyword">'+e+"</span>")})}),u+=' title="'+c(r.format,e)+'">'+c(r.format,o)+"</li>"}),u+="</ul>"}return i?(m&&o.html(o.html()+u),o.addClass("all")):(o.html(u),o.removeClass("all").css("max-height","none")),this},showSearchBox:function(t){var i=this.$element,e=i.parent(),s=e.find("."+l.box);if(s.is(":visible"))return!1;if(this.options.dropdownBtn){var o=e.find("."+l.arrow);o.removeClass("arrow-rotate-360"),o.addClass("arrow-rotate-180")}
1return s.slideDown(r,t),this},hideSearchBox:function(t){var i=this.$element,e=i.parent(),s=e.find("."+l.box);if(!s.is(":visible"))return!1;if(void 0===t?this.options.isClear&&(this.options.multiple||""===i.attr("data-id"))&&i.val(""):t&&i.val(""),this.options.dropdownBtn){var o=e.find("."+l.arrow);o.removeClass("arrow-rotate-180"),o.addClass("arrow-rotate-360")}return setTimeout(function(){s.scrollTop(0)},r-1),s.slideUp(r,function(){s.html("")}),this},appendHtml:function(e){var s=this.$element,o=s.parent(),a=o.find("."+l.box),r=(o.find("."+l.arrow),a.find("li.ishover"),this.options),n=this.props.styles,h=this,p=s.attr("data-id").split(",");s.attr("placeholder")&&s.removeAttr("placeholder");var f=parseInt((n.maxWidth-(r.dropdownBtn?d:0)-n.borderLeftWidth-n.borderRightWidth-h.props.multiStyle.space)/(h.props.multiStyle.width+h.props.multiStyle.space)),m=t('<div class="'+l.item+'" data-id="'+e[r.id]+'" title="'+c(r.format,e)+'"><span>'+c(i+r.multiField+i,e)+'</span><a class="'+l.close+'" data-id="'+e[r.id]+'" href="javascript:;"></a></div>');m.css({height:n.sightHeight-2*h.props.multiStyle.space,width:h.props.multiStyle.width,"margin-bottom":2*h.props.multiStyle.space,"margin-right":h.props.multiStyle.space,"line-height":n.sightHeight-2*h.props.multiStyle.space-2+"px"}),m.find("."+l.close).css({top:parseInt((n.sightHeight-2*h.props.multiStyle.space-2-12)/2)});var g=parseInt(p.length/f);if(s.css("padding-left",u(s.css("padding-left"))+h.props.multiStyle.width+h.props.multiStyle.space),p.length%f===0)s.css("padding-left",n.paddingLeft),s.css("height",n.height+g*n.sightHeight),s.css("padding-top",g*n.sightHeight),a.css("top",n.height+g*n.sightHeight);else if(0===g){var v=(p.length%f+1)*(h.props.multiStyle.width+h.props.multiStyle.space)+2*h.props.multiStyle.space+n.borderLeftWidth+n.borderRightWidth+(r.dropdownBtn?d:0);s.css("min-width",v),o.css("min-width",v)}m.find("."+l.close).click(function(){h.deleteData(t(this).attr("data-id")).hideSearchBox()}),o.find("."+l.items).append(m)}},t.fn.magicsearch=function(i){var e=!1,s=null,o="",a=this.each(function(){var a=t(this),r=t.data(this,"magicsearch");if(r&&r.destroy(),r=new m(this,i),r.init()!==!1){t.data(this,"magicsearch",r);var d=r.options,c=a.parent(),u=c.find("."+l.box),f=function(){return!c.hasClass("disabled")&&void(u.is(":visible")?r.hideSearchBox():(u.css({"max-height":30*d.dropdownMaxItem+8}),u.unbind("scroll"),a.data("page",1),r.searchData(!0).showSearchBox(function(){u.on("scroll",function(i){this.scrollHeight-t(this).scrollTop()<300&&r.searchData(!0,!0)})})))};a.off().on("keyup",function(i){var e=t(this);if(i.which==h.ESC)e.val("").focus(),r.hideSearchBox();else{if(i.which==h.DOWN){var a=u.find("li"),l=u.find("li.ishover");return a.length>0&&(l.length>0?(l.toggleClass("ishover"),l.next().length>0?l.next().toggleClass("ishover"):u.find("li:first").toggleClass("ishover")):u.find("li:first").toggleClass("ishover")),!1}if(i.which==h.UP){var p=u.find("li"),c=u.find("li.ishover");return p.length>0&&(c.length>0?(c.toggleClass("ishover"),c.prev().length>0?c.prev().toggleClass("ishover"):u.find("li:last").toggleClass("ishover")):u.find("li:last").toggleClass("ishover")),!1}if(i.which==h.ENTER){var f=u.find("li.ishover");f.length>0&&f.trigger("click")}else{if(i.which==h.LEFT||i.which==h.RIGHT)return!0;var m=e.val();if(t.trim(o)==t.trim(m))return!0;if(""!==m){if(""===t.trim(m))return r.hideSearchBox(i.which!=h.BACKSPACE&&i.which!=h.SPACE&&void 0),!1;if(!d.multiple&&""!==e.attr("data-id"))return void r.hideSearchBox();clearTimeout(s),s=setTimeout(function(){r.searchData().showSearchBox()},n)}else r.hideSearchBox()}}}).on("keydown",function(i){var e=t(this);if(i.which==h.ESC);else{if(i.which==h.UP)return!1;if(i.which==h.DOWN)return!1;if(i.which==h.ENTER)return!u.is(":visible");if(i.which==h.BACKSPACE)if(o=e.val(),d.multiple){var s=c.find("."+l.items+" ."+l.item+":last");d.showMultiSkin&&""===e.val()&&r.deleteData(s.attr("data-id")).hideSearchBox()}
1else""!==t(this).attr("data-id")&&(r.deleteData(),r.hideSearchBox());else{if(i.which==h.LEFT||i.which==h.RIGHT)return!0;if(o=e.val(),""!==o&&!d.multiple&&""!==e.attr("data-id"))return void r.deleteData()}}}).on("focus",function(){c.addClass("focus"),d.isClear||""===a.val()||""!==a.attr("data-id")?d.focusShow&&f():r.searchData().showSearchBox()}).on("blur",function(){c.removeClass("focus"),r.hideSearchBox()}),u.off().on("mousedown","ul",function(){return!1}).on("mouseenter","li",function(){t(this).parent().find("li.ishover").removeClass("ishover"),t(this).addClass("ishover")}).on("mouseleave","li",function(){t(this).removeClass("ishover")}).on("click","li",function(){var i=t(this);i.hasClass("selected")&&d.multiple?r.deleteData(i.attr("data-id")).hideSearchBox():r.setData().hideSearchBox()}),d.dropdownBtn&&(e=!0,c.on("click","."+l.arrow,function(){return f()})),a.on("clear",function(){a.val(""),d.multiple&&d.showMultiSkin?r.deleteData(a.attr("data-id")):(a.attr("data-id",""),d.hidden&&c.find("."+l.hidden).val(""))}).on("update",function(i,e){if(void 0!==e.dataSource){var s=e.dataSource;if(p(s))if("null"==e.dataSource.toLowerCase())s=[];else try{if(s=t.parseJSON(e.dataSource),!t.isArray(s)){var o=[];for(var a in s)o.push(s[a]);s=o}}catch(t){s=[],console.error("magicsearch: The dataSource you updated is wrong,please check.")}r.props.isFirstGetDataSource=!0,r.options.dataSource=s}}).on("destroy",function(){r.destroy()}),c.on("click","."+l.items,function(i){t(i.target).is("."+l.items)&&a.focus()}).on("mousedown","."+l.items,function(){return!1})}});return e&&!window.MagicSearch.hasBindBody&&(t("body").on("mousedown",function(i){var e=t(i.target),s=t(this).find("."+l.wrapper+" ."+l.box+":visible").first().parent(),o=s.find("input:text"),a=s.attr("data-index");void 0===a||e.is("."+l.wrapper+'[data-index="'+a+'"] *')||t.data(o.get(0),"magicsearch").hideSearchBox()}),window.MagicSearch.hasBindBody=!0),a},window.MagicSearch={v:"1.0.2",index:0,hasBindBody:!1}});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.