1var Reusables=Reusables||{};Reusables.Breakpoints=($=>{function Breakpoint($elements,range,options){var elements,isJQuery,isFunction,isString,hasSelector;return this.$elements=$elements,this.range=range,this.options=options,this.key=generateKey(),this.elements=(isFunction="function"==typeof $elements,isString="string"==typeof $elements,isJQuery=!1,hasSelector=(isJQuery=$elements&&$elements instanceof jQuery||$elements&&$elements.constructor.prototype.jquery?!0:isJQuery)&&!!$elements.selector,isFunction?elements=$elements:isString?elements=function(){return $($elements)}:isJQuery&&hasSelector?elements=function(){return $($elements.selector)}:isJQuery&&(elements=function(){return $elements}),elements),this.min=range[0]||0,this.max=range[1]||1/0,this.name=(isFunction=options.name,isString=this.min,hasSelector=this.max,isFunction||["breakpoint",isString,hasSelector=hasSelector===1/0?"up":hasSelector].join("-")),this.enter="function"==typeof options.enter?options.enter:function(){},this.exit="function"==typeof options.exit?options.exit:function(){},this}function Builder($elements){this.$elements=$elements}nextKey=1;var nextKey,breakpoints,generateKey=function(){var key="breakpoint-"+nextKey;return nextKey++,key},enterQueue=new function(){var callbacks=[];this.push=function(callback){callbacks.push(callback)},this.process=function(){for(;0!==callbacks.length;)callbacks.pop()()}},Breakpoints=(Breakpoint.prototype.evaluate=function(){var breakpoint=this;breakpoint.elements().each(function(index,element){var exiting,$element=$(element),element=$element.outerWidth(),element=breakpoint.min<=element&&element<breakpoint.max,change=element!==($element.data(breakpoint.key)||!1);change&&($element.data(breakpoint.key,element),exiting=change&&!element,change&&element?enterQueue.push(function(){$element.addClass(breakpoint.name),breakpoint.enter($element)}):exiting&&($element.removeClass(breakpoint.name),breakpoint.exit($element)))})},{});return Breakpoints.on=function($elements){return new Builder($elements)},breakpoints=[],Builder.prototype.define=function(range,options){return breakpoints.push(new Breakpoint(this.$elements,range,options)),this},Breakpoints.evaluate=function(){for(var length=breakpoints.length,i=0;i<length;i++)breakpoints[i].evaluate();enterQueue.process()},Breakpoints.scan=function($element){$element.find("[data-breakpoints]").each(function(){Breakpoints.register($(this))}),Reusables.Breakpoints.evaluate()},Breakpoints.register=function($element){var builder=Reusables.Breakpoints.on($element),prefix=$element.attr("data-breakpoints-class-prefix")||"breakpoint",breakpoints=JSON.parse($element.attr("data-breakpoints"));$.isPlainObject(breakpoints)&&($.each(breakpoints,function(name,range){builder.define(range,{name:prefix+"-"+name})}),$element.removeClass(prefix+"-no-bp"))},$(window).on("resize.reusables.breakpoints",Breakpoints.evaluate),Breakpoints})(jQuery),"undefined"!=typeof jQuery&&jQuery(function($){Reusables.Breakpoints.scan($("body"))});
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.