1/*! 2 * viewport-units-buggyfill v0.6.2 3 * @web: https://github.com/rodneyrehm/viewport-units-buggyfill/ 4 * @author: Rodney Rehm - http://rodneyrehm.de/en/ 5 */ 6(function(){(function(root,factory){'use strict';if(typeof define==='function'&&define.amd){define([],factory)}else if(typeof exports==='object'){module.exports=factory()}else{root.viewportUnitsBuggyfill=factory()}}(this,function(){'use strict';var initialized=!1;var options;var userAgent=window.navigator.userAgent;var viewportUnitExpression=/([+-]?[0-9.]+)(vh|vw|vmin|vmax)/g;var urlExpression=/(https?:)?\/\// 7var forEach=[].forEach;var dimensions;var declarations;var styleNode;var isBuggyIE=/MSIE [0-9]\./i.test(userAgent);var isOldIE=/MSIE [0-8]\./i.test(userAgent);var isOperaMini=userAgent.indexOf('Opera Mini')>-1;var isMobileSafari=/(iPhone|iPod|iPad).+AppleWebKit/i.test(userAgent)&&(function(){var iOSversion=userAgent.match(/OS (\d+)/);return iOSversion&&iOSversion.length>1&&parseInt(iOSversion[1])<10})();var isBadStockAndroid=(function(){var isAndroid=userAgent.indexOf(' Android ')>-1;if(!isAndroid){return!1} 8var isStockAndroid=userAgent.indexOf('Version/')>-1;if(!isStockAndroid){return!1} 9var versionNumber=parseFloat((userAgent.match('Android ([0-9.]+)')||[])[1]);return versionNumber<=4.4})();if(!isBuggyIE){isBuggyIE=!!navigator.userAgent.match(/MSIE 10\.|Trident.*rv[ :]*1[01]\.| Edge\/1\d\./)} 10try{new CustomEvent('test')}catch(e){var CustomEvent=function(event,params){var evt;params=params||{bubbles:!1,cancelable:!1,detail:undefined,};evt=document.createEvent('CustomEvent');evt.initCustomEvent(event,params.bubbles,params.cancelable,params.detail);return evt};CustomEvent.prototype=window.Event.prototype;window.CustomEvent=CustomEvent} 11function debounce(func,wait){var timeout;return function(){var context=this;var args=arguments;var callback=function(){func.apply(context,args)};clearTimeout(timeout);timeout=setTimeout(callback,wait)}} 12function inIframe(){try{return window.self!==window.top}catch(e){return!0}} 13function initialize(initOptions){if(initialized){return} 14if(initOptions===!0){initOptions={force:!0,}} 15options=initOptions||{};options.isMobileSafari=isMobileSafari;options.isBadStockAndroid=isBadStockAndroid;if(options.ignoreVmax&&!options.force&&!isOldIE){isBuggyIE=!1} 16if(isOldIE||(!options.force&&!isMobileSafari&&!isBuggyIE&&!isBadStockAndroid&&!isOperaMini&&(!options.hacks||!options.hacks.required(options)))){if(window.console&&isOldIE){console.info('viewport-units-buggyfill requires a proper CSSOM and basic viewport unit support, which are not available in IE8 and below')} 17return{init:function(){},}} 18window.dispatchEvent(new CustomEvent('viewport-units-buggyfill-init'));options.hacks&&options.hacks.initialize(options);initialized=!0;styleNode=document.createElement('style');styleNode.id='patched-viewport';document[options.appendToBody?'body':'head'].appendChild(styleNode);importCrossOriginLinks(function(){var _refresh=debounce(refresh,options.refreshDebounceWait||100);window.addEventListener('orientationchange',_refresh,!0);window.addEventListener('pageshow',_refresh,!0);if(options.force||isBuggyIE||inIframe()){window.addEventListener('resize',_refresh,!0);options._listeningToResize=!0} 19options.hacks&&options.hacks.initializeEvents(options,refresh,_refresh);refresh()})} 20function updateStyles(){styleNode.textContent=getReplacedViewportUnits();styleNode.parentNode.appendChild(styleNode);window.dispatchEvent(new CustomEvent('viewport-units-buggyfill-style'))} 21function refresh(){if(!initialized){return} 22findProperties();setTimeout(function(){updateStyles()},1)} 23function processStylesheet(ss){try{if(!ss.cssRules){return}}catch(e){if(e.name!=='SecurityError'){throw e} 24return} 25var rules=[];for(var i=0;i<ss.cssRules.length;i++){var rule=ss.cssRules[i];rules.push(rule)} 26return rules} 27function findProperties(){declarations=[];forEach.call(document.styleSheets,function(sheet){var cssRules=processStylesheet(sheet);if(!cssRules||sheet.ownerNode.id==='patched-viewport'||sheet.ownerNode.getAttribute('data-viewport-units-buggyfill')==='ignore'){return} 28if(sheet.media&&sheet.media.mediaText&&window.matchMedia&&!window.matchMedia(sheet.media.mediaText).matches){return} 29forEach.call(cssRules,findDeclarations)});return declarations} 30function findDeclarations(rule){if(rule.type===7){var value;try{value=rule.cssText}catch(e){return} 31viewportUnitExpression.lastIndex=0;if(viewportUnitExpression.test(value)&&!urlExpression.test(value)){declarations.push([rule,null,value]);options.hacks&&options.hacks.findDeclarations(declarations,rule,null,value)} 32return} 33if(!rule.style){if(!rule.cssRules){return} 34forEach.call(rule.cssRules,function(_rule){findDeclarations(_rule)});return} 35forEach.call(rule.style,function(name){var value=rule.style.getPropertyValue(name);if(rule.style.getPropertyPriority(name)){value+=' !important'} 36viewportUnitExpression.lastIndex=0;if(viewportUnitExpression.test(value)){declarations.push([rule,name,value]);options.hacks&&options.hacks.findDeclarations(declarations,rule,name,value)}})} 37function getReplacedViewportUnits(){dimensions=getViewport();var css=[];var buffer=[];var open;var close;declarations.forEach(function(item){var _item=overwriteDeclaration.apply(null,item);var _open=_item.selector.length?(_item.selector.join(' {\n')+' {\n'):'';var _close=new Array(_item.selector.length+1).join('\n}');if(!_open||_open!==open){if(buffer.length){css.push(open+buffer.join('\n')+close);buffer.length=0} 38if(_open){open=_open;close=_close;buffer.push(_item.content)}else{css.push(_item.content);open=null;close=null} 39return} 40if(_open&&!open){open=_open;close=_close} 41buffer.push(_item.content)});if(buffer.length){css.push(open+buffer.join('\n')+close)} 42if(isOperaMini){css.push('* { content: normal !important; }')} 43return css.join('\n\n')} 44function overwriteDeclaration(rule,name,value){var _value;var _selectors=[];_value=value.replace(viewportUnitExpression,replaceValues);if(options.hacks){_value=options.hacks.overwriteDeclaration(rule,name,_value)} 45if(name){_selectors.push(rule.selectorText);_value=name+': '+_value+';'} 46var _rule=rule.parentRule;while(_rule){if(_rule.media){_selectors.unshift('@media '+_rule.media.mediaText)}else if(_rule.conditionText){_selectors.unshift('@supports '+_rule.conditionText)} 47_rule=_rule.parentRule} 48return{selector:_selectors,content:_value,}} 49function replaceValues(match,number,unit){var _base=dimensions[unit];var _number=parseFloat(number)/100;return(_number*_base)+'px'} 50function getViewport(){var vh=window.innerHeight;var vw=window.innerWidth;return{vh:vh,vw:vw,vmax:Math.max(vw,vh),vmin:Math.min(vw,vh),}} 51function importCrossOriginLinks(next){var _waiting=0;var decrease=function(){_waiting--;if(!_waiting){next()}};forEach.call(document.styleSheets,function(sheet){if(!sheet.href||origin(sheet.href)===origin(location.href)||sheet.ownerNode.getAttribute('data-viewport-units-buggyfill')==='ignore'){return} 52_waiting++;convertLinkToStyle(sheet.ownerNode,decrease)});if(!_waiting){next()}} 53function origin(url){return url.slice(0,url.indexOf('/',url.indexOf('://')+3))} 54function convertLinkToStyle(link,next){getCors(link.href,function(){var style=document.createElement('style');style.media=link.media;style.setAttribute('data-href',link.href);style.textContent=this.responseText;link.parentNode.replaceChild(style,link);next()},next)} 55function getCors(url,success,error){var xhr=new XMLHttpRequest();if('withCredentials' in xhr){xhr.open('GET',url,!0)}else if(typeof XDomainRequest!=='undefined'){xhr=new XDomainRequest();xhr.open('GET',url)}else{throw new Error('cross-domain XHR not supported')} 56xhr.onload=success;xhr.onerror=error;xhr.send();return xhr} 57return{version:'0.6.1',findProperties:findProperties,getCss:getReplacedViewportUnits,init:initialize,refresh:refresh,}}))})()
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.