1 | 2427× | "use strict";function defaults(e,t){for(var n in t)own.call(t,n)&&(!n.indexOf("$")||n in e||(e[n]=t[n]));return e}function cartesian(e,t){var n,r,a=[];for(r in t)if(own.call(t,r))for(n in e)own.call(e,n)&&a.push(e[n]+t[r]);return a}function splitSelector(e){for(var t,n=[],r=[],a=0;t=selectorTokenizer.exec(e);)switch(t[0]){case"(":a++;break;case")":a--;break;case",":if(a)break;n.push(t.index)}for(t=n.length;t--;)r.unshift(e.slice(n[t]+1)),e=e.slice(0,n[t]);return r.unshift(e),r}function ampersand(e,t){for(var n,r,a=[],l=[];r=ampersandTokenizer.exec(e);)"&"==r[0]&&a.push(r.index);for(r=a.length;r--;)l.unshift(e.slice(a[r]+1)),e=e.slice(0,a[r]);for(l.unshift(e),1===l.length&&l.unshift(""),n=[l[0]],r=1;r<l.length;r++)n=cartesian(n,cartesian(t,[l[r]]));return n.join(",")}function flatIter(e){return function t(n){if(type.call(n)===ARRAY)for(var r=0;r<n.length;r++)t(n[r]);else e(n)}}function decamelize(e){return"-"+e.toLowerCase()}function declarations(e,t,n,r,a){var l,i,o;if(null!=r)switch(type.call(r=r.valueOf())){case ARRAY:for(l=0;l<r.length;l++)declarations(e,t,n,r[l],a);break;case OBJECT:n=n&&n+"-";for(l in r)if(own.call(r,l))if(i=r[l],/\$/.test(l))for(o in l=l.split("$"))own.call(l,o)&&declarations(e,t,n+l[o],i,a);else declarations(e,t,n+l,i,a);break;default:l=n.replace(/_/g,"-").replace(/[A-Z]/g,decamelize),!a||"animation-name"!=l&&"animation"!=l&&"list-style"!=l||(r=r.split(",").map(function(t){return t.replace(/^\s*(?:(var\([^)]+\))|:?global\(\s*([_A-Za-z][-\w]*)\s*\)|()(-?[_A-Za-z][-\w]*))/,e.localizeReplacer)}).join(",")),t.decl(l,r)}}function atRules(e,t,n,r,a,l,i){for(var o=0;o<e.$atHandlers.length;o++)if(e.$atHandlers[o](e,t,n,r,a,l,i))return;if(!n[3]&&/^global$/.test(n[2]))rules(e,t,a,r,0,i);else if(!n[3]&&/^local$/.test(n[2]))rules(e,t,a,r,1,i);else if(n[3]&&/^adopt$/.test(n[2])){if(!l||i)return t.err("@adopt global or nested: "+n[0]);if(!/^\.?[_A-Za-z][-\w]*$/.test(n[3]))return t.err("bad adopter "+JSON.stringify(n[3])+" in "+n[0]);o=[],flatIter(function(e,r){null!=e&&/^\.?[_A-Za-z][-\w]*(?:\s+\.?[_A-Za-z][-\w]*)*$/.test(r=e+"")?o.push(r.replace(/\./g,"")):t.err("bad adoptee "+JSON.stringify(e)+" in "+n[0])})(r),o.length&&(e.localize(n[3]=n[3].replace(/\./g,"")),e.names[n[3]]+=" "+o.join(" "))}else!n[3]&&/^(?:namespace|import|charset)$/.test(n[2])?flatIter(function(e){t.atrule(n[1],n[2],e)})(r):!n[3]&&/^(?:font-face|viewport)$/.test(n[2])?flatIter(function(r){t.atrule(n[1],n[2],n[3],1),declarations(e,t,"",r,l),t._atrule()})(r):n[3]&&/^(?:media|supports|page|keyframes)$/.test(n[2])?(l&&"keyframes"==n[2]&&(n[3]=n[3].replace(/(var\([^)]+\))|:?global\(\s*([_A-Za-z][-\w]*)\s*\)|()(-?[_A-Za-z][-\w]*)/,e.localizeReplacer)),t.atrule(n[1],n[2],n[3],1),"page"==n[2]?declarations(e,t,"",r,l):rules(e,t,"keyframes"==n[2]?"":a,r,l,i+1),t._atrule()):t.err("Unsupported at-rule: "+n[0])}function rules(e,t,n,r,a,l){var i,o,s,c;switch(type.call(r)){case OBJECT:for(i in r)if(own.call(r,i))if(o=r[i],n.length>0&&/^[-\w$]+$/.test(i))if(s||(s=1,t.rule(n)),/\$/.test(i))for(c in i=i.split("$"))own.call(i,c)&&declarations(e,t,i[c],o,a);else declarations(e,t,i,o,a);else/^@/.test(i)?(s=0,atRules(e,t,/^(.(?:-[\w]+-)?([_A-Za-z][-\w]*))\b\s*(.*?)\s*$/.exec(i)||[i,"@","",""],o,n,a,l)):(s=0,rules(e,t,n.length>0&&(/,/.test(n)||/,/.test(i))?(c=splitSelector(n),splitSelector(a?i.replace(/("(?:\\.|[^"\n])*"|'(?:\\.|[^'\n])*'|\/\*[\s\S]*?\*\/)|:global\(\s*(\.-?[_A-Za-z][-\w]*)\s*\)|(\.)(-?[_A-Za-z][-\w]*)/g,e.localizeReplacer):i).map(function(e){return/&/.test(e)?ampersand(e,c):c.map(function(t){return t+e}).join(",")}).join(",")):/&/.test(i)?ampersand(a?i.replace(/("(?:\\.|[^"\n])*"|'(?:\\.|[^'\n])*'|\/\*[\s\S]*?\*\/)|:global\(\s*(\.-?[_A-Za-z][-\w]*)\s*\)|(\.)(-?[_A-Za-z][-\w]*)/g,e.localizeReplacer):i,[n]):n+(a?i.replace(/("(?:\\.|[^"\n])*"|'(?:\\.|[^'\n])*'|\/\*[\s\S]*?\*\/)|:global\(\s*(\.-?[_A-Za-z][-\w]*)\s*\)|(\.)(-?[_A-Za-z][-\w]*)/g,e.localizeReplacer):i),o,a,l+1));break;case ARRAY:for(i=0;i<r.length;i++)rules(e,t,n,r[i],a,l);break;case STRING:n.length||t.err("No selector"),t.rule(n||" "),declarations(e,t,"",r,a)}}function closeSelectors(e,t){var n;return t?e:{init:function(){n=0,e.init()},done:function(t){return n&&(e._rule(),n=0),e.done(t)},atrule:function(t,r,a,l){n&&(e._rule(),n=0),e.atrule(t,r,a,l)},_atrule:function(t){n&&(e._rule(),n=0),e._atrule(t)},rule:function(t){t!==n&&(n&&e._rule(),e.rule(t),n=t)}}}function global(e){return":global("+e+")"}function kv(e,t,n){return n={},n[e]=t,n}function at(e,t,n){if(arguments.length<3){var r=at.bind.apply(at,[null].concat([].slice.call(arguments,0)));return r.toString=function(){return"@"+e+" "+t},r}return kv("@"+e+" "+t,n)}function j2c(){function e(e){if(!f.length){i.push(function(e,t){return t?{init:l.init,decl:l.decl,done:l.done,err:l.err}:l});for(var t=0;t<2;t++)for(var n=i.length;n--;)f[t]=freeze(defaults(i[n](f[t],!!t),f[t]))}return f[e]}function t(e){return s.names[e]||(s.names[e]=e+s.suffix),s.names[e].match(/^\S+/)}function n(e,n,r,a,l){return n||r||a+t(l)}var r,a,l={init:function(){r=[],a=[]},done:function(e){if(0!=a.length)throw new Error("j2c error(s): "+JSON.stringify(a,null,2)+"in context:\n"+r.join(""));return e?r:r.join("")},err:function(e){a.push(e),r.push("/* +++ ERROR +++ "+e+" */\n")},atrule:function(e,t,n,a){r.push(e,n&&" ",n,a?" {":";",s.endline)},_atrule:function(){r.push("}",s.endline)},rule:function(e){r.push(e," {",s.endline)},_rule:function(){r.push("}",s.endline)},decl:function(e,t){r.push(e,e&&":",t,";",s.endline)}},i=[closeSelectors],o=[],s={at:at,global:global,kv:kv,names:{},endline:"\n",suffix:"__j2c-"+Math.floor(4294967296*Math.random()).toString(36)+"-"+Math.floor(4294967296*Math.random()).toString(36)+"-"+Math.floor(4294967296*Math.random()).toString(36)+"-"+Math.floor(4294967296*Math.random()).toString(36),$plugins:[],sheet:function(t){var n=e(0);return n.init(),rules(c[0],n,"",t,1,0),n.done()},inline:function(t,n){var r=e(1);return r.init(),declarations(c[1],r,"",t,!(n&&n.global)),r.done()}},c=[{localizeReplacer:n,localize:t,names:s.names,$atHandlers:o,atrule:atRules,decl:declarations,rule:rules},{localizeReplacer:n,localize:t,names:s.names,decl:declarations}],u=flatIter(function(e){~s.$plugins.indexOf(e)||(s.$plugins.push(e),type.call(e)===FUNCTION&&(e=e(s)),e&&(flatIter(function(e){i.push(e)})(e.$filter||emptyArray),flatIter(function(e){o.push(e)})(e.$at||emptyArray),defaults(s.names,e.$names||emptyObject),u(e.$plugins||emptyArray),l=e.$sink||l,defaults(s,e)))}),f=[];return u(emptyArray.slice.call(arguments)),s}var emptyArray=[],emptyObject={},type=emptyObject.toString,ARRAY=type.call(emptyArray),OBJECT=type.call(emptyObject),STRING=type.call(""),FUNCTION=type.call(type),own=emptyObject.hasOwnProperty,freeze=Object.freeze||function(e){return e},selectorTokenizer=/[(),]|"(?:\\.|[^"\n])*"|'(?:\\.|[^'\n])*'|\/\*[\s\S]*?\*\//g,ampersandTokenizer=/&|"(?:\\.|[^"\n])*"|'(?:\\.|[^'\n])*'|\/\*[\s\S]*?\*\//g;module.exports=j2c; |