1/*! 2 * modernizr v3.11.4 3 * Build https://modernizr.com/download?-checked-contains-cors-fetch-flexbox-flexboxlegacy-hidden-input-json-opacity-performance-proxy-shapes-srcset-target-time-setclasses-shiv-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 * Veeck 14 15 * MIT License 16 */ 17!function(scriptGlobalObject,window,document,undefined){var tests=[],ModernizrProto={_version:"3.11.4",_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})}},Modernizr=function(){};Modernizr.prototype=ModernizrProto;var Modernizr=new Modernizr,classes=[];function is(obj,type){return typeof obj===type}function testRunner(){var featureNames,feature,aliasIdx,result,nameIdx,featureNameSplit,featureNameSplit,featureIdx;for(featureIdx in tests)if(tests.hasOwnProperty(featureIdx)){if(featureNames=[],feature=tests[featureIdx],feature.name&&(featureNames.push(feature.name.toLowerCase()),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());for(result=is(feature.fn,"function")?feature.fn():feature.fn,nameIdx=0;nameIdx<featureNames.length;nameIdx++)featureNameSplit=featureNames[nameIdx],featureNameSplit=featureNameSplit.split("."),1===featureNameSplit.length?Modernizr[featureNameSplit[0]]=result:(Modernizr[featureNameSplit[0]]&&(!Modernizr[featureNameSplit[0]]||Modernizr[featureNameSplit[0]]instanceof Boolean)||(Modernizr[featureNameSplit[0]]=new Boolean(Modernizr[featureNameSplit[0]])),Modernizr[featureNameSplit[0]][featureNameSplit[1]]=result),classes.push((result?"":"no-")+featureNameSplit.join("-"))}}var docElement=document.documentElement,isSVG="svg"===docElement.nodeName.toLowerCase(),html5;function setClasses(classes){var className=docElement.className,classPrefix=Modernizr._config.classPrefix||"",reJS,className;isSVG&&(className=className.baseVal),Modernizr._config.enableJSClass&&(reJS=new RegExp("(^|\\s)"+classPrefix+"no-js(\\s|$)"),className=className.replace(reJS,"$1"+classPrefix+"js$2")),Modernizr._config.enableClasses&&(0<classes.length&&(className+=" "+classPrefix+classes.join(" "+classPrefix)),isSVG?docElement.className.baseVal=className:docElement.className=className)}isSVG||function(window,document){var version="3.7.3",options=window.html5||{},reSkip=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,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,supportsHtml5Styles,expando="_html5shiv",expanID=0,expandoData={},supportsUnknownElements;function addStyleSheet(parent,cssText){var p=parent.createElement("p"),parent=parent.getElementsByTagName("head")[0]||parent.documentElement;return p.innerHTML="x<style>"+cssText+"</style>",parent.insertBefore(p.lastChild,parent.firstChild)}function getElements(){var elements=html5.elements;return"string"==typeof elements?elements.split(" "):elements}function addElements(newElements,ownerDocument){var elements=html5.elements;"string"!=typeof elements&&(elements=elements.join(" ")),"string"!=typeof newElements&&(newElements=newElements.join(" ")),html5.elements=elements+" "+newElements,shivDocument(ownerDocument)}function getExpandoData(ownerDocument){var data=expandoData[ownerDocument[expando]];return data||(data={},expanID++,ownerDocument[expando]=expanID,expandoData[expanID]=data),data}function createElement(nodeName,node,data){if(node=node||document,supportsUnknownElements)return node.createElement(nodeName);var node;return data=data||getExpandoData(node),node=data.cache[nodeName]?data.cache[nodeName].cloneNode():saveClones.test(nodeName)?(data.cache[nodeName]=data.createElem(nodeName)).cloneNode():data.createElem(nodeName),!node.canHaveChildren||reSkip.test(nodeName)||node.tagUrn?node:data.frag.appendChild(node)}function createDocumentFragment(ownerDocument,data){if(ownerDocument=ownerDocument||document,supportsUnknownElements)return ownerDocument.createDocumentFragment();data=data||getExpandoData(ownerDocument);for(var clone=data.frag.cloneNode(),i=0,elems=getElements(),l=elems.length;i<l;i++)clone.createElement(elems[i]);return clone}function shivMethods(ownerDocument,data){data.cache||(data.cache={},data.createElem=ownerDocument.createElement,data.createFrag=ownerDocument.createDocumentFragment,data.frag=data.createFrag()),ownerDocument.createElement=function(nodeName){if(!html5.shivMethods)return data.createElem(nodeName);return 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){return data.createElem(nodeName),data.frag.createElement(nodeName),'c("'+nodeName+'")'})+");return n}")(html5,data.frag)}function shivDocument(ownerDocument){ownerDocument=ownerDocument||document;var data=getExpandoData(ownerDocument);return!html5.shivCSS||supportsHtml5Styles||data.hasCSS||(data.hasCSS=!!addStyleSheet(ownerDocument,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{dis
17play:block}mark{background:#FF0;color:#000}template{display:none}")),supportsUnknownElements||shivMethods(ownerDocument,data),ownerDocument}!function(){try{var a=document.createElement("a");a.innerHTML="<xyz></xyz>",supportsHtml5Styles="hidden"in a,supportsUnknownElements=1==a.childNodes.length||function(){document.createElement("a");var frag=document.createDocumentFragment();return void 0===frag.cloneNode||void 0===frag.createDocumentFragment||void 0===frag.createElement}()}catch(e){supportsHtml5Styles=!0,supportsUnknownElements=!0}}();var 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:"3.7.3",shivCSS:!1!==options.shivCSS,supportsUnknownElements:supportsUnknownElements,shivMethods:!1!==options.shivMethods,type:"default",shivDocument:shivDocument,createElement:createElement,createDocumentFragment:createDocumentFragment,addElements:addElements};window.html5=html5,shivDocument(document),"object"==typeof module&&module.exports&&(module.exports=html5)}(void 0!==window?window:this,document);var prefixed="Moz O ms Webkit",cssomPrefixes=ModernizrProto._config.usePrefixes?prefixed.split(" "):[];function contains(str,substr){return~(""+str).indexOf(substr)}function createElement(){return"function"!=typeof document.createElement?document.createElement(arguments[0]):isSVG?document.createElementNS.call(document,"http://www.w3.org/2000/svg",arguments[0]):document.createElement.apply(document,arguments)}ModernizrProto._cssomPrefixes=cssomPrefixes;var modElem={elem:createElement("modernizr")};Modernizr._q.push(function(){delete modElem.elem});var mStyle={style:modElem.elem.style};function getBody(){var body=document.body;return body||(body=createElement(isSVG?"svg":"body"),body.fake=!0),body}function injectElementWithStyles(ret,callback,nodes,testnames){var mod="modernizr",style,ret,node,docOverflow,div=createElement("div"),body=getBody();if(parseInt(nodes,10))for(;nodes--;)node=createElement("div"),node.id=testnames?testnames[nodes]:mod+(nodes+1),div.appendChild(node);return style=createElement("style"),style.type="text/css",style.id="s"+mod,(body.fake?body:div).appendChild(style),body.appendChild(div),style.styleSheet?style.styleSheet.cssText=ret:style.appendChild(document.createTextNode(ret)),div.id=mod,body.fake&&(body.style.background="",body.style.overflow="hidden",docOverflow=docElement.style.overflow,docElement.style.overflow="hidden",docElement.appendChild(body)),ret=callback(div,ret),body.fake?(body.parentNode.removeChild(body),docElement.style.overflow=docOverflow,docElement.offsetHeight):div.parentNode.removeChild(div),!!ret}function domToCSS(name){return name.replace(/([A-Z])/g,function(str,m1){return"-"+m1.toLowerCase()}).replace(/^ms-/,"-ms-")}function computedStyle(elem,pseudo,prop){var result,result,console,method;return"getComputedStyle"in window?(result=getComputedStyle.call(window,elem,pseudo),console=window.console,null!==result?prop&&(result=result.getPropertyValue(prop)):console&&(method=console.error?"error":"log",console[method].call(console,"getComputedStyle returning null, its possible modernizr test results are inaccurate"))):result=!pseudo&&elem.currentStyle&&elem.currentStyle[prop],result}function nativeTestProps(props,value){var i=props.length;if("CSS"in window&&"supports"in window.CSS){for(;i--;)if(window.CSS.supports(domToCSS(props[i]),value))return!0;return!1}if("CSSSupportsRule"in window){for(var conditionText=[];i--;)conditionText.push("("+domToCSS(props[i])+":"+value+")");return conditionText=conditionText.join(" or "),injectElementWithStyles("@supports ("+conditionText+") { #modernizr { position: absolute; } }",function(node){return"absolute"===computedStyle(node,null,"position")})}return 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){if(skipValueTest=void 0!==skipValueTest&&skipValueTest,void 0!==value){var result=nativeTestProps(props,value);if(void 0!==result)return result}for(var afterInit,i,propsLength,prop,before,elems=["modernizr","tspan","samp"];!mStyle.style&&elems.length;)afterInit=!0,mStyle.modElem=createElement(elems.shift()),mStyle.style=mStyle.modElem.style;function cleanElems(){afterInit&&(delete mStyle.style,delete mStyle.modElem)}for(propsLength=props.length,i=0;i<propsLength;i++)if(prop=props[i],before=mStyle.style[prop],contains(prop,"-")&&(prop=cssToDOM(prop)),mStyle.style[prop]!==undefined){if(skipValueTest||void 0===value)return cleanElems(),"pfx"!==prefixed||prop;try{mStyle.style[prop]=value}catch(e){}if(mStyle.style[prop]!==before)return cleanElems(),"pfx"!==prefixed||prop}return cleanElems(),!1}Modernizr._q.unshift(function(){delete mStyle.style});var domPrefixes=ModernizrProto._config.usePrefixes?prefixed.toLowerCase().split(" "):[];function fnBind(fn,that){return function(){return fn.apply(that,arguments)}}function testDOMProps(props,obj,elem){var item,i;for(i in props)if(props[i]in obj){if(!1===elem)return props[i];if(item=obj[props[i]],is(item,"function"))return fnBind(item,elem||obj);return item}return!1}function testPropsAll(prop,prefixed,elem,value,skipValueTest){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+" "+cssomPrefixes.join(ucPro
17p+" ")+ucProp).split(" ");return is(prefixed,"string")||void 0===prefixed?testProps(props,prefixed,value,skipValueTest):(props=(prop+" "+domPrefixes.join(ucProp+" ")+ucProp).split(" "),testDOMProps(props,prefixed,elem))}function testAllProps(prop,value,skipValueTest){return testPropsAll(prop,undefined,undefined,value,skipValueTest)}ModernizrProto._domPrefixes=domPrefixes,ModernizrProto.testAllProps=testPropsAll,ModernizrProto.testAllProps=testAllProps, 18/*! 19{ 20 "name": "Flexbox", 21 "property": "flexbox", 22 "caniuse": "flexbox", 23 "tags": ["css"], 24 "notes": [{ 25 "name": "The _new_ flexbox", 26 "href": "https://www.w3.org/TR/css-flexbox-1/" 27 }], 28 "warnings": [ 29 "A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect." 30 ] 31} 32!*/ 33Modernizr.addTest("flexbox",testAllProps("flexBasis","1px",!0)), 34/*! 35{ 36 "name": "Flexbox (legacy)", 37 "property": "flexboxlegacy", 38 "tags": ["css"], 39 "polyfills": ["flexie"], 40 "notes": [{ 41 "name": "The _old_ flexbox", 42 "href": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/" 43 }] 44} 45!*/ 46Modernizr.addTest("flexboxlegacy",testAllProps("boxDirection","reverse",!0)), 47/*! 48{ 49 "name": "CSS Shapes", 50 "property": "shapes", 51 "tags": ["css"], 52 "notes": [{ 53 "name": "W3C Spec", 54 "href": "https://www.w3.org/TR/css-shapes" 55 }, { 56 "name": "Examples from Adobe", 57 "href": "https://web.archive.org/web/20171230010236/http://webplatform.adobe.com:80/shapes" 58 }, { 59 "name": "Examples from CSS-Tricks", 60 "href": "https://css-tricks.com/examples/ShapesOfCSS/" 61 }] 62} 63!*/ 64Modernizr.addTest("shapes",testAllProps("shapeOutside","content-box",!0)), 65/*! 66{ 67 "name": "srcset attribute", 68 "property": "srcset", 69 "caniuse": "srcset", 70 "tags": ["image"], 71 "notes": [{ 72 "name": "Smashing Magazine Article", 73 "href": "https://www.smashingmagazine.com/2013/08/webkit-implements-srcset-and-why-its-a-good-thing/" 74 }, { 75 "name": "Generate multi-resolution images for srcset with Grunt", 76 "href": "https://addyosmani.com/blog/generate-multi-resolution-images-for-srcset-with-grunt/" 77 }] 78} 79!*/ 80Modernizr.addTest("srcset","srcset"in createElement("img")), 81/*! 82{ 83 "name": "Cross-Origin Resource Sharing", 84 "property": "cors", 85 "caniuse": "cors", 86 "authors": ["Theodoor van Donge"], 87 "notes": [{ 88 "name": "MDN Docs", 89 "href": "https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS" 90 }], 91 "polyfills": ["pmxdr", "ppx", "flxhr"] 92} 93!*/ 94Modernizr.addTest("cors","XMLHttpRequest"in window&&"withCredentials"in new XMLHttpRequest);var inputElem=createElement("input"),prefixed="autocomplete autofocus list placeholder max min multiple pattern required step".split(" "),attrs={}; 95/*! 96{ 97 "name": "Input attributes", 98 "property": "input", 99 "tags": ["forms"], 100 "authors": ["Mike Taylor"], 101 "notes": [{ 102 "name": "WHATWG Spec", 103 "href": "https://html.spec.whatwg.org/multipage/input.html#input-type-attr-summary" 104 }], 105 "knownBugs": ["Some blackberry devices report false positive for input.multiple"] 106} 107!*/Modernizr.input=function(props){for(var i=0,len=props.length;i<len;i++)attrs[props[i]]=!!(props[i]in inputElem);return attrs.list&&(attrs.list=!(!createElement("datalist")||!window.HTMLDataListElement)),attrs}(prefixed), 108/*! 109{ 110 "name": "JSON", 111 "property": "json", 112 "caniuse": "json", 113 "notes": [{ 114 "name": "MDN Docs", 115 "href": "https://developer.mozilla.org/en-US/docs/Glossary/JSON" 116 }], 117 "polyfills": ["json2"] 118} 119!*/ 120Modernizr.addTest("json","JSON"in window&&"parse"in JSON&&"stringify"in JSON);var atRule=function(prop){var length=prefixes.length,cssrule=window.CSSRule,rule;if(void 0===cssrule)return undefined;if(!prop)return!1;if(prop=prop.replace(/^@/,""),rule=prop.replace(/-/g,"_").toUpperCase()+"_RULE",rule in cssrule)return"@"+prop;for(var i=0;i<length;i++){var prefix=prefixes[i],thisRule=prefix.toUpperCase()+"_"+rule;if(thisRule in cssrule)return"@-"+prefix.toLowerCase()+"-"+prop}return!1};ModernizrProto.atRule=atRule;var prefixed=ModernizrProto.prefixed=function(prop,obj,elem){if(0===prop.indexOf("@"))return atRule(prop);return-1!==prop.indexOf("-")&&(prop=cssToDOM(prop)),obj?testPropsAll(prop,obj,elem):testPropsAll(prop,"pfx")}; 121/*! 122{ 123 "name": "Navigation Timing API", 124 "property": "performance", 125 "caniuse": "nav-timing", 126 "tags": ["performance"], 127 "authors": ["Scott Murphy (@uxder)"], 128 "notes": [{ 129 "name": "W3C Spec", 130 "href": "https://www.w3.org/TR/navigation-timing/" 131 }, { 132 "name": "HTML5 Rocks Tutorial", 133 "href": "https://www.html5rocks.com/en/tutorials/webperformance/basics/" 134 }], 135 "polyfills": ["perfnow"] 136} 137!*/Modernizr.addTest("performance",!!prefixed("performance",window)), 138/*! 139{ 140 "name": "Proxy Object", 141 "property": "proxy", 142 "caniuse": "proxy", 143 "authors": ["Brock Beaudry"], 144 "notes": [{ 145 "name": "MDN Docs", 146 "href": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy" 147 }], 148 "polyfills": [ 149 "harmony-reflect" 150 ] 151} 152!*/ 153Modernizr.addTest("proxy","Proxy"in window);var testStyles=ModernizrProto.testStyles=injectElementWithStyles; 154/*! 155{ 156 "name": "CSS :checked pseudo-selector", 157 "caniuse": "css-sel3", 158 "property": "checked", 159 "tags": ["css"], 160 "notes": [{ 161 "name": "Related Github Issue", 162 "href": "https://github.com/Modernizr/Modernizr/pull/879" 163 }] 164} 165!*/Modernizr.addTest("checked",function(){return testStyles("#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;
165display:block}",function(elem){var cb=createElement("input");return cb.setAttribute("type","checkbox"),cb.setAttribute("checked","checked"),elem.appendChild(cb),20===cb.offsetLeft})});var prefixes=ModernizrProto._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""];ModernizrProto._prefixes=prefixes, 166/*! 167{ 168 "name": "CSS Opacity", 169 "caniuse": "css-opacity", 170 "property": "opacity", 171 "tags": ["css"] 172} 173!*/ 174Modernizr.addTest("opacity",function(){var style=createElement("a").style;return style.cssText=prefixes.join("opacity:.55;"),/^0.55$/.test(style.opacity)}), 175/*! 176{ 177 "name": "CSS :target pseudo-class", 178 "caniuse": "css-sel3", 179 "property": "target", 180 "tags": ["css"], 181 "notes": [{ 182 "name": "MDN Docs", 183 "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/:target" 184 }], 185 "authors": ["@zachleat"], 186 "warnings": ["Opera Mini supports :target but doesn't update the hash for anchor links."] 187} 188!*/ 189Modernizr.addTest("target",function(){var doc=window.document;if(!("querySelectorAll"in doc))return!1;try{return doc.querySelectorAll(":target"),!0}catch(e){return!1}}), 190/*! 191{ 192 "name": "[hidden] Attribute", 193 "property": "hidden", 194 "tags": ["dom"], 195 "notes": [{ 196 "name": "WHATWG Spec", 197 "href": "https://html.spec.whatwg.org/dev/interaction.html#the-hidden-attribute" 198 }, { 199 "name": "original implementation of detect code", 200 "href": "https://github.com/aFarkas/html5shiv/blob/bf4fcc4/src/html5shiv.js#L38" 201 }], 202 "polyfills": ["html5shiv"], 203 "authors": ["Ron Waldon (@jokeyrhyme)"] 204} 205!*/ 206Modernizr.addTest("hidden","hidden"in createElement("a")), 207/*! 208{ 209 "name": "time Element", 210 "property": "time", 211 "tags": ["elem"], 212 "builderAliases": ["elem_time"], 213 "notes": [{ 214 "name": "WHATWG Spec", 215 "href": "https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-time-element" 216 }] 217} 218!*/ 219Modernizr.addTest("time","valueAsDate"in createElement("time")), 220/*! 221{ 222 "name": "ES5 String.prototype.contains", 223 "property": "contains", 224 "authors": ["Robert Kowalski"], 225 "tags": ["es6"] 226} 227!*/ 228Modernizr.addTest("contains",is(String.prototype.contains,"function")), 229/*! 230{ 231 "name": "Fetch API", 232 "property": "fetch", 233 "tags": ["network"], 234 "caniuse": "fetch", 235 "notes": [{ 236 "name": "WHATWG Spec", 237 "href": "https://fetch.spec.whatwg.org/" 238 }], 239 "polyfills": ["fetch"] 240} 241!*/ 242Modernizr.addTest("fetch","fetch"in window),testRunner(),setClasses(classes),delete ModernizrProto.addTest,delete ModernizrProto.addAsyncTest;for(var i=0;i<Modernizr._q.length;i++)Modernizr._q[i]();scriptGlobalObject.Modernizr=Modernizr}(window,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.