mirror of
https://github.com/wahyd4/cdnjs.git
synced 2026-08-14 15:25:52 +10:00
18 lines
10 KiB
JavaScript
18 lines
10 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 1.37 - 2011-03-15
|
|
* @website https://github.com/codler/jQuery-Css3-Finalize
|
|
*
|
|
* == Description ==
|
|
* Some css3 attributes needs to have a prefix in front
|
|
* in order to work in different browser. The plugin takes
|
|
* care of that so you only need to write without the prefix.
|
|
*
|
|
* == Example Usage ==
|
|
* // This will look for all style-tags and parse them.
|
|
* $('style').cssFinalize();
|
|
*/
|
|
(function(c){if(c.cssFinalize){return}if(!c.camelCase){var b=/-([a-z])/ig,a=function(d,e){return e.toUpperCase()};c.camelCase=function(d){return d.replace(b,a)}}c.cssFinalizeSetup={shim:true,node:"style,link",checkMedia:true};c.fn.cssFinalize=function(d){if(!d||typeof d!="object"){d={}}d.node=this;c.cssFinalize(d);return this};c.cssFinalize=function(j){var q=document.createElement("div");if(typeof j=="string"){newoptions=arguments[1]||{};newoptions.node=j;j=newoptions}j=c.extend({},c.cssFinalizeSetup,j);var u=false;if(c.browser.webkit||c.browser.safari){u="webkit"}else{if(c.browser.mozilla){u="moz"}else{if(c.browser.msie){if(c.browser.version<=7&&!j.shim){return true}u="ms"}else{if(c.browser.opera){u="o"}}}}function g(z,A){return function(B){return(u==z)?A:false}}var k="animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function";k+=" appearance backface-visibility";k+=" background-clip background-composite background-origin background-size";k+=" border-corner-image border-image border-top-image border-right-image border-bottom-image border-left-image border-top-left-image border-top-right-image border-bottom-left-image border-bottom-right-image border-radius";k+=" box-align box-direction box-flex box-flex-group box-lines box-ordinal-group box-orient box-pack box-reflect box-shadow box-sizing";k+=" column-count column-gap column-rule column-rule-color column-rule-style column-rule-width column-width columns";k+=" dashboard-region line-break";k+=" marquee marquee-direction marquee-increment marquee-repetition marquee-speed marquee-style";k+=" mask mask-attachment mask-box-image mask-clip mask-composite mask-image mask-origin mask-position mask-position-x mask-position-y mask-repeat mask-size";k+=" nbsp-mode";k+=" perspective perspective-origin";k+=" tab-size tap-highlight-color text-fill-color text-overflow text-security text-size-adjust";k+=" text-stroke text-stroke-color text-stroke-width";k+=" touch-callout";k+=" transform transform-origin transform-origin-x transform-origin-y transform-origin-z transform-style";k+=" transition transition-delay transition-duration transition-property transition-timing-function";k+=" user-drag user-modify user-select";k=k.split(" ");var n={"border-top-left-radius":[g("moz","-moz-border-radius-topleft")],"border-top-right-radius":[g("moz","-moz-border-radius-topright")],"border-bottom-right-radius":[g("moz","-moz-border-radius-bottomright")],"border-bottom-left-radius":[g("moz","-moz-border-radius-bottomleft")]};function v(z){z=z.replace(/\/\*((?:[^\*]|\*[^\/])*)\*\//g,"");z=z.replace(/\n/g,"");z=z.replace(/\r/g,"");z=z.replace(/\@import[^;]*;/g,"");return z}function x(C,B){var z=C.match(RegExp(B,"g"));var A=C.replace(new RegExp(B,"g"),"[|]").split("[|]");var D=[];for(i in A){D.push(A[i]);if(z!=null&&z[i]!=undefined){D.push(z[i])}}return D}function y(z,B){if(u=="ms"&&c.browser.version<=7){var A=c('<style class="css-finalized" />');c("head:first").append(A);A[0].styleSheet.cssText=h(B)}else{z.after('<style class="css-finalized">'+h(B)+"</style>")}}function e(A,B){B=v(B);if(c.trim(B)==""){return}var C=f(B);var z=[];z=D(C);function D(F){var E=[];c.each(F,function(G,I){if(I.attributes){var H=r(I.attributes);if(!c.isEmptyObject(H)){E.push({selector:m(I.selector),attributes:H})}else{if(m(I.selector)!=I.selector){E.push({selector:m(I.selector),attributes:I.attributes})}else{if(j.checkMedia&&I.selector.indexOf("@media")==0&&media.matchMedium(I.selector.substr(7))){E.push({selector:I.selector,attributes:D(I.attributes)})}}}}});return E}A.addClass("css-finalize-read");if(z.length>0){y(A,z)}}function f(G){if(u=="ms"&&c.browser.version<=8){var B=x(G,"({[^{}]*})")}else{var B=G.split(/({[^{}]*})/)}if(B[B.length-1].indexOf("}")==-1){B.pop()}var C=[];var z=false;var H;var E=0;var F;var D=0;while(D<B.length){if(D%2==0){var A=c.trim(B[D]);if(z){if(A.indexOf("}")!=-1){A=A.substr(1);B[D]=A;F=B.splice(E,D-E);F.shift();F.unshift(H[1]);C[C.length-1].attributes=f(F.join(""));z=false;D=E;continue}}else{if(A.indexOf("{")!=-1){H=A.split("{");A=c.trim(H[0]);z=true;E=D}if(A!=""){C.push({selector:A})}}}else{if(!z){C[C.length-1].attributes=w(B[D].substr(1,B[D].length-2))}}D++}return C}function w(B){B=B.replace(/url\(([^)]+)\)/g,function(C){return C.replace(/;/g,"[cssFinalize]")});if(u=="ms"&&c.browser.version<=8){var A=x(B,"(:[^;]*;?)")}else{var A=B.split(/(:[^;]*;?)/)}A.pop();var z={};c.map(A,function(D,C){if(C%2==1){z[c.trim(A[C-1])]=c.trim(D.substr(1).replace(";","").replace(/url\(([^)]+)\)/g,function(E){return E.replace(/\[cssFinalize\]/g,";")}))}});return z}function h(z){var A="";c.each(z,function(B,C){A+=C.selector+"{";if(c.isArray(C.attributes)){A+=h(C.attributes)}else{c.each(C.attributes,function(E,D){A+=E+":"+D+";"})}A+="}"});return A}function r(z){if(c.isArray(z)){return{}}var A={};c.each(z,function(E,D){var B=s(E);if(B){A[B]=D}var F=o(E,D,B);if(F){A[(B)?B:E]=F}var C=t(E,D);if(C){c.each(C,function(G,H){if(G=="filter"&&A[G]){A[G]+=" "+H}else{A[G]=H}})}});return A}function s(A){if(A in n){for(prefix in n[A]){if(c.isFunction(n[A][prefix])){var z=n[A][prefix](A);if(z){return z}}else{if(u==n[A][prefix]||!u){return"-"+n[A][prefix]+"-"+A}}}}if(c.inArray(A,k)>-1){if(!(c.camelCase(A) in q.style)||A=="mask"){if(c.camelCase("-"+u+"-"+A) in q.style){return"-"+u+"-"+A}}}return false}function o(D,C,F){F=F||D;if(D=="background-clip"||D=="background-origin"){q.style.cssText=F+":"+C;if(q.style[c.camelCase(F)]!==undefined&&""+q.style[c.camelCase(F)].indexOf(C)==-1){return C.split("-")[0]}}if(D=="transition"||D=="transition-property"){var G=C.split(/\s?,\s?/);var z=[];for(var A in G){var E,H;if(D=="transition"){E=G[A].split(" ")[0]}else{E=G[A]}if((H=s(E))!==false){z.push(H+G[A].substr(E.length))}else{z.push(G[A])}}return z.join(",")}if(u=="moz"){if(C.indexOf("calc")==0){return"-moz-"+C}}if(D=="background"||D=="background-image"){if(C.indexOf("linear-gradient")==0){if(u=="webkit"){var I=C.replace(/^linear-gradient\s?\(\s?(.*?)\s?\)$/,"$1").split(/,\s?/);if(I.length==2){return"-webkit-gradient(linear, 0% 0%, 0% 100%, from("+I[0]+"), to("+I[1]+"))"}}else{if(u=="o"){var I=C.replace(/^linear-gradient\s?\(\s?(.*?)\s?\)$/,"$1").split(/,\s?/);if(I.length==2){var B='<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: '+I[0]+';"/><stop offset="100%" style="stop-color: '+I[1]+';"/></linearGradient></defs><rect x="0" y="0" fill="url(#gradient)" width="100%" height="100%" /></svg>';return"url(data:image/svg+xml,"+escape(B)+")"}}}return"-"+u+"-"+C}else{if(C.indexOf("radial-gradient")==0){return"-"+u+"-"+C}}}return false}function t(B,A){if(j.shim){if(u=="ms"){if(B.toUpperCase()=="OPACITY"&&!c.support.opacity&&!c.isNaN(A)){return{filter:"alpha(opacity="+A*100+")",zoom:1}}if(c.browser.version<=8){if(B.toUpperCase()=="BACKGROUND-COLOR"&&A.indexOf("rgba")==0){A=d(A);return{filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='"+A+"',EndColorStr='"+A+"')"}}}if(c.browser.version<=9){if((B.toUpperCase()=="BACKGROUND"||B.toUpperCase()=="BACKGROUND-IMAGE")&&A.indexOf("linear-gradient")==0){var z=A.replace(/^linear-gradient\s?\(\s?(.*?)\s?\)$/,"$1").split(/,\s?/);if(z.length==2){return{filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='"+z[0]+"',EndColorStr='"+z[1]+"')"}}}}}}return false}function m(z){if(u=="moz"){z=z.replace("::selection","::-moz-selection");z=z.replace("::placeholder",":-moz-placeholder")}else{if(u=="webkit"){z=z.replace("@keyframes","@-webkit-keyframes");z=z.replace("::placeholder","::-webkit-input-placeholder")}}return z}function d(D){var A=D.replace(/^rgba\s?\(\s?(.*?)\s?\)$/,"$1").split(/,\s?/);var z=[];var C;for(var B=0;B<A.length;B++){if(B==3){A[B]*=255}C="0"+parseInt(A[B],10).toString(16);z.push(C.substr(C.length-2,2).toUpperCase())}z.splice(0,0,z.pop());return"#"+z.join("")}if(!(j.node instanceof jQuery)){j.node=c(j.node)}j.node.each(function(z,A){var B=c(this);if(B.hasClass("css-finalize-read")||B.hasClass("css-finalized")){return true}if(this.tagName=="LINK"&&B.attr("rel")=="stylesheet"){if(!j.checkMedia||(B.attr("media").length>0&&media.matchMedium(B.attr("media")))||B.attr("media").length==0){l(this.href,B)}}else{e(B,B.html())}});function l(z,A){var F=document.location,E=F.protocol||"http:";var D=/^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/.exec(z.toLowerCase());var B=!!(D&&(D[1]!=E||D[2]!=F.hostname||(D[3]||(D[1]==="http:"?80:443))!=(F.port||(E==="http:"?80:443))));if(B){return}try{c("<div />").load(z,function(G){e(A,G)})}catch(C){}}if(c.cssHooks){for(property in n){if((newProperty=s(property))!==false){p(property,newProperty)}}for(property in k){if((newProperty=s(k[property]))!==false){p(k[property],newProperty)}}}function p(A,z){z=c.camelCase(z);if(u=="ms"&&c.browser.version<=8){z=z.charAt(0).toLowerCase()+z.substr(1)}c.cssHooks[c.camelCase(A)]={get:function(D,C,B){return D.style[z]},set:function(B,C){B.style[z]=C}}}};c(function(){if(window.cssFinalize!==false){c.cssFinalize()}})})(jQuery);if(!(window.media&&media.matchMedium)){window.media=window.media||{};media.matchMedium=(function(e,f){var b={},a=e.documentElement,d=e.createElement("body"),c=e.createElement("div");c.setAttribute("id","ejs-qtest");d.appendChild(c);return function(j){if(b[j]===f){var g=e.createElement("style");g.type="text/css";var h="@media "+j+" { #ejs-qtest { position: absolute; } }";if(g.styleSheet){g.styleSheet.cssText=h}else{g.appendChild(e.createTextNode(h))}a.insertBefore(d,a.firstChild);a.insertBefore(g,a.firstChild);b[j]=((window.getComputedStyle?window.getComputedStyle(c,null):c.currentStyle)["position"]=="absolute");a.removeChild(d);a.removeChild(g)}return b[j]}})(document)}; |