entdecke.wikipedia.de/assets/js/compat/modernizr.js

306 lines
24 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* modernizr v3.5.0
* Build https://modernizr.com/download?-audio-audioloop-csscolumns-cssvhunit-cssvmaxunit-cssvminunit-cssvwunit-filereader-flexbox-fullscreen-geolocation-hashchange-history-input-inputtypes-touchevents-video-webaudio-addtest-atrule-domprefixes-hasevent-mq-prefixed-prefixedcss-prefixedcssvalue-prefixes-testallprops-testprop-dontmin
*
* Copyright (c)
* Faruk Ates
* Paul Irish
* Alex Sexton
* Ryan Seddon
* Patrick Kettner
* Stu Cox
* Richard Herrera
* MIT License
*/
(function(window,document,undefined){var tests=[];var ModernizrProto={_version:"3.5.0",_config:{classPrefix:"",enableClasses:true,enableJSClass:true,usePrefixes:true},_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();
/*
{
"name": "Geolocation API",
"property": "geolocation",
"caniuse": "geolocation",
"tags": ["media"],
"notes": [{
"name": "MDN documentation",
"href": "https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation"
}],
"polyfills": [
"joshuabell-polyfill",
"webshims",
"geo-location-javascript",
"geolocation-api-polyfill"
]
}
!*/
Modernizr.addTest("geolocation","geolocation" in navigator);
/*
{
"name": "History API",
"property": "history",
"caniuse": "history",
"tags": ["history"],
"authors": ["Hay Kranen", "Alexander Farkas"],
"notes": [{
"name": "W3C Spec",
"href": "https://www.w3.org/TR/html51/browsers.html#the-history-interface"
}, {
"name": "MDN documentation",
"href": "https://developer.mozilla.org/en-US/docs/Web/API/window.history"
}],
"polyfills": ["historyjs", "html5historyapi"]
}
!*/
Modernizr.addTest("history",function(){var ua=navigator.userAgent;if((ua.indexOf("Android 2.")!==-1||(ua.indexOf("Android 4.0")!==-1))&&ua.indexOf("Mobile Safari")!==-1&&ua.indexOf("Chrome")===-1&&ua.indexOf("Windows Phone")===-1&&location.protocol!=="file:"){return false}return(window.history&&"pushState" in window.history)});
/*
{
"name": "Web Audio API",
"property": "webaudio",
"caniuse": "audio-api",
"polyfills": ["xaudiojs", "dynamicaudiojs", "audiolibjs"],
"tags": ["audio", "media"],
"builderAliases": ["audio_webaudio_api"],
"authors": ["Addy Osmani"],
"notes": [{
"name": "W3 Specification",
"href": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html"
}]
}
!*/
Modernizr.addTest("webaudio",function(){var prefixed="webkitAudioContext" in window;var unprefixed="AudioContext" in window;if(Modernizr._config.usePrefixes){return prefixed||unprefixed}return unprefixed});
/*
{
"name": "File API",
"property": "filereader",
"caniuse": "fileapi",
"notes": [{
"name": "W3C Working Draft",
"href": "https://www.w3.org/TR/FileAPI/"
}],
"tags": ["file"],
"builderAliases": ["file_api"],
"knownBugs": ["Will fail in Safari 5 due to its lack of support for the standards defined FileReader object"]
}
!*/
Modernizr.addTest("filereader",!!(window.File&&window.FileList&&window.FileReader));var prefixes=(ModernizrProto._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""]);ModernizrProto._prefixes=prefixes;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())}}}result=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]])}Modernizr[featureNameSplit[0]][featureNameSplit[1]]=result}classes.push((result?"":"no-")+featureNameSplit.join("-"))}}}}var omPrefixes="Moz O ms Webkit";var domPrefixes=(ModernizrProto._config.usePrefixes?omPrefixes.toLowerCase().split(" "):[]);ModernizrProto._domPrefixes=domPrefixes;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"))}}})();var cssomPrefixes=(ModernizrProto._config.usePrefixes?omPrefixes.split(" "):[]);ModernizrProto._cssomPrefixes=cssomPrefixes;var atRule=function(prop){var length=prefixes.length;var cssrule=window.CSSRule;var rule;if(typeof cssrule==="undefined"){return undefined}if(!prop){return false}prop=prop.replace(/^@/,"");rule=prop.replace(/-/g,"_").toUpperCase()+"_RULE";if(rule in cssrule){return"@"+prop}for(var i=0;i<length;i++){var prefix=prefixes[i];var thisRule=prefix.toUpperCase()+"_"+rule;if(thisRule in cssrule){return"@-"+prefix.toLowerCase()+"-"+prop}}return false};ModernizrProto.atRule=atRule;function cssToDOM(name){return name.replace(/([a-z])-([a-z])/g,function(str,m1,m2){return m1+m2.toUpperCase()}).replace(/^-/,"")}function domToCSS(name){return name.replace(/([A-Z])/g,function(str,m1){return"-"+m1.toLowerCase()}).replace(/^ms-/,"-ms-")}var docElement=document.documentElement;function computedStyle(elem,pseudo,prop){var result;if("getComputedStyle" in window){result=getComputedStyle.call(window,elem,pseudo);var console=window.console;if(result!==null){if(prop){result=result.getPropertyValue(prop)}}else{if(console){var method=console.error?"error":"log";console[method].call(console,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}}else{result=!pseudo&&elem.currentStyle&&elem.currentStyle[prop]}return result}function roundedEquals(a,b){return a-1===b||a===b||a+1===b}var isSVG=docElement.nodeName.toLowerCase()==="svg";function setClasses(classes){var className=docElement.className;var classPrefix=Modernizr._config.classPrefix||"";if(isSVG){className=className.baseVal}if(Modernizr._config.enableJSClass){var reJS=new RegExp("(^|\\s)"+classPrefix+"no-js(\\s|$)");className=className.replace(reJS,"$1"+classPrefix+"js$2")}if(Modernizr._config.enableClasses){className+=" "+classPrefix+classes.join(" "+classPrefix);if(isSVG){docElement.className.baseVal=className}else{docElement.className=className}}}ModernizrProto._l={};ModernizrProto.on=function(feature,cb){if(!this._l[feature]){this._l[feature]=[]}this._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}var 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]]}if(typeof last!="undefined"){return Modernizr}test=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]])}Modernizr[featureNameSplit[0]][featureNameSplit[1]]=test}setClasses([(!!test&&test!=false?"":"no-")+featureNameSplit.join("-")]);Modernizr._trigger(feature,test)}return Modernizr}Modernizr._q.push(function(){ModernizrProto.addTest=addTest});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)}}}var hasEvent=(function(){var needsFallback=!("onblur" in document.documentElement);function inner(eventName,element){var isSupported;if(!eventName){return false}if(!element||typeof element==="string"){element=createElement(element||"div")}eventName="on"+eventName;isSupported=eventName in element;if(!isSupported&&needsFallback){if(!element.setAttribute){element=createElement("div")}element.setAttribute(eventName,"");isSupported=typeof element[eventName]==="function";if(element[eventName]!==undefined){element[eventName]=undefined}element.removeAttribute(eventName)}return isSupported}return inner})();ModernizrProto.hasEvent=hasEvent;
/*
{
"name": "Hashchange event",
"property": "hashchange",
"caniuse": "hashchange",
"tags": ["history"],
"notes": [{
"name": "MDN documentation",
"href": "https://developer.mozilla.org/en-US/docs/Web/API/window.onhashchange"
}],
"polyfills": [
"jquery-hashchange",
"moo-historymanager",
"jquery-ajaxy",
"hasher",
"shistory"
]
}
!*/
Modernizr.addTest("hashchange",function(){if(hasEvent("hashchange",window)===false){return false}return(document.documentMode===undefined||document.documentMode>7)});var prefixedCSSValue=function(prop,value){var result=false;var elem=createElement("div");var style=elem.style;if(prop in style){var i=domPrefixes.length;style[prop]=value;result=style[prop];while(i--&&!result){style[prop]="-"+domPrefixes[i]+"-"+value;result=style[prop]}}if(result===""){result=false}return result};ModernizrProto.prefixedCSSValue=prefixedCSSValue;
/*
{
"name" : "HTML5 Audio Element",
"property": "audio",
"tags" : ["html5", "audio", "media"]
}
!*/
Modernizr.addTest("audio",function(){var elem=createElement("audio");var bool=false;try{bool=!!elem.canPlayType;if(bool){bool=new Boolean(bool);bool.ogg=elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"");bool.mp3=elem.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/,"");bool.opus=elem.canPlayType('audio/ogg; codecs="opus"')||elem.canPlayType('audio/webm; codecs="opus"').replace(/^no$/,"");bool.wav=elem.canPlayType('audio/wav; codecs="1"').replace(/^no$/,"");bool.m4a=(elem.canPlayType("audio/x-m4a;")||elem.canPlayType("audio/aac;")).replace(/^no$/,"")}}catch(e){}return bool});
/*
{
"name": "HTML5 Video",
"property": "video",
"caniuse": "video",
"tags": ["html5"],
"knownBugs": [
"Without QuickTime, `Modernizr.video.h264` will be `undefined`; https://github.com/Modernizr/Modernizr/issues/546"
],
"polyfills": [
"html5media",
"mediaelementjs",
"sublimevideo",
"videojs",
"leanbackplayer",
"videoforeverybody"
]
}
!*/
Modernizr.addTest("video",function(){var elem=createElement("video");var bool=false;try{bool=!!elem.canPlayType;if(bool){bool=new Boolean(bool);bool.ogg=elem.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,"");bool.h264=elem.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,"");bool.webm=elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"");bool.vp9=elem.canPlayType('video/webm; codecs="vp9"').replace(/^no$/,"");bool.hls=elem.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/,"")}}catch(e){}return bool});
/*
{
"name": "Audio Loop Attribute",
"property": "audioloop",
"tags": ["audio", "media"]
}
!*/
Modernizr.addTest("audioloop","loop" in createElement("audio"));var inputElem=createElement("input");
/*
{
"name": "Input attributes",
"property": "input",
"tags": ["forms"],
"authors": ["Mike Taylor"],
"notes": [{
"name": "WHATWG spec",
"href": "https://html.spec.whatwg.org/multipage/forms.html#input-type-attr-summary"
}],
"knownBugs": ["Some blackberry devices report false positive for input.multiple"]
}
!*/
var inputattrs="autocomplete autofocus list placeholder max min multiple pattern required step".split(" ");var attrs={};Modernizr.input=(function(props){for(var i=0,len=props.length;i<len;i++){attrs[props[i]]=!!(props[i] in inputElem)}if(attrs.list){attrs.list=!!(createElement("datalist")&&window.HTMLDataListElement)}return attrs})(inputattrs);
/*
{
"name": "Form input types",
"property": "inputtypes",
"caniuse": "forms",
"tags": ["forms"],
"authors": ["Mike Taylor"],
"polyfills": [
"jquerytools",
"webshims",
"h5f",
"webforms2",
"nwxforms",
"fdslider",
"html5slider",
"galleryhtml5forms",
"jscolor",
"html5formshim",
"selectedoptionsjs",
"formvalidationjs"
]
}
!*/
var inputtypes="search tel url email datetime date month week time datetime-local number range color".split(" ");var inputs={};Modernizr.inputtypes=(function(props){var len=props.length;var smile="1)";var inputElemType;var defaultView;var bool;for(var i=0;i<len;i++){inputElem.setAttribute("type",inputElemType=props[i]);bool=inputElem.type!=="text"&&"style" in inputElem;if(bool){inputElem.value=smile;inputElem.style.cssText="position:absolute;visibility:hidden;";if(/^range$/.test(inputElemType)&&inputElem.style.WebkitAppearance!==undefined){docElement.appendChild(inputElem);defaultView=document.defaultView;bool=defaultView.getComputedStyle&&defaultView.getComputedStyle(inputElem,null).WebkitAppearance!=="textfield"&&(inputElem.offsetHeight!==0);docElement.removeChild(inputElem)}else{if(/^(search|tel)$/.test(inputElemType)){}else{if(/^(url|email)$/.test(inputElemType)){bool=inputElem.checkValidity&&inputElem.checkValidity()===false}else{bool=inputElem.value!=smile}}}}inputs[props[i]]=!!bool}return inputs})(inputtypes);function getBody(){var body=document.body;if(!body){body=createElement(isSVG?"svg":"body");body.fake=true}return 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)}}style=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))}div.id=mod;if(body.fake){body.style.background="";body.style.overflow="hidden";docOverflow=docElement.style.overflow;docElement.style.overflow="hidden";docElement.appendChild(body)}ret=callback(div,rule);if(body.fake){body.parentNode.removeChild(body);docElement.style.overflow=docOverflow;docElement.offsetHeight}else{div.parentNode.removeChild(div)}return !!ret}var mq=(function(){var matchMedia=window.matchMedia||window.msMatchMedia;if(matchMedia){return function(mq){var mql=matchMedia(mq);return mql&&mql.matches||false}}return function(mq){var bool=false;injectElementWithStyles("@media "+mq+" { #modernizr { position: absolute; } }",function(node){bool=(window.getComputedStyle?window.getComputedStyle(node,null):node.currentStyle).position=="absolute"});return bool}})();ModernizrProto.mq=mq;var testStyles=ModernizrProto.testStyles=injectElementWithStyles;
/*
{
"name": "Touch Events",
"property": "touchevents",
"caniuse" : "touch",
"tags": ["media", "attribute"],
"notes": [{
"name": "Touch Events spec",
"href": "https://www.w3.org/TR/2013/WD-touch-events-20130124/"
}],
"warnings": [
"Indicates if the browser supports the Touch Events spec, and does not necessarily reflect a touchscreen device"
],
"knownBugs": [
"False-positive on some configurations of Nokia N900",
"False-positive on some BlackBerry 6.0 builds https://github.com/Modernizr/Modernizr/issues/372#issuecomment-3112695"
]
}
!*/
Modernizr.addTest("touchevents",function(){var bool;if(("ontouchstart" in window)||window.DocumentTouch&&document instanceof DocumentTouch){bool=true}else{var query=["@media (",prefixes.join("touch-enabled),("),"heartz",")","{#modernizr{top:9px;position:absolute}}"].join("");testStyles(query,function(node){bool=node.offsetTop===9})}return bool});
/*
{
"name": "CSS vh unit",
"property": "cssvhunit",
"caniuse": "viewport-units",
"tags": ["css"],
"builderAliases": ["css_vhunit"],
"notes": [{
"name": "Related Modernizr Issue",
"href": "https://github.com/Modernizr/Modernizr/issues/572"
},{
"name": "Similar JSFiddle",
"href": "https://jsfiddle.net/FWeinb/etnYC/"
}]
}
!*/
testStyles("#modernizr { height: 50vh; }",function(elem){var height=parseInt(window.innerHeight/2,10);var compStyle=parseInt(computedStyle(elem,null,"height"),10);Modernizr.addTest("cssvhunit",compStyle==height)});
/*
{
"name": "CSS vmax unit",
"property": "cssvmaxunit",
"caniuse": "viewport-units",
"tags": ["css"],
"builderAliases": ["css_vmaxunit"],
"notes": [{
"name": "Related Modernizr Issue",
"href": "https://github.com/Modernizr/Modernizr/issues/572"
},{
"name": "JSFiddle Example",
"href": "https://jsfiddle.net/glsee/JDsWQ/4/"
}]
}
!*/
testStyles("#modernizr1{width: 50vmax}#modernizr2{width:50px;height:50px;overflow:scroll}#modernizr3{position:fixed;top:0;left:0;bottom:0;right:0}",function(node){var elem=node.childNodes[2];var scroller=node.childNodes[1];var fullSizeElem=node.childNodes[0];var scrollbarWidth=parseInt((scroller.offsetWidth-scroller.clientWidth)/2,10);var one_vw=fullSizeElem.clientWidth/100;var one_vh=fullSizeElem.clientHeight/100;var expectedWidth=parseInt(Math.max(one_vw,one_vh)*50,10);var compWidth=parseInt(computedStyle(elem,null,"width"),10);Modernizr.addTest("cssvmaxunit",roundedEquals(expectedWidth,compWidth)||roundedEquals(expectedWidth,compWidth-scrollbarWidth))},3);
/*
{
"name": "CSS vmin unit",
"property": "cssvminunit",
"caniuse": "viewport-units",
"tags": ["css"],
"builderAliases": ["css_vminunit"],
"notes": [{
"name": "Related Modernizr Issue",
"href": "https://github.com/Modernizr/Modernizr/issues/572"
},{
"name": "JSFiddle Example",
"href": "https://jsfiddle.net/glsee/JRmdq/8/"
}]
}
!*/
testStyles("#modernizr1{width: 50vm;width:50vmin}#modernizr2{width:50px;height:50px;overflow:scroll}#modernizr3{position:fixed;top:0;left:0;bottom:0;right:0}",function(node){var elem=node.childNodes[2];var scroller=node.childNodes[1];var fullSizeElem=node.childNodes[0];var scrollbarWidth=parseInt((scroller.offsetWidth-scroller.clientWidth)/2,10);var one_vw=fullSizeElem.clientWidth/100;var one_vh=fullSizeElem.clientHeight/100;var expectedWidth=parseInt(Math.min(one_vw,one_vh)*50,10);var compWidth=parseInt(computedStyle(elem,null,"width"),10);Modernizr.addTest("cssvminunit",roundedEquals(expectedWidth,compWidth)||roundedEquals(expectedWidth,compWidth-scrollbarWidth))},3);
/*
{
"name": "CSS vw unit",
"property": "cssvwunit",
"caniuse": "viewport-units",
"tags": ["css"],
"builderAliases": ["css_vwunit"],
"notes": [{
"name": "Related Modernizr Issue",
"href": "https://github.com/Modernizr/Modernizr/issues/572"
},{
"name": "JSFiddle Example",
"href": "https://jsfiddle.net/FWeinb/etnYC/"
}]
}
!*/
testStyles("#modernizr { width: 50vw; }",function(elem){var width=parseInt(window.innerWidth/2,10);var compStyle=parseInt(computedStyle(elem,null,"width"),10);Modernizr.addTest("cssvwunit",compStyle==width)});function contains(str,substr){return !!~(""+str).indexOf(substr)}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 true}}return false}else{if("CSSSupportsRule" in window){var conditionText=[];while(i--){conditionText.push("("+domToCSS(props[i])+":"+value+")")}conditionText=conditionText.join(" or ");return injectElementWithStyles("@supports ("+conditionText+") { #modernizr { position: absolute; } }",function(node){return computedStyle(node,null,"position")=="absolute"})}}return undefined}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===false){return props[i]}item=obj[props[i]];if(is(item,"function")){return fnBind(item,elem||obj)}return item}}return false}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 testProps(props,prefixed,value,skipValueTest){skipValueTest=is(skipValueTest,"undefined")?false:skipValueTest;if(!is(value,"undefined")){var result=nativeTestProps(props,value);if(!is(result,"undefined")){return result}}var afterInit,i,propsLength,prop,before;var elems=["modernizr","tspan","samp"];while(!mStyle.style&&elems.length){afterInit=true;mStyle.modElem=createElement(elems.shift());mStyle.style=mStyle.modElem.style}function cleanElems(){if(afterInit){delete mStyle.style;delete mStyle.modElem}}propsLength=props.length;for(i=0;i<propsLength;i++){prop=props[i];before=mStyle.style[prop];if(contains(prop,"-")){prop=cssToDOM(prop)}if(mStyle.style[prop]!==undefined){if(!skipValueTest&&!is(value,"undefined")){try{mStyle.style[prop]=value}catch(e){}if(mStyle.style[prop]!=before){cleanElems();return prefixed=="pfx"?prop:true}}else{cleanElems();return prefixed=="pfx"?prop:true}}}cleanElems();return false}var testProp=ModernizrProto.testProp=function(prop,value,useValue){return testProps([prop],undefined,value,useValue)};function testPropsAll(prop,prefixed,elem,value,skipValueTest){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+" "+cssomPrefixes.join(ucProp+" ")+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)}}ModernizrProto.testAllProps=testPropsAll;var prefixed=ModernizrProto.prefixed=function(prop,obj,elem){if(prop.indexOf("@")===0){return atRule(prop)}if(prop.indexOf("-")!=-1){prop=cssToDOM(prop)}if(!obj){return testPropsAll(prop,"pfx")}else{return testPropsAll(prop,obj,elem)}};var prefixedCSS=ModernizrProto.prefixedCSS=function(prop){var prefixedProp=prefixed(prop);return prefixedProp&&domToCSS(prefixedProp)};
/*
{
"name": "Fullscreen API",
"property": "fullscreen",
"caniuse": "fullscreen",
"notes": [{
"name": "MDN documentation",
"href": "https://developer.mozilla.org/en/API/Fullscreen"
}],
"polyfills": ["screenfulljs"],
"builderAliases": ["fullscreen_api"]
}
!*/
Modernizr.addTest("fullscreen",!!(prefixed("exitFullscreen",document,false)||prefixed("cancelFullScreen",document,false)));function testAllProps(prop,value,skipValueTest){return testPropsAll(prop,undefined,undefined,value,skipValueTest)}ModernizrProto.testAllProps=testAllProps;
/*
{
"name": "CSS Columns",
"property": "csscolumns",
"caniuse": "multicolumn",
"polyfills": ["css3multicolumnjs"],
"tags": ["css"]
}
!*/
(function(){Modernizr.addTest("csscolumns",function(){var bool=false;var test=testAllProps("columnCount");try{bool=!!test;if(bool){bool=new Boolean(bool)}}catch(e){}return bool});var props=["Width","Span","Fill","Gap","Rule","RuleColor","RuleStyle","RuleWidth","BreakBefore","BreakAfter","BreakInside"];var name,test;for(var i=0;i<props.length;i++){name=props[i].toLowerCase();test=testAllProps("column"+props[i]);if(name==="breakbefore"||name==="breakafter"||name=="breakinside"){test=test||testAllProps(props[i])}Modernizr.addTest("csscolumns."+name,test)}})();
/*
{
"name": "Flexbox",
"property": "flexbox",
"caniuse": "flexbox",
"tags": ["css"],
"notes": [{
"name": "The _new_ flexbox",
"href": "http://dev.w3.org/csswg/css3-flexbox"
}],
"warnings": [
"A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect."
]
}
!*/
Modernizr.addTest("flexbox",testAllProps("flexBasis","1px",true));testRunner();delete ModernizrProto.addTest;delete ModernizrProto.addAsyncTest;for(var i=0;i<Modernizr._q.length;i++){Modernizr._q[i]()}window.Modernizr=Modernizr})(window,document);