1/*! 2 * ,/ 3 * ,'/ 4 * ,' / 5 * ,' /_____, 6 * .'____ ,' 7 * / ,' 8 * / ,' 9 * /,' 10 * /' 11 * 12 * Selectric Ï v1.13.0 (Aug 22 2017) - http://lcdsantos.github.io/jQuery-Selectric/ 13 * 14 * Copyright (c) 2017 Leonardo Santos; MIT License 15 * 16 */ 17(function(n){typeof define=="function"&&define.amd?define(["jquery"],n):typeof module=="object"&&module.exports?module.exports=function(t,i){return i===undefined&&(i=typeof window!="undefined"?require("jquery"):require("jquery")(t)),n(i),i}:n(jQuery)})(function(n){"use strict";var r=n(document),u=n(window),i="selectric",o="Input Items Open Disabled TempShow HideSelect Wrapper Focus Hover Responsive Above Below Scroll Group GroupLabel",t=".sl",s=["a","e","i","o","u","n","c","y"],f=[/[\xE0-\xE5]/g,/[\xE8-\xEB]/g,/[\xEC-\xEF]/g,/[\xF2-\xF6]/g,/[\xF9-\xFC]/g,/[\xF1]/g,/[\xE7]/g,/[\xFD-\xFF]/g],e=function(t,i){var r=this;r.element=t;r.$element=n(t);r.state={multiple:!!r.$element.attr("multiple"),enabled:!1,opened:!1,currValue:-1,selectedIdx:-1,highlightedIdx:-1};r.eventTriggers={open:r.open,close:r.close,destroy:r.destroy,refresh:r.refresh,init:r.init};r.init(i)};e.prototype={utils:{isMobile:function(){return/android|ip(hone|od|ad)/i.test(navigator.userAgent)},escapeRegExp:function(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},replaceDiacritics:function(n){for(var t=f.length;t--;)n=n.toLowerCase().replace(f[t],s[t]);return n},format:function(n){var t=arguments;return(""+n).replace(/\{(?:(\d+)|(\w+))\}/g,function(n,i,r){return r&&t[1]?t[1][r]:t[i]})},nextEnabledItem:function(n,t){while(n[t=(t+1)%n.length].disabled);return t},previousEnabledItem:function(n,t){while(n[t=(t>0?t:n.length)-1].disabled);return t},toDash:function(n){return n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()},triggerCallback:function(t,r){var u=r.element,f=r.options["on"+t],e=[u].concat([].slice.call(arguments).slice(1));n.isFunction(f)&&f.apply(u,e);n(u).trigger(i+"-"+this.toDash(t),e)},arrayToClassname:function(t){var i=n.grep(t,function(n){return!!n});return n.trim(i.join(" "))}},init:function(t){var r=this;if(r.options=n.extend(!0,{},n.fn[i].defaults,r.options,t),r.utils.triggerCallback("BeforeInit",r),r.destroy(!0),r.options.disableOnMobile&&r.utils.isMobile()){r.disableOnMobile=!0;return}r.classes=r.getClassNames();var u=n("<input/>",{"class":r.classes.input,readonly:r.utils.isMobile()}),f=n("<div/>",{"class":r.classes.items,tabindex:-1}),h=n("<div/>",{"class":r.classes.scroll}),e=n("<div/>",{"class":r.classes.prefix,html:r.options.arrowButtonMarkup}),o=n("<span/>",{"class":"label"}),c=r.$element.wrap("<div/>").parent().append(e.prepend(o),f,u),s=n("<div/>",{"class":r.classes.hideselect});if(r.elements={input:u,items:f,itemsScroll:h,wrapper:e,label:o,outerWrapper:c},r.options.nativeOnMobile&&r.utils.isMobile()){r.elements.input=undefined;s.addClass(r.classes.prefix+"-is-native");r.$element.on("change",function(){r.refresh()})}r.$element.on(r.eventTriggers).wrap(s);r.originalTabindex=r.$element.prop("tabindex");r.$element.prop("tabindex",-1);r.populate();r.activate();r.utils.triggerCallback("Init",r)},activate:function(){var n=this,i=n.elements.items.closest(":visible").children(":hidden").addClass(n.classes.tempshow),t=n.$element.width();i.removeClass(n.classes.tempshow);n.utils.triggerCallback("BeforeActivate",n);n.elements.outerWrapper.prop("class",n.utils.arrayToClassname([n.classes.wrapper,n.$element.prop("class").replace(/\S+/g,n.classes.prefix+"-$&"),n.options.responsive?n.classes.responsive:""]));n.options.inheritOriginalWidth&&t>0&&n.elements.outerWrapper.width(t);n.unbindEvents();n.$element.prop("disabled")?(n.elements.outerWrapper.addClass(n.classes.disabled),n.elements.input&&n.elements.input.prop("disabled",!0)):(n.state.enabled=!0,n.elements.outerWrapper.removeClass(n.classes.disabled),n.$li=n.elements.items.removeAttr("style").find("li"),n.bindEvents());n.utils.triggerCallback("Activate",n)},getClassNames:function(){var r=this,t=r.options.customClass,i={};return n.each(o.split(" "),function(n,u){var f=t.prefix+u;i[u.toLowerCase()]=t.camelCase?f:r.utils.toDash(f)}),i.prefix=t.prefix,i},setLabel:function(){var t=this,r=t.options.labelBuilder,u,i,f;t.state.multiple?(u=n.isArray(t.state.currValue)?t.state.currValue:[t.state.currValue],u=u.length===0?[0]:u,i=n.map(u,function(i){return n.grep(t.lookupItems,function(n){return n.index===i})[0]}),i=n.grep(i,function(t){return i.length>1||i.length===0?n.trim(t.value)!=="":t}),i=n.map(i,function(i){return n.isFunction(r)?r(i):t.utils.format(r,i)}),t.options.multiple.maxLabelEntries&&(i.length>=t.options.multiple.maxLabelEntries+1?(i=i.slice(0,t.options.multiple.maxLabelEntries),i.push(n.isFunction(r)?r({text:"..."}):t.utils.format(r,{text:"..."}))):i.slice(i.length-1)),t.elements.label.html(i.join(t.options.multiple.separator))):(f=t.lookupItems[t.state.currValue],t.elements.label.html(n.isFunction(r)?r(f):t.utils.format(r,f)))},populate:function(){var t=this,f=t.$element.children(),e=t.$element.find("option"),u=e.filter(":selected"),r=e.index(u),i=0,o=t.state.multiple?[]:0;u.length>1&&t.state.multiple&&(r=[],u.each(function(){r.push(n(this).index())}));t.state.currValue=~r?r:o;t.state.selectedIdx=t.state.currValue;t.state.highlightedIdx=t.state.currValue;t.items=[];t.lookupItems=[];f.length&&(f.each(function(r){var u=n(this),f;u.is("optgroup")?(f={element:u,label:u.prop("label"),groupDisabled:u.prop("disabled"),items:[]},u.children().each(function(r){var u=n(this);f.items[r]=t.getItemData(i,u,f.groupDisabled||u.prop("disabled"));t.lookupItems[i]=f.items[r];i++}),t.items[r]=f):(t.items[r]=t.getItemData(i,u,u.prop("disabled")),t.lookupItems[i]=t.items[r],i++)}),t.setLabel(),t.elements.items.append(t.elements.itemsScroll.html(t.getItemsMarkup(t.items))))},getItemData:function(t,i,r){var u=this;return{index:t,element:i,value:i.val(),className:i.prop("class"),text:i.html(),slug:n.trim(u.utils.replaceDiacritics(i.html())),alt:i.attr("data-alt"),selected:i.prop("selected"),disabled:r}},getItemsMarkup:function(t){var i=this,r="<ul>";return n.isFunction(i.options.listBuilder)&&i.options.listBuilder&&(t=i.options.listBuilder(t)),n.each(t,function(t,u){u.label!==undefined?(r+=i.utils.format('<ul class="{1}"><li class="{2}">{3}<\/li>',i.utils.arrayToClassname([i.classes.group,u.groupDisabled?"disabled":"",u.element.prop("class")]
17),i.classes.grouplabel,u.element.prop("label")),n.each(u.items,function(n,t){r+=i.getItemMarkup(t.index,t)}),r+="<\/ul>"):r+=i.getItemMarkup(u.index,u)}),r+"<\/ul>"},getItemMarkup:function(t,i){var r=this,u=r.options.optionsItemBuilder,f={value:i.value,text:i.text,slug:i.slug,index:i.index};return r.utils.format('<li data-index="{1}" class="{2}">{3}<\/li>',t,r.utils.arrayToClassname([i.className,t===r.items.length-1?"last":"",i.disabled?"disabled":"",i.selected?"selected":""]),n.isFunction(u)?r.utils.format(u(i,this.$element,t),i):r.utils.format(u,f))},unbindEvents:function(){var n=this;n.elements.wrapper.add(n.$element).add(n.elements.outerWrapper).add(n.elements.input).off(t)},bindEvents:function(){var i=this;i.elements.outerWrapper.on("mouseenter"+t+" mouseleave"+t,function(t){n(this).toggleClass(i.classes.hover,t.type==="mouseenter");i.options.openOnHover&&(clearTimeout(i.closeTimer),t.type==="mouseleave"?i.closeTimer=setTimeout(n.proxy(i.close,i),i.options.hoverIntentTimeout):i.open())});i.elements.wrapper.on("click"+t,function(n){i.state.opened?i.close():i.open(n)});if(!(i.options.nativeOnMobile&&i.utils.isMobile())){i.$element.on("focus"+t,function(){i.elements.input.focus()});i.elements.input.prop({tabindex:i.originalTabindex,disabled:!1}).on("keydown"+t,n.proxy(i.handleKeys,i)).on("focusin"+t,function(n){i.elements.outerWrapper.addClass(i.classes.focus);i.elements.input.one("blur",function(){i.elements.input.blur()});i.options.openOnFocus&&!i.state.opened&&i.open(n)}).on("focusout"+t,function(){i.elements.outerWrapper.removeClass(i.classes.focus)}).on("input propertychange",function(){var r=i.elements.input.val(),t=new RegExp("^"+i.utils.escapeRegExp(r),"i");clearTimeout(i.resetStr);i.resetStr=setTimeout(function(){i.elements.input.val("")},i.options.keySearchTimeout);r.length&&n.each(i.items,function(n,r){var f,u;if(!r.disabled){if(t.test(r.text)||t.test(r.slug)){i.highlight(n);return}if(r.alt)for(f=r.alt.split("|"),u=0;u<f.length;u++){if(!f[u])break;if(t.test(f[u].trim())){i.highlight(n);return}}}})})}i.$li.on({mousedown:function(n){n.preventDefault();n.stopPropagation()},click:function(){return i.select(n(this).data("index")),!1}})},handleKeys:function(t){var i=this,r=t.which,f=i.options.keys,e=n.inArray(r,f.previous)>-1,o=n.inArray(r,f.next)>-1,h=n.inArray(r,f.select)>-1,c=n.inArray(r,f.open)>-1,u=i.state.highlightedIdx,l=e&&u===0||o&&u+1===i.items.length,s=0;if((r===13||r===32)&&t.preventDefault(),e||o){if(!i.options.allowWrap&&l)return;e&&(s=i.utils.previousEnabledItem(i.lookupItems,u));o&&(s=i.utils.nextEnabledItem(i.lookupItems,u));i.highlight(s)}if(h&&i.state.opened){i.select(u);i.state.multiple&&i.options.multiple.keepMenuOpen||i.close();return}c&&!i.state.opened&&i.open()},refresh:function(){var n=this;n.populate();n.activate();n.utils.triggerCallback("Refresh",n)},setOptionsDimensions:function(){var n=this,u=n.elements.items.closest(":visible").children(":hidden").addClass(n.classes.tempshow),t=n.options.maxHeight,i=n.elements.items.outerWidth(),r=n.elements.wrapper.outerWidth()-(i-n.elements.items.width());!n.options.expandToItemText||r>i?n.finalWidth=r:(n.elements.items.css("overflow","scroll"),n.elements.outerWrapper.width(9e4),n.finalWidth=n.elements.items.width(),n.elements.items.css("overflow",""),n.elements.outerWrapper.width(""));n.elements.items.width(n.finalWidth).height()>t&&n.elements.items.height(t);u.removeClass(n.classes.tempshow)},isInViewport:function(){var n=this;if(n.options.forceRenderAbove===!0)n.elements.outerWrapper.addClass(n.classes.above);else if(n.options.forceRenderBelow===!0)n.elements.outerWrapper.addClass(n.classes.below);else{var t=u.scrollTop(),f=u.height(),i=n.elements.outerWrapper.offset().top,e=n.elements.outerWrapper.outerHeight(),o=i+e+n.itemsHeight<=t+f,s=i-n.itemsHeight>t,r=!o&&s,h=!r;n.elements.outerWrapper.toggleClass(n.classes.above,r);n.elements.outerWrapper.toggleClass(n.classes.below,h)}},detectItemVisibility:function(t){var i=this,e=i.$li.filter("[data-index]");i.state.multiple&&(t=n.isArray(t)&&t.length===0?0:t,t=n.isArray(t)?Math.min.apply(Math,t):t);var r=e.eq(t).outerHeight(),u=e[t].offsetTop,f=i.elements.itemsScroll.scrollTop(),o=u+r*2;i.elements.itemsScroll.scrollTop(o>f+i.itemsHeight?o-i.itemsHeight:u-r<f?u-r:f)},open:function(u){var f=this;if(f.options.nativeOnMobile&&f.utils.isMobile())return!1;if(f.utils.triggerCallback("BeforeOpen",f),u&&(u.preventDefault(),f.options.stopPropagation&&u.stopPropagation()),f.state.enabled){if(f.setOptionsDimensions(),n("."+f.classes.hideselect,"."+f.classes.open).children()[i]("close"),f.state.opened=!0,f.itemsHeight=f.elements.items.outerHeight(),f.itemsInnerHe
17ight=f.elements.items.height(),f.elements.outerWrapper.addClass(f.classes.open),f.elements.input.val(""),u&&u.type!=="focusin"&&f.elements.input.focus(),setTimeout(function(){r.on("click"+t,n.proxy(f.close,f)).on("scroll"+t,n.proxy(f.isInViewport,f))},1),f.isInViewport(),f.options.preventWindowScroll)r.on("mousewheel"+t+" DOMMouseScroll"+t,"."+f.classes.scroll,function(t){var i=t.originalEvent,u=n(this).scrollTop(),r=0;"detail"in i&&(r=i.detail*-1);"wheelDelta"in i&&(r=i.wheelDelta);"wheelDeltaY"in i&&(r=i.wheelDeltaY);"deltaY"in i&&(r=i.deltaY*-1);(u===this.scrollHeight-f.itemsInnerHeight&&r<0||u===0&&r>0)&&t.preventDefault()});f.detectItemVisibility(f.state.selectedIdx);f.highlight(f.state.multiple?-1:f.state.selectedIdx);f.utils.triggerCallback("Open",f)}},close:function(){var n=this;n.utils.triggerCallback("BeforeClose",n);r.off(t);n.elements.outerWrapper.removeClass(n.classes.open);n.state.opened=!1;n.utils.triggerCallback("Close",n)},change:function(){var t=this;t.utils.triggerCallback("BeforeChange",t);t.state.multiple?(n.each(t.lookupItems,function(n){t.lookupItems[n].selected=!1;t.$element.find("option").prop("selected",!1)}),n.each(t.state.selectedIdx,function(n,i){t.lookupItems[i].selected=!0;t.$element.find("option").eq(i).prop("selected",!0)}),t.state.currValue=t.state.selectedIdx,t.setLabel(),t.utils.triggerCallback("Change",t)):t.state.currValue!==t.state.selectedIdx&&(t.$element.prop("selectedIndex",t.state.currValue=t.state.selectedIdx).data("value",t.lookupItems[t.state.selectedIdx].text),t.setLabel(),t.utils.triggerCallback("Change",t))},highlight:function(n){var t=this,i=t.$li.filter("[data-index]").removeClass("highlighted");(t.utils.triggerCallback("BeforeHighlight",t),n===undefined||n===-1||t.lookupItems[n].disabled)||(i.eq(t.state.highlightedIdx=n).addClass("highlighted"),t.detectItemVisibility(n),t.utils.triggerCallback("Highlight",t))},select:function(t){var i=this,u=i.$li.filter("[data-index]"),r;(i.utils.triggerCallback("BeforeSelect",i,t),t===undefined||t===-1||i.lookupItems[t].disabled)||(i.state.multiple?(i.state.selectedIdx=n.isArray(i.state.selectedIdx)?i.state.selectedIdx:[i.state.selectedIdx],r=n.inArray(t,i.state.selectedIdx),r!==-1?i.state.selectedIdx.splice(r,1):i.state.selectedIdx.push(t),u.removeClass("selected").filter(function(t){return n.inArray(t,i.state.selectedIdx)!==-1}).addClass("selected")):u.removeClass("selected").eq(i.state.selectedIdx=t).addClass("selected"),i.state.multiple&&i.options.multiple.keepMenuOpen||i.close(),i.change(),i.utils.triggerCallback("Select",i,t))},destroy:function(n){var r=this;r.state&&r.state.enabled&&(r.elements.items.add(r.elements.wrapper).add(r.elements.input).remove(),n||r.$element.removeData(i).removeData("value"),r.$element.prop("tabindex",r.originalTabindex).off(t).off(r.eventTriggers).unwrap().unwrap(),r.state.enabled=!1)}};n.fn[i]=function(t){return this.each(function(){var r=n.data(this,i);r&&!r.disableOnMobile?typeof t=="string"&&r[t]?r[t]():r.init(t):n.data(this,i,new e(this,t))})};n.fn[i].defaults={onChange:function(t){n(t).change()},maxHeight:300,keySearchTimeout:500,arrowButtonMarkup:'<b class="button">▾<\/b>',disableOnMobile:!1,nativeOnMobile:!0,openOnFocus:!0,openOnHover:!1,hoverIntentTimeout:500,expandToItemText:!1,responsive:!1,preventWindowScroll:!0,inheritOriginalWidth:!1,allowWrap:!0,forceRenderAbove:!1,forceRenderBelow:!1,stopPropagation:!0,optionsItemBuilder:"{text}",labelBuilder:"{text}",listBuilder:!1,keys:{previous:[37,38],next:[39,40],select:[9,13,27],open:[13,32,37,38,39,40],close:[9,27]},customClass:{prefix:i,camelCase:!1},multiple:{separator:", ",keepMenuOpen:!0,maxLabelEntries:!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.