Files
cdnjs/ajax/libs/css3finalize/2.1/jquery.css3finalize.min.js
T
2012-01-03 12:24:30 +01:00

15 lines
9.6 KiB
JavaScript

/**
* @author Han Lin Yap < http://zencodez.net/ >
* @copyright 2011 zencodez.net
* @license http://creativecommons.org/licenses/by-sa/3.0/
* @package Css3-Finalize
* @version 2.1 - 2012-01-03
* @website https://github.com/codler/jQuery-Css3-Finalize
*
* == Description ==
* With this plugin you can write CSS without the vendor prefixes.
*
* == Example Usage ==
* $('style').cssFinalize(); // parse all style-tags
*/
(function(a){if(a.cssFinalize){return}a.cssFinalizeSetup={shim:true,node:"style,link",checkMedia:true,append:true,callback:function(){}};a.fn.cssFinalize=function(b){if(!b||typeof b!="object"){b={}}b.node=this;a.cssFinalize(b);return this};a.cssFinalize=function(f){var q=document.createElement("div");f=a.extend({},a.cssFinalizeSetup,f);f.checkMedia=!!(f.checkMedia&&window.matchMedia);var g=[];var v;if(window.getComputedStyle){var l=getComputedStyle(document.documentElement,null);if(l.length){for(var u=0;u<l.length;u++){if(l[u].charAt(0)==="-"){var h=l[u].indexOf("-",1);g.push(l[u].substr(h+1));v=l[u].substr(1,h-1)}}}else{var y=function(i){return i.replace(/[A-Z]/g,function(C){return"-"+C.toLowerCase()})};for(var u in l){var w=y(u);if(w.indexOf("-o-")===0){g.push(w.substr(3))}}v="o"}}else{if(!f.shim){return true}v="ms"}if(v=="ms"){g.push("transform");g.push("transform-origin")}g.push("transition");g.push("transition-property");function e(i,C){return function(D){return(v==i)?C:false}}var o={};if(parseInt(a.browser.version.substr(0,1))<2){o={"border-top-left-radius":[e("moz","-moz-border-radius-topleft")],"border-top-right-radius":[e("moz","-moz-border-radius-topright")],"border-bottom-right-radius":[e("moz","-moz-border-radius-bottomright")],"border-bottom-left-radius":[e("moz","-moz-border-radius-bottomleft")]}}function k(i){var C=a.camelCase(i);return(v=="ms")?C[0].toLowerCase()+C.substr(1):C}function x(i){i=i.replace(/\/\*((?:[^\*]|\*[^\/])*)\*\//g,"");i=i.replace(/\n/g,"");i=i.replace(/\r/g,"");i=i.replace(/\@import[^;]*;/g,"");return i}function A(E,D){var i=E.match(RegExp(D,"g"));var C=E.replace(new RegExp(D,"g"),"[|]").split("[|]");var F=[];for(u in C){F.push(C[u]);if(i&&i[u]){F.push(i[u])}}return F}function B(i,D){if(v=="ms"&&a.browser.version<=7){var C=a('<style class="css-finalized" '+((i.attr("media")&&i.attr("media").length>0)?'media="'+i.attr("media")+'"':"")+"/>");a("head:first").append(C);C[0].styleSheet.cssText=a.cssFinalize.cssObjToText(D)}else{i.after('<style class="css-finalized" '+((i.attr("media")&&i.attr("media").length>0)?'media="'+i.attr("media")+'"':"")+">"+a.cssFinalize.cssObjToText(D)+"</style>")}}function c(C,D){D=x(D);if(a.trim(D)===""){return}var E=d(D);var i=[];i=F(E);function F(H){var G=[];a.each(H,function(I,K){if(K.attributes){var J=r(K.attributes);if(!a.isEmptyObject(J)){G.push({selector:m(K.selector),attributes:J})}else{if(m(K.selector)!=K.selector){G.push({selector:m(K.selector),attributes:r(K.attributes,true)})}else{if(!f.checkMedia||(f.checkMedia&&K.selector.indexOf("@media")===0&&matchMedia(K.selector.substr(7)).matches)){G.push({selector:K.selector,attributes:F(K.attributes)})}}}}});return G}C.addClass("css-finalize-read");if(i.length>0&&f.append){B(C,i)}if(a.isFunction(f.callback)){f.callback.call(C,i)}}function d(J){var E;if(v=="ms"&&a.browser.version<=8){E=A(J,"({[^{}]*})")}else{E=J.split(/({[^{}]*})/)}if(E[E.length-1].indexOf("}")==-1){E.pop()}var F=[];var C=false;var K;var H=0;var I;var G=0;while(G<E.length){if(G%2===0){var D=a.trim(E[G]);if(C){if(D.indexOf("}")!=-1){D=D.substr(1);E[G]=D;I=E.splice(H,G-H);I.shift();I.unshift(K[1]);F[F.length-1].attributes=d(I.join(""));C=false;G=H;continue}}else{if(D.indexOf("{")!=-1){K=D.split("{");D=a.trim(K[0]);C=true;H=G}if(D!==""){F.push({selector:D})}}}else{if(!C){F[F.length-1].attributes=z(E[G].substr(1,E[G].length-2))}}G++}return F}function z(D){var C;D=D.replace(/url\(([^)]+)\)/g,function(E){return E.replace(/;/g,"[cssFinalize]")});if(v=="ms"&&a.browser.version<=8){C=A(D,"(:[^;]*;?)")}else{C=D.split(/(:[^;]*;?)/)}C.pop();var i={};a.map(C,function(F,E){if(E%2==1){i[a.trim(C[E-1])]=a.trim(F.substr(1).replace(";","").replace(/url\(([^)]+)\)/g,function(G){return G.replace(/\[cssFinalize\]/g,";")}))}});return i}function r(C,i){if(a.isArray(C)){if(i){return a.map(C,function(F,E){return{selector:F.selector,attributes:r(F.attributes,i)}})}else{return{}}}var D={};a.each(C,function(H,G){var J=false;var E=s(H);if(E){J=true;D[E]=G}var I=n(H,G,E);if(I){J=true;D[(E)?E:H]=I}var F=t(H,G);if(F){J=true;a.each(F,function(K,L){if(K=="filter"&&D[K]){D[K]+=" "+L}else{D[K]=L}})}if(i&&!J){D[H]=G}});return D}function s(C){if(C in o){for(prefix in o[C]){if(a.isFunction(o[C][prefix])){var i=o[C][prefix](C);if(i){return i}}else{if(v==o[C][prefix]||!v){return"-"+o[C][prefix]+"-"+C}}}}if(a.inArray(C,g)>-1){if(!(k(C) in q.style)||C=="mask"){if(k("-"+v+"-"+C) in q.style){return"-"+v+"-"+C}}}return false}function n(G,F,I){I=I||G;if(G=="background-clip"||G=="background-origin"){q.style.cssText=I+":"+F;if(q.style[k(I)]!==undefined&&""+q.style[k(I)].indexOf(F)==-1){return F.split("-")[0]}}if(G=="transition"||G=="transition-property"){var K=F.split(/\s?,\s?/);var i=[];for(var C in K){var H,L;if(G=="transition"){H=K[C].split(" ")[0]}else{H=K[C]}if((L=s(H))!==false){i.push(L+K[C].substr(H.length))}else{i.push(K[C])}}return i.join(",")}if(v=="moz"){if(F.indexOf("calc")===0){return"-moz-"+F}if(F.indexOf("element")===0){return"-moz-"+F}}if(G=="display"){if(F.indexOf("box")===0||F.indexOf("flexbox")===0||F.indexOf("inline-flexbox")===0){return"-"+v+"-"+F}}var N;if(G=="background"||G=="background-image"){if(F.indexOf("linear-gradient")===0){if(v=="webkit"){N=F.replace(/^linear-gradient\s?\(\s?(.*?)\s?\)$/,"$1").split(/,\s?/);if(N.length==2){return"-webkit-gradient(linear, 0% 0%, 0% 100%, from("+N[0]+"), to("+N[1]+"))"}var M="";if(N.length>=3){var D="0% 0%, 0% 100%";if(N[0]==="left"){D="0% 0%, 100% 0%"}if(N.length>3){var J=N.slice(2,N.length-1);a.each(J,function(P,Q){var O=Q.split(/ /);if(O.length===2){M+="color-stop("+O[1]+", "+O[0]+"),"}})}return"-webkit-gradient(linear, "+D+", from("+N[1]+"), "+M+" to("+N[N.length-1]+"))"}}else{if(v=="ms"&&a.browser.version==9){N=F.replace(/^linear-gradient\s?\(\s?(.*?)\s?\)$/,"$1").split(/,\s?/);if(N.length==2){var E='<svg xmlns="http://www.w3.org/2000/svg" version="1.0"><defs><linearGradient id="gradient" x1="0" y1="0" x2="0" y2="100%"><stop offset="0%" style="stop-color: '+N[0]+';"/><stop offset="100%" style="stop-color: '+N[1]+';"/></linearGradient></defs><rect x="0" y="0" fill="url(#gradient)" width="100%" height="100%" /></svg>';return"url(data:image/svg+xml,"+escape(E)+")"}}}return"-"+v+"-"+F}else{if(F.indexOf("radial-gradient")===0){return"-"+v+"-"+F}}}return false}function t(D,C){if(f.shim){if(v=="ms"){if(a.browser.version<=8){if(D.toUpperCase()=="OPACITY"&&!a.support.opacity&&!isNaN(C)){return{filter:"alpha(opacity="+C*100+")",zoom:1}}if(D.toUpperCase()==="BACKGROUND-COLOR"&&C.indexOf("rgba")===0){C=b(C);return{background:"url(#)",filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='"+C+"',EndColorStr='"+C+"')"}}if((D.toUpperCase()=="BACKGROUND"||D.toUpperCase()==="BACKGROUND-IMAGE")&&C.indexOf("linear-gradient")===0){var i=C.replace(/^linear-gradient\s?\(\s?(.*?)\s?\)$/,"$1").split(/,\s?/);if(i.length==2){return{background:"url(#)",filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='"+i[0]+"',EndColorStr='"+i[1]+"')"}}}}}}return false}function m(i){if(v=="moz"){i=i.replace("::selection","::-moz-selection");i=i.replace("::placeholder",":-moz-placeholder");i=i.replace("@keyframes","@-moz-keyframes")}else{if(v=="webkit"){i=i.replace("@keyframes","@-webkit-keyframes");i=i.replace("::placeholder","::-webkit-input-placeholder")}}return i}function b(G){var D=G.replace(/^rgba\s?\(\s?(.*?)\s?\)$/,"$1").split(/,\s?/);var C=[];var F;for(var E=0;E<D.length;E++){if(E==3){D[E]*=255}F="0"+parseInt(D[E],10).toString(16);C.push(F.substr(F.length-2,2).toUpperCase())}C.splice(0,0,C.pop());return"#"+C.join("")}if(!(f.node instanceof jQuery)){f.node=a(f.node)}f.node.each(function(i,C){var D=a(this);if(D.hasClass("css-finalize-read")||D.hasClass("css-finalized")){return true}if(this.tagName=="LINK"&&D.attr("rel")=="stylesheet"){if(!f.checkMedia||(D.attr("media")&&D.attr("media").length>0&&matchMedia(D.attr("media")).matches)||!D.attr("media")){j(this.href,D)}}else{if(this.tagName=="TEXTAREA"){c(D,D.val())}else{c(D,D.html())}}});function j(i,C){var H=document.location,G=H.protocol||"http:";var F=/^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/.exec(i.toLowerCase());var D=!!(F&&(F[1]!=G||F[2]!=H.hostname||(F[3]||(F[1]==="http:"?80:443))!=(H.port||(G==="http:"?80:443))));if(D){return}try{a("<div />").load(i,function(I){c(C,I)})}catch(E){}}for(property in o){if((newProperty=s(property))!==false){p(property,newProperty)}}for(property in g){if((newProperty=s(g[property]))!==false){p(g[property],newProperty)}}function p(C,i){i=k(i);a.cssHooks[k(C)]={get:function(F,E,D){return F.style[i]},set:function(D,E){D.style[i]=E}}}};a.cssFinalize.cssObjToText=function(c,b){var d="";b=b||false;a.each(c,function(e,f){d+=f.selector+"{";if(a.isArray(f.attributes)){if(b){d+="\r\n"}d+=a.cssFinalize.cssObjToText(f.attributes,b)}else{a.each(f.attributes,function(h,g){if(b){d+="\r\n "}d+=h+":"+g+";"});if(b){d+="\r\n"}}d+="}";if(b){d+="\r\n"}});return d};a(function(){if(window.cssFinalize!==false){a.cssFinalize()}})})(jQuery);window.matchMedia=window.matchMedia||(function(e,f){var c,a=e.documentElement,b=a.firstElementChild||a.firstChild,d=e.createElement("body"),g=e.createElement("div");g.id="mq-test-1";g.style.cssText="position:absolute;top:-100em";d.appendChild(g);return function(h){g.innerHTML='&shy;<style media="'+h+'"> #mq-test-1 { width: 42px; }</style>';a.insertBefore(d,b);c=g.offsetWidth==42;a.removeChild(d);return{matches:c,media:h}}})(document);