eqcss
Advanced tools
Comparing version 1.9.1 to 1.9.2
/* | ||
# EQCSS IE8 Polyfills | ||
## version 1.9.1 | ||
## version 1.9.2 | ||
@@ -6,0 +6,0 @@ This file contains optional polyfills to provide: |
// EQCSS / Tommy Hodgins, Maxime Euzière / MIT license | ||
// version 1.9.1 | ||
// version 1.9.2 | ||
(function(g,d){function h(f){var c=d[f];d[f]=function(f){return a(c(f))}}function k(a,c,e){return(e=this).attachEvent("on"+a,function(a){a=a||g.event;a.preventDefault=a.preventDefault||function(){a.returnValue=!1};a.stopPropagation=a.stopPropagation||function(){a.cancelBubble=!0};try{c.call(e,a)}catch(l){}})}function a(a,c){if(c=a.length)for(;c--;)a[c].addEventListener=k;else a.addEventListener=k;return a}g.addEventListener||(a([d,g]),"Element"in g?g.Element.prototype.addEventListener=k:(d.attachEvent("onreadystatechange", | ||
@@ -4,0 +4,0 @@ function(){a(d.all)}),h("getElementsByTagName"),h("getElementById"),h("createElement"),a(d.all)))})(window,document); |
35
EQCSS.js
/* | ||
# EQCSS | ||
## version 1.9.1 | ||
## version 1.9.2 | ||
@@ -45,3 +45,3 @@ A JavaScript plugin to read EQCSS syntax to provide: | ||
data: [], | ||
version: '1.9.1' | ||
version: '1.9.2' | ||
} | ||
@@ -969,33 +969,2 @@ | ||
// Characters | ||
case 'characters': | ||
// form inputs | ||
if (elements[j].value) { | ||
l(elements[j].value.length) | ||
if (!(elements[j].value.length === final_value)) { | ||
test = false | ||
break test_conditions | ||
} | ||
} | ||
// blocks | ||
else { | ||
if (!(elements[j].textContent.length === final_value)) { | ||
test = false | ||
break test_conditions | ||
} | ||
} | ||
break | ||
// Max-characters | ||
@@ -1002,0 +971,0 @@ case 'max-characters': |
// EQCSS / Tommy Hodgins, Maxime Euzière / MIT license | ||
// version 1.9.1 | ||
(function(root,factory){if(typeof define==="function"&&define.amd)define([],factory);else if(typeof module==="object"&&module.exports)module.exports=factory();else root.EQCSS=factory()})(this,function(){var EQCSS={data:[],version:"1.9.1"};EQCSS.load=function(){var styles=document.getElementsByTagName("style");for(var i=0;i<styles.length;i++)if(styles[i].namespaceURI!=="http://www.w3.org/2000/svg")if(styles[i].getAttribute("data-eqcss-read")===null){styles[i].setAttribute("data-eqcss-read","true"); | ||
(function(root,factory){if(typeof define==="function"&&define.amd)define([],factory);else if(typeof module==="object"&&module.exports)module.exports=factory();else root.EQCSS=factory()})(this,function(){var EQCSS={data:[],version:"1.9.2"};EQCSS.load=function(){var styles=document.getElementsByTagName("style");for(var i=0;i<styles.length;i++)if(styles[i].namespaceURI!=="http://www.w3.org/2000/svg")if(styles[i].getAttribute("data-eqcss-read")===null){styles[i].setAttribute("data-eqcss-read","true"); | ||
EQCSS.process(styles[i].innerHTML)}var script=document.getElementsByTagName("script");for(i=0;i<script.length;i++)if(script[i].getAttribute("data-eqcss-read")===null&&script[i].type==="text/eqcss"){if(script[i].src)(function(){var xhr=new XMLHttpRequest;xhr.open("GET",script[i].src,true);xhr.send(null);xhr.onreadystatechange=function(){if(xhr.readyState===4&&xhr.status===200)EQCSS.process(xhr.responseText)}})();else EQCSS.process(script[i].innerHTML);script[i].setAttribute("data-eqcss-read","true")}var link= | ||
@@ -26,14 +26,14 @@ document.getElementsByTagName("link");for(i=0;i<link.length;i++)if(link[i].getAttribute("data-eqcss-read")===null&&link[i].rel==="stylesheet"){if(link[i].href)(function(){var xhr=new XMLHttpRequest;xhr.open("GET",link[i].href,true);xhr.send(null);xhr.onreadystatechange=function(){if(xhr.readyState===4&&xhr.status===200)EQCSS.process(xhr.responseText)}})();link[i].setAttribute("data-eqcss-read","true")}};EQCSS.parse=function(code){var parsed_queries=new Array;code=code||"";code=code.replace(/\s+/g, | ||
if(!(element_scroll/(element_scroll_size-element_size)*100<=final_value)){test=false;break test_conditions}}break;case "min-characters":if(elements[j].value){if(!(elements[j].value.length>=final_value)){test=false;break test_conditions}}else if(!(elements[j].textContent.length>=final_value)){test=false;break test_conditions}break;case "characters":if(elements[j].value){if(elements[j].value.length!==final_value){test=false;break test_conditions}}else if(elements[j].textContent.length!==final_value){test= | ||
false;break test_conditions}break;case "characters":if(elements[j].value){l(elements[j].value.length);if(!(elements[j].value.length===final_value)){test=false;break test_conditions}}else if(!(elements[j].textContent.length===final_value)){test=false;break test_conditions}break;case "max-characters":if(elements[j].value){if(!(elements[j].value.length<=final_value)){test=false;break test_conditions}}else if(!(elements[j].textContent.length<=final_value)){test=false;break test_conditions}break;case "min-children":if(!(elements[j].children.length>= | ||
final_value)){test=false;break test_conditions}break;case "children":if(elements[j].children.length!==final_value){test=false;break test_conditions}break;case "max-children":if(!(elements[j].children.length<=final_value)){test=false;break test_conditions}break;case "min-lines":element_height=parseInt(computed_style.getPropertyValue("height"))-parseInt(computed_style.getPropertyValue("border-top-width"))-parseInt(computed_style.getPropertyValue("border-bottom-width"))-parseInt(computed_style.getPropertyValue("padding-top"))- | ||
parseInt(computed_style.getPropertyValue("padding-bottom"));element_line_height=computed_style.getPropertyValue("line-height");if(element_line_height==="normal"){var element_font_size=parseInt(computed_style.getPropertyValue("font-size"));element_line_height=element_font_size*1.125}else element_line_height=parseInt(element_line_height);if(!(element_height/element_line_height>=final_value)){test=false;break test_conditions}break;case "max-lines":element_height=parseInt(computed_style.getPropertyValue("height"))- | ||
parseInt(computed_style.getPropertyValue("border-top-width"))-parseInt(computed_style.getPropertyValue("border-bottom-width"))-parseInt(computed_style.getPropertyValue("padding-top"))-parseInt(computed_style.getPropertyValue("padding-bottom"));element_line_height=computed_style.getPropertyValue("line-height");if(element_line_height==="normal"){element_font_size=parseInt(computed_style.getPropertyValue("font-size"));element_line_height=element_font_size*1.125}else element_line_height=parseInt(element_line_height); | ||
if(!(element_height/element_line_height+1<=final_value)){test=false;break test_conditions}break;case "orientation":if(EQCSS.data[i].conditions[k].value==="square")if(!(elements[j].offsetWidth===elements[j].offsetHeight)){test=false;break test_conditions}if(EQCSS.data[i].conditions[k].value==="portrait")if(!(elements[j].offsetWidth<elements[j].offsetHeight)){test=false;break test_conditions}if(EQCSS.data[i].conditions[k].value==="landscape")if(!(elements[j].offsetHeight<elements[j].offsetWidth)){test= | ||
false;break test_conditions}break;case "min-aspect-ratio":var el_width=EQCSS.data[i].conditions[k].value.split("/")[0];var el_height=EQCSS.data[i].conditions[k].value.split("/")[1];if(!(el_width/el_height<=elements[j].offsetWidth/elements[j].offsetHeight)){test=false;break test_conditions}break;case "max-aspect-ratio":el_width=EQCSS.data[i].conditions[k].value.split("/")[0];el_height=EQCSS.data[i].conditions[k].value.split("/")[1];if(!(elements[j].offsetWidth/elements[j].offsetHeight<=el_width/el_height)){test= | ||
false;break test_conditions}break}}if(test===true){css_code=EQCSS.data[i].style;css_code=css_code.replace(/eval\( *((".*?")|('.*?')) *\)/g,function(string,match){return EQCSS.tryWithEval(elements[j],match)});css_code=css_code.replace(/(:|\$|eq_)(this|self)/gi,"["+element_guid+"]");css_code=css_code.replace(/(:|\$|eq_)parent/gi,"["+element_guid_parent+"]");css_code=css_code.replace(/(:|\$|eq_)prev/gi,"["+element_guid_prev+"]");css_code=css_code.replace(/(:|\$|eq_)next/gi,"["+element_guid_next+"]"); | ||
css_code=css_code.replace(/(\$|eq_)root/gi,"html");css_code=css_code.replace(/(\d*\.?\d+)(?:\s*)(ew|eh|emin|emax)/gi,function(match,$1,$2){switch($2){case "ew":return elements[j].offsetWidth/100*$1+"px";break;case "eh":return elements[j].offsetHeight/100*$1+"px";break;case "emin":return Math.min(elements[j].offsetWidth,elements[j].offsetHeight)/100*$1+"px";break;case "emax":return Math.max(elements[j].offsetWidth,elements[j].offsetHeight)/100*$1+"px";break}});try{css_block.innerText=css_code}catch(e){if(css_block.styleSheet)css_block.styleSheet.cssText= | ||
css_code}}else try{css_block.innerText=""}catch(e$0){if(css_block.styleSheet)css_block.styleSheet.cssText=""}}}};EQCSS.tryWithEval=function(element,string){var $it=element;var ret="";try{with($it)ret=eval(string.slice(1,-1))}catch(e){ret=""}return ret};EQCSS.reset=function(){EQCSS.data=[];var style_tag=document.querySelectorAll('head style[id^="data-eqcss-"]');for(var i=0;i<style_tag.length;i++)style_tag[i].parentNode.removeChild(style_tag[i]);var tag=document.querySelectorAll("*");for(var j=0;j< | ||
tag.length;j++)for(var k=0;k<tag[j].attributes.length;k++)if(tag[j].attributes[k].name.indexOf("data-eqcss-")===0)tag[j].removeAttribute(tag[j].attributes[k].name)};EQCSS.domReady=function(fn){var done=false;var top=true;var doc=window.document;var root=doc.documentElement;var modern=!~navigator.userAgent.indexOf("MSIE 8");var add=modern?"addEventListener":"attachEvent";var rem=modern?"removeEventListener":"detachEvent";var pre=modern?"":"on";var init=function(e){if(e.type==="readystatechange"&&doc.readyState!== | ||
"complete")return;(e.type==="load"?window:doc)[rem](pre+e.type,init,false);if(!done&&(done=true))fn.call(window,e.type||e)},poll=function(){try{root.doScroll("left")}catch(e){setTimeout(poll,50);return}init("poll")};if(doc.readyState==="complete")fn.call(window,"lazy");else{if(!modern&&root.doScroll){try{top=!window.frameElement}catch(e){}if(top)poll()}doc[add](pre+"DOMContentLoaded",init,false);doc[add](pre+"readystatechange",init,false);window[add](pre+"load",init,false)}};var EQCSS_throttle_available= | ||
true;var EQCSS_throttle_queued=false;var EQCSS_mouse_down=false;var EQCSS_timeout=200;EQCSS.throttle=function(){if(EQCSS_throttle_available){EQCSS.apply();EQCSS_throttle_available=false;setTimeout(function(){EQCSS_throttle_available=true;if(EQCSS_throttle_queued){EQCSS_throttle_queued=false;EQCSS.apply()}},EQCSS_timeout)}else EQCSS_throttle_queued=true};EQCSS.domReady(function(){EQCSS.load();EQCSS.throttle()});window.addEventListener("resize",EQCSS.throttle);window.addEventListener("input",EQCSS.throttle); | ||
window.addEventListener("click",EQCSS.throttle);window.addEventListener("mousedown",function(e){if(e.which===1)EQCSS_mouse_down=true});window.addEventListener("mousemove",function(){if(EQCSS_mouse_down)EQCSS.throttle()});window.addEventListener("mouseup",function(){EQCSS_mouse_down=false;EQCSS.throttle()});function l(a){console.log(a)}return EQCSS}); | ||
false;break test_conditions}break;case "max-characters":if(elements[j].value){if(!(elements[j].value.length<=final_value)){test=false;break test_conditions}}else if(!(elements[j].textContent.length<=final_value)){test=false;break test_conditions}break;case "min-children":if(!(elements[j].children.length>=final_value)){test=false;break test_conditions}break;case "children":if(elements[j].children.length!==final_value){test=false;break test_conditions}break;case "max-children":if(!(elements[j].children.length<= | ||
final_value)){test=false;break test_conditions}break;case "min-lines":element_height=parseInt(computed_style.getPropertyValue("height"))-parseInt(computed_style.getPropertyValue("border-top-width"))-parseInt(computed_style.getPropertyValue("border-bottom-width"))-parseInt(computed_style.getPropertyValue("padding-top"))-parseInt(computed_style.getPropertyValue("padding-bottom"));element_line_height=computed_style.getPropertyValue("line-height");if(element_line_height==="normal"){var element_font_size= | ||
parseInt(computed_style.getPropertyValue("font-size"));element_line_height=element_font_size*1.125}else element_line_height=parseInt(element_line_height);if(!(element_height/element_line_height>=final_value)){test=false;break test_conditions}break;case "max-lines":element_height=parseInt(computed_style.getPropertyValue("height"))-parseInt(computed_style.getPropertyValue("border-top-width"))-parseInt(computed_style.getPropertyValue("border-bottom-width"))-parseInt(computed_style.getPropertyValue("padding-top"))- | ||
parseInt(computed_style.getPropertyValue("padding-bottom"));element_line_height=computed_style.getPropertyValue("line-height");if(element_line_height==="normal"){element_font_size=parseInt(computed_style.getPropertyValue("font-size"));element_line_height=element_font_size*1.125}else element_line_height=parseInt(element_line_height);if(!(element_height/element_line_height+1<=final_value)){test=false;break test_conditions}break;case "orientation":if(EQCSS.data[i].conditions[k].value==="square")if(!(elements[j].offsetWidth=== | ||
elements[j].offsetHeight)){test=false;break test_conditions}if(EQCSS.data[i].conditions[k].value==="portrait")if(!(elements[j].offsetWidth<elements[j].offsetHeight)){test=false;break test_conditions}if(EQCSS.data[i].conditions[k].value==="landscape")if(!(elements[j].offsetHeight<elements[j].offsetWidth)){test=false;break test_conditions}break;case "min-aspect-ratio":var el_width=EQCSS.data[i].conditions[k].value.split("/")[0];var el_height=EQCSS.data[i].conditions[k].value.split("/")[1];if(!(el_width/ | ||
el_height<=elements[j].offsetWidth/elements[j].offsetHeight)){test=false;break test_conditions}break;case "max-aspect-ratio":el_width=EQCSS.data[i].conditions[k].value.split("/")[0];el_height=EQCSS.data[i].conditions[k].value.split("/")[1];if(!(elements[j].offsetWidth/elements[j].offsetHeight<=el_width/el_height)){test=false;break test_conditions}break}}if(test===true){css_code=EQCSS.data[i].style;css_code=css_code.replace(/eval\( *((".*?")|('.*?')) *\)/g,function(string,match){return EQCSS.tryWithEval(elements[j], | ||
match)});css_code=css_code.replace(/(:|\$|eq_)(this|self)/gi,"["+element_guid+"]");css_code=css_code.replace(/(:|\$|eq_)parent/gi,"["+element_guid_parent+"]");css_code=css_code.replace(/(:|\$|eq_)prev/gi,"["+element_guid_prev+"]");css_code=css_code.replace(/(:|\$|eq_)next/gi,"["+element_guid_next+"]");css_code=css_code.replace(/(\$|eq_)root/gi,"html");css_code=css_code.replace(/(\d*\.?\d+)(?:\s*)(ew|eh|emin|emax)/gi,function(match,$1,$2){switch($2){case "ew":return elements[j].offsetWidth/100*$1+ | ||
"px";break;case "eh":return elements[j].offsetHeight/100*$1+"px";break;case "emin":return Math.min(elements[j].offsetWidth,elements[j].offsetHeight)/100*$1+"px";break;case "emax":return Math.max(elements[j].offsetWidth,elements[j].offsetHeight)/100*$1+"px";break}});try{css_block.innerText=css_code}catch(e){if(css_block.styleSheet)css_block.styleSheet.cssText=css_code}}else try{css_block.innerText=""}catch(e$0){if(css_block.styleSheet)css_block.styleSheet.cssText=""}}}};EQCSS.tryWithEval=function(element, | ||
string){var $it=element;var ret="";try{with($it)ret=eval(string.slice(1,-1))}catch(e){ret=""}return ret};EQCSS.reset=function(){EQCSS.data=[];var style_tag=document.querySelectorAll('head style[id^="data-eqcss-"]');for(var i=0;i<style_tag.length;i++)style_tag[i].parentNode.removeChild(style_tag[i]);var tag=document.querySelectorAll("*");for(var j=0;j<tag.length;j++)for(var k=0;k<tag[j].attributes.length;k++)if(tag[j].attributes[k].name.indexOf("data-eqcss-")===0)tag[j].removeAttribute(tag[j].attributes[k].name)}; | ||
EQCSS.domReady=function(fn){var done=false;var top=true;var doc=window.document;var root=doc.documentElement;var modern=!~navigator.userAgent.indexOf("MSIE 8");var add=modern?"addEventListener":"attachEvent";var rem=modern?"removeEventListener":"detachEvent";var pre=modern?"":"on";var init=function(e){if(e.type==="readystatechange"&&doc.readyState!=="complete")return;(e.type==="load"?window:doc)[rem](pre+e.type,init,false);if(!done&&(done=true))fn.call(window,e.type||e)},poll=function(){try{root.doScroll("left")}catch(e){setTimeout(poll, | ||
50);return}init("poll")};if(doc.readyState==="complete")fn.call(window,"lazy");else{if(!modern&&root.doScroll){try{top=!window.frameElement}catch(e){}if(top)poll()}doc[add](pre+"DOMContentLoaded",init,false);doc[add](pre+"readystatechange",init,false);window[add](pre+"load",init,false)}};var EQCSS_throttle_available=true;var EQCSS_throttle_queued=false;var EQCSS_mouse_down=false;var EQCSS_timeout=200;EQCSS.throttle=function(){if(EQCSS_throttle_available){EQCSS.apply();EQCSS_throttle_available=false; | ||
setTimeout(function(){EQCSS_throttle_available=true;if(EQCSS_throttle_queued){EQCSS_throttle_queued=false;EQCSS.apply()}},EQCSS_timeout)}else EQCSS_throttle_queued=true};EQCSS.domReady(function(){EQCSS.load();EQCSS.throttle()});window.addEventListener("resize",EQCSS.throttle);window.addEventListener("input",EQCSS.throttle);window.addEventListener("click",EQCSS.throttle);window.addEventListener("mousedown",function(e){if(e.which===1)EQCSS_mouse_down=true});window.addEventListener("mousemove",function(){if(EQCSS_mouse_down)EQCSS.throttle()}); | ||
window.addEventListener("mouseup",function(){EQCSS_mouse_down=false;EQCSS.throttle()});function l(a){console.log(a)}return EQCSS}); |
{ | ||
"name": "eqcss", | ||
"filename": "EQCSS.js", | ||
"version": "1.9.1", | ||
"version": "1.9.2", | ||
"description": "EQCSS is a CSS reprocessor that introduces Element Queries, Scoped CSS, selectors for parent, next, and previous elements to all browsers IE8 and up", | ||
@@ -6,0 +6,0 @@ "homepage": "http://elementqueries.com", |
@@ -53,7 +53,7 @@ ![](http://i.imgur.com/OUQzoiA.png) | ||
``` | ||
https://cdnjs.cloudflare.com/ajax/libs/eqcss/1.9.1/EQCSS-polyfills.min.js | ||
https://cdnjs.cloudflare.com/ajax/libs/eqcss/1.9.2/EQCSS-polyfills.min.js | ||
``` | ||
``` | ||
https://cdnjs.cloudflare.com/ajax/libs/eqcss/1.9.1/EQCSS.min.js | ||
https://cdnjs.cloudflare.com/ajax/libs/eqcss/1.9.2/EQCSS.min.js | ||
``` | ||
@@ -85,2 +85,4 @@ | ||
> Note: Because EQCSS has the ability to execute JavaScript instructions stored inside EQCSS syntax, site owners using EQCSS _should not allow_ unstruted user-supplied EQCSS syntax to be parsed and run with the EQCSS plugin. The risk is that users could execute malicious JavaScript instructions that could exfiltrate sensitive data from their session on your site to another server where it could be recorded. This is the same vulnerability as any 3rd party JavaScript plugin that can be used to execute JavaScript instructions. | ||
## Designing with Element Queries | ||
@@ -227,2 +229,2 @@ | ||
### More Demos @ the EQCSS Website: [http://elementqueries.com](http://elementqueries.com) | ||
### More Demos @ the EQCSS Website: [http://elementqueries.com](http://elementqueries.com) |
228
84722
1207