1/*! 2 * modernizr v3.3.1 3 * Build http://modernizr.com/download?-flexbox-flexboxlegacy-matchmedia-rgba-touchevents-addtest-classes-load-mq-printshiv-setclasses-dontmin 4 * 5 * Copyright (c) 6 * Faruk Ates 7 * Paul Irish 8 * Alex Sexton 9 * Ryan Seddon 10 * Patrick Kettner 11 * Stu Cox 12 * Richard Herrera 13 14 * MIT License 15 */ 16;(function(window,document,undefined){var tests=[];var ModernizrProto={_version:'3.3.1',_config:{'classPrefix':'','enableClasses':!0,'enableJSClass':!0,'usePrefixes':!0},_q:[],on:function(test,cb){var self=this;setTimeout(function(){cb(self[test])},0)},addTest:function(name,fn,options){tests.push({name:name,fn:fn,options:options})},addAsyncTest:function(fn){tests.push({name:null,fn:fn})}};var Modernizr=function(){};Modernizr.prototype=ModernizrProto;Modernizr=new Modernizr();var classes=[];function is(obj,type){return typeof obj===type};function testRunner(){var featureNames;var feature;var aliasIdx;var result;var nameIdx;var featureName;var featureNameSplit;for(var featureIdx in tests){if(tests.hasOwnProperty(featureIdx)){featureNames=[];feature=tests[featureIdx];if(feature.name){featureNames.push(feature.name.toLowerCase());if(feature.options&&feature.options.aliases&&feature.options.aliases.length){for(aliasIdx=0;aliasIdx<feature.options.aliases.length;aliasIdx++){featureNames.push(feature.options.aliases[aliasIdx].toLowerCase())}}} 17result=is(feature.fn,'function')?feature.fn():feature.fn;for(nameIdx=0;nameIdx<featureNames.length;nameIdx++){featureName=featureNames[nameIdx];featureNameSplit=featureName.split('.');if(featureNameSplit.length===1){Modernizr[featureNameSplit[0]]=result}else{if(Modernizr[featureNameSplit[0]]&&!(Modernizr[featureNameSplit[0]]instanceof Boolean)){Modernizr[featureNameSplit[0]]=new Boolean(Modernizr[featureNameSplit[0]])} 18Modernizr[featureNameSplit[0]][featureNameSplit[1]]=result} 19classes.push((result?'':'no-')+featureNameSplit.join('-'))}}}};var docElement=document.documentElement;var isSVG=docElement.nodeName.toLowerCase()==='svg';function setClasses(classes){var className=docElement.className;var classPrefix=Modernizr._config.classPrefix||'';if(isSVG){className=className.baseVal} 20if(Modernizr._config.enableJSClass){var reJS=new RegExp('(^|\\s)'+classPrefix+'no-js(\\s|$)');className=className.replace(reJS,'$1'+classPrefix+'js$2')} 21if(Modernizr._config.enableClasses){className+=' '+classPrefix+classes.join(' '+classPrefix);isSVG?docElement.className.baseVal=className:docElement.className=className}};var hasOwnProp;(function(){var _hasOwnProperty=({}).hasOwnProperty;if(!is(_hasOwnProperty,'undefined')&&!is(_hasOwnProperty.call,'undefined')){hasOwnProp=function(object,property){return _hasOwnProperty.call(object,property)}}else{hasOwnProp=function(object,property){return((property in object)&&is(object.constructor.prototype[property],'undefined'))}}})();ModernizrProto._l={};ModernizrProto.on=function(feature,cb){if(!this._l[feature]){this._l[feature]=[]} 22this._l[feature].push(cb);if(Modernizr.hasOwnProperty(feature)){setTimeout(function(){Modernizr._trigger(feature,Modernizr[feature])},0)}};ModernizrProto._trigger=function(feature,res){if(!this._l[feature]){return} 23var cbs=this._l[feature];setTimeout(function(){var i,cb;for(i=0;i<cbs.length;i++){cb=cbs[i];cb(res)}},0);delete this._l[feature]};function addTest(feature,test){if(typeof feature=='object'){for(var key in feature){if(hasOwnProp(feature,key)){addTest(key,feature[key])}}}else{feature=feature.toLowerCase();var featureNameSplit=feature.split('.');var last=Modernizr[featureNameSplit[0]];if(featureNameSplit.length==2){last=last[featureNameSplit[1]]} 24if(typeof last!='undefined'){return Modernizr} 25test=typeof test=='function'?test():test;if(featureNameSplit.length==1){Modernizr[featureNameSplit[0]]=test}else{if(Modernizr[featureNameSplit[0]]&&!(Modernizr[featureNameSplit[0]]instanceof Boolean)){Modernizr[featureNameSplit[0]]=new Boolean(Modernizr[featureNameSplit[0]])} 26Modernizr[featureNameSplit[0]][featureNameSplit[1]]=test} 27setClasses([(!!test&&test!=!1?'':'no-')+featureNameSplit.join('-')]);Modernizr._trigger(feature,test)} 28return Modernizr} 29Modernizr._q.push(function(){ModernizrProto.addTest=addTest});var html5;if(!isSVG){/** 30 * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 31 */ 32;(function(window,document){var version='3.7.3';var options=window.html5||{};var reSkip=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;var saveClones=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;var supportsHtml5Styles;var expando='_html5shiv';var expanID=0;var expandoData={};var supportsUnknownElements;(function(){try{var a=document.createElement('a');a.innerHTML='<xyz></xyz>';supportsHtml5Styles=('hidden' in a);supportsUnknownElements=a.childNodes.length==1||(function(){(document.createElement)('a');var frag=document.createDocumentFragment();return(typeof frag.cloneNode=='undefined'||typeof frag.createDocumentFragment=='undefined'||typeof frag.createElement=='undefined')}())}catch(e){supportsHtml5Styles=!0;supportsUnknownElements=!0}}());function addStyleSheet(ownerDocument,cssText){var p=ownerDocument.createElement('p'),parent=ownerDocument.getElementsByTagName('head')[0]||ownerDocument.documentElement;p.innerHTML='x<style>'+cssText+'</style>';return parent.insertBefore(p.lastChild,parent.firstChild)} 33function getElements(){var elements=html5.elements;return typeof elements=='string'?elements.split(' '):elements} 34function addElements(newElements,ownerDocument){var elements=html5.elements;if(typeof elements!='string'){elements=elements.join(' ')} 35if(typeof newElements!='string'){newElements=newElements.join(' ')} 36html5.elements=elements+' '+newElements;shivDocument(ownerDocument)} 37function getExpandoData(ownerDocument){var data=expandoData[ownerDocument[expando]];if(!data){data={};expanID++;ownerDocument[expando]=expanID;expandoData[expanID]=data} 38return data} 39function createElement(nodeName,ownerDocument,data){if(!ownerDocument){ownerDocument=document} 40if(supportsUnknownElements){return ownerDocument.createElement(nodeName)} 41if(!data){data=getExpandoData(ownerDocument)} 42var node;
42if(data.cache[nodeName]){node=data.cache[nodeName].cloneNode()}else if(saveClones.test(nodeName)){node=(data.cache[nodeName]=data.createElem(nodeName)).cloneNode()}else{node=data.createElem(nodeName)} 43return node.canHaveChildren&&!reSkip.test(nodeName)&&!node.tagUrn?data.frag.appendChild(node):node} 44function createDocumentFragment(ownerDocument,data){if(!ownerDocument){ownerDocument=document} 45if(supportsUnknownElements){return ownerDocument.createDocumentFragment()} 46data=data||getExpandoData(ownerDocument);var clone=data.frag.cloneNode(),i=0,elems=getElements(),l=elems.length;for(;i<l;i++){clone.createElement(elems[i])} 47return clone} 48function shivMethods(ownerDocument,data){if(!data.cache){data.cache={};data.createElem=ownerDocument.createElement;data.createFrag=ownerDocument.createDocumentFragment;data.frag=data.createFrag()} 49ownerDocument.createElement=function(nodeName){if(!html5.shivMethods){return data.createElem(nodeName)} 50return createElement(nodeName,ownerDocument,data)};ownerDocument.createDocumentFragment=Function('h,f','return function(){'+'var n=f.cloneNode(),c=n.createElement;'+'h.shivMethods&&('+getElements().join().replace(/[\w\-:]+/g,function(nodeName){data.createElem(nodeName);data.frag.createElement(nodeName);return'c("'+nodeName+'")'})+');return n}')(html5,data.frag)} 51function shivDocument(ownerDocument){if(!ownerDocument){ownerDocument=document} 52var data=getExpandoData(ownerDocument);if(html5.shivCSS&&!supportsHtml5Styles&&!data.hasCSS){data.hasCSS=!!addStyleSheet(ownerDocument,'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}'+'mark{background:#FF0;color:#000}'+'template{display:none}')} 53if(!supportsUnknownElements){shivMethods(ownerDocument,data)} 54return ownerDocument} 55var html5={'elements':options.elements||'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video','version':version,'shivCSS':(options.shivCSS!==!1),'supportsUnknownElements':supportsUnknownElements,'shivMethods':(options.shivMethods!==!1),'type':'default','shivDocument':shivDocument,createElement:createElement,createDocumentFragment:createDocumentFragment,addElements:addElements};window.html5=html5;shivDocument(document);var reMedia=/^$|\b(?:all|print)\b/;var shivNamespace='html5shiv';var supportsShivableSheets=!supportsUnknownElements&&(function(){var docEl=document.documentElement;return!(typeof document.namespaces=='undefined'||typeof document.parentWindow=='undefined'||typeof docEl.applyElement=='undefined'||typeof docEl.removeNode=='undefined'||typeof window.attachEvent=='undefined')}());function addWrappers(ownerDocument){var node,nodes=ownerDocument.getElementsByTagName('*'),index=nodes.length,reElements=RegExp('^(?:'+getElements().join('|')+')$','i'),result=[];while(index--){node=nodes[index];if(reElements.test(node.nodeName)){result.push(node.applyElement(createWrapper(node)))}} 56return result} 57function createWrapper(element){var node,nodes=element.attributes,index=nodes.length,wrapper=element.ownerDocument.createElement(shivNamespace+':'+element.nodeName);while(index--){node=nodes[index];node.specified&&wrapper.setAttribute(node.nodeName,node.nodeValue)} 58wrapper.style.cssText=element.style.cssText;return wrapper} 59function shivCssText(cssText){var pair,parts=cssText.split('{'),index=parts.length,reElements=RegExp('(^|[\\s,>+~])('+getElements().join('|')+')(?=[[\\s,>+~#.:]|$)','gi'),replacement='$1'+shivNamespace+'\\:$2';while(index--){pair=parts[index]=parts[index].split('}');pair[pair.length-1]=pair[pair.length-1].replace(reElements,replacement);parts[index]=pair.join('}')} 60return parts.join('{')} 61function removeWrappers(wrappers){var index=wrappers.length;while(index--){wrappers[index].removeNode()}} 62function shivPrint(ownerDocument){var shivedSheet,wrappers,data=getExpandoData(ownerDocument),namespaces=ownerDocument.namespaces,ownerWindow=ownerDocument.parentWindow;if(!supportsShivableSheets||ownerDocument.printShived){return ownerDocument} 63if(typeof namespaces[shivNamespace]=='undefined'){namespaces.add(shivNamespace)} 64function removeSheet(){clearTimeout(data._removeSheetTimer);if(shivedSheet){shivedSheet.removeNode(!0)} 65shivedSheet=null} 66ownerWindow.attachEvent('onbeforeprint',function(){removeSheet();var imports,length,sheet,collection=ownerDocument.styleSheets,cssText=[],index=collection.length,sheets=Array(index);while(index--){sheets[index]=collection[index]} 67while((sheet=sheets.pop())){if(!sheet.disabled&&reMedia.test(sheet.media)){try{imports=sheet.imports;length=imports.length}catch(er){length=0} 68for(index=0;index<length;index++){sheets.push(imports[index])} 69try{cssText.push(sheet.cssText)}catch(er){}}} 70cssText=shivCssText(cssText.reverse().join(''));wrappers=addWrappers(ownerDocument);shivedSheet=addStyleSheet(ownerDocument,cssText)});ownerWindow.attachEvent('onafterprint',function(){removeWrappers(wrappers);clearTimeout(data._removeSheetTimer);data._removeSheetTimer=setTimeout(removeSheet,500)});ownerDocument.printShived=!0;return ownerDocument} 71html5.type+=' print';html5.shivPrint=shivPrint;shivPrint(document);if(typeof module=='object'&&module.exports){module.exports=html5}}(typeof window!=="undefined"?window:this,document))};var err=function(){};var warn=function(){};if(window.console){err=function(){var method=console.error?'error':'log';window.console[method].apply(window.console,Array.prototype.slice.call(arguments))};warn=function(){var method=console.warn?'warn':'log';window.console[method].apply(window.console,Array.prototype.slice.call(arguments))}} 72ModernizrProto.load=function(){if('yepnope' in window){warn('yepnope.js (aka Modernizr.load) is no longer included as part of Modernizr. yepnope appears to be available on the page, so weâll use it to handle this call to Modernizr.load, but please update your co
72de to use yepnope directly.\n See http://github.com/Modernizr/Modernizr/issues/1182 for more information.');window.yepnope.apply(window,[].slice.call(arguments,0))}else{err('yepnope.js (aka Modernizr.load) is no longer included as part of Modernizr. Get it from http://yepnopejs.com. See http://github.com/Modernizr/Modernizr/issues/1182 for more information.')}};function createElement(){if(typeof document.createElement!=='function'){return document.createElement(arguments[0])}else if(isSVG){return document.createElementNS.call(document,'http://www.w3.org/2000/svg',arguments[0])}else{return document.createElement.apply(document,arguments)}};function getBody(){var body=document.body;if(!body){body=createElement(isSVG?'svg':'body');body.fake=!0} 73return body};function injectElementWithStyles(rule,callback,nodes,testnames){var mod='modernizr';var style;var ret;var node;var docOverflow;var div=createElement('div');var body=getBody();if(parseInt(nodes,10)){while(nodes--){node=createElement('div');node.id=testnames?testnames[nodes]:mod+(nodes+1);div.appendChild(node)}} 74style=createElement('style');style.type='text/css';style.id='s'+mod;(!body.fake?div:body).appendChild(style);body.appendChild(div);if(style.styleSheet){style.styleSheet.cssText=rule}else{style.appendChild(document.createTextNode(rule))} 75div.id=mod;if(body.fake){body.style.background='';body.style.overflow='hidden';docOverflow=docElement.style.overflow;docElement.style.overflow='hidden';docElement.appendChild(body)} 76ret=callback(div,rule);if(body.fake){body.parentNode.removeChild(body);docElement.style.overflow=docOverflow;docElement.offsetHeight}else{div.parentNode.removeChild(div)} 77return!!ret};var mq=(function(){var matchMedia=window.matchMedia||window.msMatchMedia;if(matchMedia){return function(mq){var mql=matchMedia(mq);return mql&&mql.matches||!1}} 78return function(mq){var bool=!1;injectElementWithStyles('@media '+mq+' { #modernizr { position: absolute; } }',function(node){bool=(window.getComputedStyle?window.getComputedStyle(node,null):node.currentStyle).position=='absolute'});return bool}})();ModernizrProto.mq=mq; 79/*! 80{ 81 "name": "CSS rgba", 82 "caniuse": "css3-colors", 83 "property": "rgba", 84 "tags": ["css"], 85 "notes": [{ 86 "name": "CSSTricks Tutorial", 87 "href": "https://css-tricks.com/rgba-browser-support/" 88 }] 89} 90!*/ 91Modernizr.addTest('rgba',function(){var style=createElement('a').style;style.cssText='background-color:rgba(150,255,150,.5)';return(''+style.backgroundColor).indexOf('rgba')>-1});var omPrefixes='Moz O ms Webkit';var cssomPrefixes=(ModernizrProto._config.usePrefixes?omPrefixes.split(' '):[]);ModernizrProto._cssomPrefixes=cssomPrefixes;function contains(str,substr){return!!~(''+str).indexOf(substr)};var modElem={elem:createElement('modernizr')};Modernizr._q.push(function(){delete modElem.elem});var mStyle={style:modElem.elem.style};Modernizr._q.unshift(function(){delete mStyle.style});function domToCSS(name){return name.replace(/([A-Z])/g,function(str,m1){return'-'+m1.toLowerCase()}).replace(/^ms-/,'-ms-')};function nativeTestProps(props,value){var i=props.length;if('CSS' in window&&'supports' in window.CSS){while(i--){if(window.CSS.supports(domToCSS(props[i]),value)){return!0}} 92return!1}else if('CSSSupportsRule' in window){var conditionText=[];while(i--){conditionText.push('('+domToCSS(props[i])+':'+value+')')} 93conditionText=conditionText.join(' or ');return injectElementWithStyles('@supports ('+conditionText+') { #modernizr { position: absolute; } }',function(node){return getComputedStyle(node,null).position=='absolute'})} 94return undefined};function cssToDOM(name){return name.replace(/([a-z])-([a-z])/g,function(str,m1,m2){return m1+m2.toUpperCase()}).replace(/^-/,'')};function testProps(props,prefixed,value,skipValueTest){skipValueTest=is(skipValueTest,'undefined')?!1:skipValueTest;if(!is(value,'undefined')){var result=nativeTestProps(props,value);if(!is(result,'undefined')){return result}} 95var afterInit,i,propsLength,prop,before;var elems=['modernizr','tspan'];while(!mStyle.style){afterInit=!0;mStyle.modElem=createElement(elems.shift());mStyle.style=mStyle.modElem.style} 96function cleanElems(){if(afterInit){delete mStyle.style;delete mStyle.modElem}} 97propsLength=props.length;for(i=0;i<propsLength;i++){prop=props[i];before=mStyle.style[prop];if(contains(prop,'-')){prop=cssToDOM(prop)} 98if(mStyle.style[prop]!==undefined){if(!skipValueTest&&!is(value,'undefined')){try{mStyle.style[prop]=value}catch(e){} 99if(mStyle.style[prop]!=before){cleanElems();return prefixed=='pfx'?prop:!0}}else{cleanElems();return prefixed=='pfx'?prop:!0}}} 100cleanElems();return!1};var domPrefixes=(ModernizrProto._config.usePrefixes?omPrefixes.toLowerCase().split(' '):[]);ModernizrProto._domPrefixes=domPrefixes;function fnBind(fn,that){return function(){return fn.apply(that,arguments)}};function testDOMProps(props,obj,elem){var item;for(var i in props){if(props[i]in obj){if(elem===!1){return props[i]} 101item=obj[props[i]];if(is(item,'function')){return fnBind(item,elem||obj)} 102return item}} 103return!1};function testPropsAll(prop,prefixed,elem,value,skipValueTest){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+' '+cssomPrefixes.join(ucPro
103p+' ')+ucProp).split(' ');if(is(prefixed,'string')||is(prefixed,'undefined')){return testProps(props,prefixed,value,skipValueTest)}else{props=(prop+' '+(domPrefixes).join(ucProp+' ')+ucProp).split(' ');return testDOMProps(props,prefixed,elem)}} 104ModernizrProto.testAllProps=testPropsAll;function testAllProps(prop,value,skipValueTest){return testPropsAll(prop,undefined,undefined,value,skipValueTest)} 105ModernizrProto.testAllProps=testAllProps; 106/*! 107{ 108 "name": "Flexbox", 109 "property": "flexbox", 110 "caniuse": "flexbox", 111 "tags": ["css"], 112 "notes": [{ 113 "name": "The _new_ flexbox", 114 "href": "http://dev.w3.org/csswg/css3-flexbox" 115 }], 116 "warnings": [ 117 "A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect." 118 ] 119} 120!*/ 121Modernizr.addTest('flexbox',testAllProps('flexBasis','1px',!0)); 122/*! 123{ 124 "name": "Flexbox (legacy)", 125 "property": "flexboxlegacy", 126 "tags": ["css"], 127 "polyfills": ["flexie"], 128 "notes": [{ 129 "name": "The _old_ flexbox", 130 "href": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/" 131 }] 132} 133!*/ 134Modernizr.addTest('flexboxlegacy',testAllProps('boxDirection','reverse',!0));var prefixes=(ModernizrProto._config.usePrefixes?' -webkit- -moz- -o- -ms- '.split(' '):[]);ModernizrProto._prefixes=prefixes;var testStyles=ModernizrProto.testStyles=injectElementWithStyles; 135/*! 136{ 137 "name": "Touch Events", 138 "property": "touchevents", 139 "caniuse" : "touch", 140 "tags": ["media", "attribute"], 141 "notes": [{ 142 "name": "Touch Events spec", 143 "href": "https://www.w3.org/TR/2013/WD-touch-events-20130124/" 144 }], 145 "warnings": [ 146 "Indicates if the browser supports the Touch Events spec, and does not necessarily reflect a touchscreen device" 147 ], 148 "knownBugs": [ 149 "False-positive on some configurations of Nokia N900", 150 "False-positive on some BlackBerry 6.0 builds â https://github.com/Modernizr/Modernizr/issues/372#issuecomment-3112695" 151 ] 152} 153!*/ 154Modernizr.addTest('touchevents',function(){var bool;if(('ontouchstart' in window)||window.DocumentTouch&&document instanceof DocumentTouch){bool=!0}else{var query=['@media (',prefixes.join('touch-enabled),('),'heartz',')','{#modernizr{top:9px;position:absolute}}'].join('');testStyles(query,function(node){bool=node.offsetTop===9})} 155return bool});var atRule=function(prop){var length=prefixes.length;var cssrule=window.CSSRule;var rule;if(typeof cssrule==='undefined'){return undefined} 156if(!prop){return!1} 157prop=prop.replace(/^@/,'');rule=prop.replace(/-/g,'_').toUpperCase()+'_RULE';if(rule in cssrule){return'@'+prop} 158for(var i=0;i<length;i++){var prefix=prefixes[i];var thisRule=prefix.toUpperCase()+'_'+rule;if(thisRule in cssrule){return'@-'+prefix.toLowerCase()+'-'+prop}} 159return!1};ModernizrProto.atRule=atRule;var prefixed=ModernizrProto.prefixed=function(prop,obj,elem){if(prop.indexOf('@')===0){return atRule(prop)} 160if(prop.indexOf('-')!=-1){prop=cssToDOM(prop)} 161if(!obj){return testPropsAll(prop,'pfx')}else{return testPropsAll(prop,obj,elem)}}; 162/*! 163{ 164 "name": "matchMedia", 165 "property": "matchmedia", 166 "caniuse" : "matchmedia", 167 "tags": ["matchmedia"], 168 "authors": ["Alberto Elias"], 169 "notes": [{ 170 "name": "W3C CSSOM View Module", 171 "href": "https://drafts.csswg.org/cssom-view/#the-mediaquerylist-interface" 172 }, { 173 "name": "MDN documentation", 174 "href": "https://developer.mozilla.org/en-US/docs/Web/API/Window.matchMedia" 175 }], 176 "polyfills": ["matchmediajs"] 177} 178!*/ 179Modernizr.addTest('matchmedia',!!prefixed('matchMedia',window));testRunner();setClasses(classes);delete ModernizrProto.addTest;delete ModernizrProto.addAsyncTest;for(var i=0;i<Modernizr._q.length;i++){Modernizr._q[i]()} 180window.Modernizr=Modernizr})(window,document)
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.