1/*! 2 * bootstrap-star-rating v4.0.2 3 * http://plugins.krajee.com/star-rating 4 * 5 * Author: Kartik Visweswaran 6 * Copyright: 2014 - 2016, Kartik Visweswaran, Krajee.com 7 * 8 * Licensed under the BSD 3-Clause 9 * https://github.com/kartik-v/bootstrap-star-rating/blob/master/LICENSE.md 10 */ 11(function(factory){"use strict";if(typeof define==='function'&&define.amd){define(['jquery'],factory)}else{if(typeof module==='object'&&module.exports){module.exports=factory(require('jquery'))}else{factory(window.jQuery)}}}(function($){"use strict";$.fn.ratingLocales={};$.fn.ratingThemes={};var NAMESPACE,DEFAULT_MIN,DEFAULT_MAX,DEFAULT_STEP,isEmpty,getCss,addCss,getDecimalPlaces,applyPrecision,handler,Rating;NAMESPACE='.rating';DEFAULT_MIN=0;DEFAULT_MAX=5;DEFAULT_STEP=0.5;isEmpty=function(value,trim){return value===null||value===undefined||value.length===0||(trim&&$.trim(value)==='')};getCss=function(condition,css){return condition?' '+css:''};addCss=function($el,css){$el.removeClass(css).addClass(css)};getDecimalPlaces=function(num){var match=(''+num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return!match?0:Math.max(0,(match[1]?match[1].length:0)-(match[2]?+match[2]:0))};applyPrecision=function(val,precision){return parseFloat(val.toFixed(precision))};handler=function($el,event,callback,skipNS){var ev=skipNS?event:event.split(' ').join(NAMESPACE+' ')+NAMESPACE;$el.off(ev).on(ev,callback)};Rating=function(element,options){var self=this;self.$element=$(element);self._init(options)};Rating.prototype={constructor:Rating,_parseAttr:function(vattr,options){var self=this,$el=self.$element,elType=$el.attr('type'),finalVal,val,chk,out;if(elType==='range'||elType==='number'){val=options[vattr]||$el.data(vattr)||$el.attr(vattr);switch(vattr){case 'min':chk=DEFAULT_MIN;break;case 'max':chk=DEFAULT_MAX;break;default:chk=DEFAULT_STEP} 12finalVal=isEmpty(val)?chk:val;out=parseFloat(finalVal)}else{out=parseFloat(options[vattr])} 13return isNaN(out)?chk:out},_setDefault:function(key,val){var self=this;if(isEmpty(self[key])){self[key]=val}},_listenClick:function(e,callback){e.stopPropagation();e.preventDefault();if(e.handled!==!0){callback(e);e.handled=!0}else{return!1}},_starClick:function(e){var self=this,pos;self._listenClick(e,function(ev){if(self.inactive){return!1} 14pos=self._getTouchPosition(ev);self._setStars(pos);self.$element.trigger('change').trigger('rating.change',[self.$element.val(),self._getCaption()]);self.starClicked=!0})},_starMouseMove:function(e){var self=this,pos,out;if(!self.hoverEnabled||self.inactive||(e&&e.isDefaultPrevented())){return} 15self.starClicked=!1;pos=self._getTouchPosition(e);out=self.calculate(pos);self._toggleHover(out);self.$element.trigger('rating.hover',[out.val,out.caption,'stars'])},_starMouseLeave:function(e){var self=this,out;if(!self.hoverEnabled||self.inactive||self.starClicked||(e&&e.isDefaultPrevented())){return} 16out=self.cache;self._toggleHover(out);self.$element.trigger('rating.hoverleave',['stars'])},_clearClick:function(e){var self=this;self._listenClick(e,function(){if(!self.inactive){self.clear();self.clearClicked=!0}})},_clearMouseMove:function(e){var self=this,caption,val,width,out;if(!self.hoverEnabled||self.inactive||!self.hoverOnClear||(e&&e.isDefaultPrevented())){return} 17self.clearClicked=!1;caption='<span class="'+self.clearCaptionClass+'">'+self.clearCaption+'</span>';val=self.clearValue;width=self.getWidthFromValue(val)||0;out={caption:caption,width:width,val:val};self._toggleHover(out);self.$element.trigger('rating.hover',[val,caption,'clear'])},_clearMouseLeave:function(e){var self=this,out;if(!self.hoverEnabled||self.inactive||self.clearClicked||!self.hoverOnClear||(e&&e.isDefaultPrevented())){return} 18out=self.cache;self._toggleHover(out);self.$element.trigger('rating.hoverleave',['clear'])},_resetForm:function(e){var self=this;if(e&&e.isDefaultPrevented()){return} 19if(!self.inactive){self.reset()}},_setTouch:function(e,flag){var self=this,ev,touches,pos,out,caption,w,width,isTouchCapable='ontouchstart' in window||(window.DocumentTouch&&document instanceof window.DocumentTouch);if(!isTouchCapable||self.inactive){return} 20ev=e.originalEvent;touches=!isEmpty(ev.touches)?ev.touches:ev.changedTouches;pos=self._getTouchPosition(touches[0]);if(flag){self._setStars(pos);self.$element.trigger('change').trigger('rating.change',[self.$element.val(),self._getCaption()]);self.starClicked=!0}else{out=self.calculate(pos);caption=out.val<=self.clearValue?self.fetchCaption(self.clearValue):out.caption;w=self.getWidthFromValue(self.clearValue);
20width=out.val<=self.clearValue?w+'%':out.width;self._setCaption(caption);self.$filledStars.css('width',width)}},_initTouch:function(e){var self=this,flag=(e.type==="touchend");self._setTouch(e,flag)},_initSlider:function(options){var self=this;if(isEmpty(self.$element.val())){self.$element.val(0)} 21self.initialValue=self.$element.val();self._setDefault('min',self._parseAttr('min',options));self._setDefault('max',self._parseAttr('max',options));self._setDefault('step',self._parseAttr('step',options));if(isNaN(self.min)||isEmpty(self.min)){self.min=DEFAULT_MIN} 22if(isNaN(self.max)||isEmpty(self.max)){self.max=DEFAULT_MAX} 23if(isNaN(self.step)||isEmpty(self.step)||self.step===0){self.step=DEFAULT_STEP} 24self.diff=self.max-self.min},_initHighlight:function(v){var self=this,w,cap=self._getCaption();if(!v){v=self.$element.val()} 25w=self.getWidthFromValue(v)+'%';self.$filledStars.width(w);self.cache={caption:cap,width:w,val:v}},_getContainerCss:function(){var self=this;return'rating-container'+getCss(self.theme,'theme-'+self.theme)+getCss(self.rtl,'rating-rtl')+getCss(self.size,'rating-'+self.size)+getCss(self.animate,'rating-animate')+getCss(self.disabled||self.readonly,'rating-disabled')+getCss(self.containerClass,self.containerClass)},_checkDisabled:function(){var self=this,$el=self.$element,opts=self.options;self.disabled=opts.disabled===undefined?$el.attr('disabled')||!1:opts.disabled;self.readonly=opts.readonly===undefined?$el.attr('readonly')||!1:opts.readonly;self.inactive=(self.disabled||self.readonly);$el.attr({disabled:self.disabled,readonly:self.readonly})},_addContent:function(type,content){var self=this,$container=self.$container,isClear=type==='clear';if(self.rtl){return isClear?$container.append(content):$container.prepend(content)}else{return isClear?$container.prepend(content):$container.append(content)}},_generateRating:function(){var self=this,$el=self.$element,$rating,$container,w;$container=self.$container=$(document.createElement("div")).insertBefore($el);addCss($container,self._getContainerCss());self.$rating=$rating=$(document.createElement("div")).attr('class','rating').appendTo($container).append(self._getStars('empty')).append(self._getStars('filled'));self.$emptyStars=$rating.find('.empty-stars');self.$filledStars=$rating.find('.filled-stars');self._renderCaption();self._renderClear();self._initHighlight();$container.append($el);if(self.rtl){w=Math.max(self.$emptyStars.outerWidth(),self.$filledStars.outerWidth());self.$emptyStars.width(w)}},_getCaption:function(){var self=this;return self.$caption&&self.$caption.length?self.$caption.html():self.defaultCaption},_setCaption:function(content){var self=this;if(self.$caption&&self.$caption.length){self.$caption.html(content)}},_renderCaption:function(){var self=this,val=self.$element.val(),html,$cap=self.captionElement?$(self.captionElement):'';if(!self.showCaption){return} 26html=self.fetchCaption(val);if($cap&&$cap.length){addCss($cap,'caption');$cap.html(html);self.$caption=$cap;return} 27self._addContent('caption','<div class="caption">'+html+'</div>');self.$caption=self.$container.find(".caption")},_renderClear:function(){var self=this,css,$clr=self.clearElement?$(self.clearElement):'';if(!self.showClear){return} 28css=self._getClearClass();if($clr.length){addCss($clr,css);$clr.attr({"title":self.clearButtonTitle}).html(self.clearButton);self.$clear=$clr;return} 29self._addContent('clear','<div class="'+css+'" title="'+self.clearButtonTitle+'">'+self.clearButton+'</div>');self.$clear=self.$container.find('.'+self.clearButtonBaseClass)},_getClearClass:function(){return this.clearButtonBaseClass+' '+((this.inactive)?'':this.clearButtonActiveClass)},_getTouchPosition:function(e){var pageX=isEmpty(e.pageX)?e.originalEvent.touches[0].pageX:e.pageX;return pageX-this.$rating.offset().left},_toggleHover:function(out){var self=this,w,width,caption;if(!out){return} 30if(self.hoverChangeStars){w=self.getWidthFromValue(self.clearValue);width=out.val<=self.clearValue?w+'%':out.width;self.$filledStars.css('width',width)} 31if(self.hoverChangeCaption){caption=out.val<=self.clearValue?self.fetchCaption(self.clearValue):out.caption;if(caption){self._setCaption(caption+'')}}},_init:function(options){var self=this,$el=self.$element.addClass('hide');self.options=options;$.each(options,function(key,value){self[key]=value});if(self.rtl||$el.attr('dir')==='rtl'){self.rtl=!0;$el.attr('dir','rtl')} 32self.starClicked=!1;self.clearClicked=!1;self._initSlider(options);self._checkDisabled();if(self.displayOnly){self.inactive=!0;self.showClear=!1;self.showCaption=!1} 33self._generateRating();self._listen();return $el.removeClass('rating-loading')},_listen:function(){var self=this,$el=self.$element,$form=$el.closest('form'),$rating=self.$rating,$clear=self.$clear;handler($rating,'touchstart touchmove touchend',$.proxy(self._initTouch,self));handler($rating,'click touchstart',$.proxy(self._starClick,self));handler($rating,'mousemove',$.proxy(self._starMouseMove,self));handler($rating,'mouseleave',$.proxy(self._starMouseLeave,self));if(self.showClear&&$clear.length){handler($clear,'click touchstart',$.proxy(self._clearClick,self));handler($clear,'mousemove',$.proxy(self._clearMouseMove,self));handler($clear,'mouseleave',$.proxy(self._clearMouseLeave,self))} 34if($form.length){handler($form,'reset',$.proxy(self._resetForm,self))} 35return $el},_getStars:function(type){var self=this,stars='<span class="'+type+'-stars">',i;for(i=1;i<=self.stars;i++){stars+='<span class="star">'+self[type+'Star']+'</span>'} 36return stars+'</span>'},_setStars:function(pos){var self=this,out=arguments.length?self.calculate(pos):self.calculate(),$el=self.$element;$el.val(out.val);self.$filledStars.css('width',out.width);self._setCaption(out.caption);self.cache=out;return $el},showStars:function(val){var self=this,v=parseFloat(val);self.$element.val(isNaN(v)?self.clearValue:v);return self._setStars()},calculate:function(pos){var self=this,defaultVal=isEmpty(self.$element.val())?0:self.$element.val(),val=arguments.length?self.getValueFromPosition(pos):defaultVal,caption=self.fetchCaption(val),width=self.getWidthFromValue(val);width+='%';return{caption:caption,width:width,val:val}},getValueFromPosition:function(pos){var self=this,precision=getDecimalPlaces(self.step),val,factor,maxWidth=self.$rating.width();factor=(self.diff*pos)/(maxWidth*self.step);factor=self.rtl?Math.floor(factor):Math.ceil(factor);val=applyPrecision(parseFloat(self.min+factor*self.step),precision);val=Math.max(Math.min(val,self.max),self.min);return self.rtl?(self.max-val):val},getWidthFromValue:function(val){var self=this,min=self.min,max=self.max,factor,$r=self.$emptyStars,w;if(!val||val<=min||min===max){return 0} 37w=$r.outerWidth();factor=w?$r.width()/w:1;if(val>=max){return 100} 38return(val-min)*factor*100/(max-min)},fetchCaption:function(rating){var self=this,val=parseFloat(rating)||self.clearValue,css,cap,c
38apVal,cssVal,caption,vCap=self.starCaptions,vCss=self.starCaptionClasses;if(val&&val!==self.clearValue){val=applyPrecision(val,getDecimalPlaces(self.step))} 39cssVal=typeof vCss==="function"?vCss(val):vCss[val];capVal=typeof vCap==="function"?vCap(val):vCap[val];cap=isEmpty(capVal)?self.defaultCaption.replace(/\{rating}/g,val):capVal;css=isEmpty(cssVal)?self.clearCaptionClass:cssVal;caption=(val===self.clearValue)?self.clearCaption:cap;return'<span class="'+css+'">'+caption+'</span>'},destroy:function(){var self=this,$el=self.$element;if(!isEmpty(self.$container)){self.$container.before($el).remove()} 40$.removeData($el.get(0));return $el.off('rating').removeClass('hide')},create:function(options){var self=this,opts=options||self.options||{};return self.destroy().rating(opts)},clear:function(){var self=this,title='<span class="'+self.clearCaptionClass+'">'+self.clearCaption+'</span>';if(!self.inactive){self._setCaption(title)} 41return self.showStars(self.clearValue).trigger('change').trigger('rating.clear')},reset:function(){var self=this;return self.showStars(self.initialValue).trigger('rating.reset')},update:function(val){var self=this;return arguments.length?self.showStars(val):self.$element},refresh:function(options){var self=this,$el=self.$element;if(!options){return $el} 42return self.destroy().rating($.extend(!0,self.options,options)).trigger('rating.refresh')}};$.fn.rating=function(option){var args=Array.apply(null,arguments),retvals=[];args.shift();this.each(function(){var self=$(this),data=self.data('rating'),options=typeof option==='object'&&option,theme=options.theme||self.data('theme'),lang=options.language||self.data('language')||'en',thm={},loc={},opts;if(!data){if(theme){thm=$.fn.ratingThemes[theme]||{}} 43if(lang!=='en'&&!isEmpty($.fn.ratingLocales[lang])){loc=$.fn.ratingLocales[lang]} 44opts=$.extend(!0,{},$.fn.rating.defaults,thm,$.fn.ratingLocales.en,loc,options,self.data());data=new Rating(this,opts);self.data('rating',data)} 45if(typeof option==='string'){retvals.push(data[option].apply(data,args))}});switch(retvals.length){case 0:return this;case 1:return retvals[0]===undefined?this:retvals[0];default:return retvals}};$.fn.rating.defaults={theme:'',language:'en',stars:5,filledStar:'<i class="glyphicon glyphicon-star"></i>',emptyStar:'<i class="glyphicon glyphicon-star-empty"></i>',containerClass:'',size:'md',animate:!0,displayOnly:!1,rtl:!1,showClear:!0,showCaption:!0,starCaptionClasses:{0.5:'label label-danger',1:'label label-danger',1.5:'label label-warning',2:'label label-warning',2.5:'label label-info',3:'label label-info',3.5:'label label-primary',4:'label label-primary',4.5:'label label-success',5:'label label-success'},clearButton:'<i class="glyphicon glyphicon-minus-sign"></i>',clearButtonBaseClass:'clear-rating',clearButtonActiveClass:'clear-rating-active',clearCaptionClass:'label label-default',clearValue:null,captionElement:null,clearElement:null,hoverEnabled:!0,hoverChangeCaption:!0,hoverChangeStars:!0,hoverOnClear:!0};$.fn.ratingLocales.en={defaultCaption:'{rating} Stars',starCaptions:{0.5:'Half Star',1:'One Star',1.5:'One & Half Star',2:'Two Stars',2.5:'Two & Half Stars',3:'Three Stars',3.5:'Three & Half Stars',4:'Four Stars',4.5:'Four & Half Stars',5:'Five Stars'},clearButtonTitle:'Clear',clearCaption:'Not Rated'};$.fn.rating.Constructor=Rating;$(document).ready(function(){var $input=$('input.rating');if($input.length){$input.removeClass('rating-loading').addClass('rating-loading').rating()}})}))
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.