liuyg
2021-07-02 25ce610f6ecca7325e7a743dc032c4a76559c63d
1
2
3
4
5
6
7
8
9
10
11
//>>built
define("xstyle/core/parser",[],function(){function M(){this.push.apply(this,arguments)}function I(c){this.value=c}function P(){var c,h=this.args[0];if("string"==typeof h)c=h.split(/\s*,\s*/);else if(h){c=[];for(var q=0,r=0;r<h.length+1;r++){var t=h[r];if("string"==typeof t||void 0===t)if(t=t&&t.split(/\s*,\s*/),1<c.length||void 0===t){var m=h.slice(q,r);0<q&&m.unshift(c.pop());q=r+1;c.push(m);t&&c.push.apply(c,t.slice(1))}}}else return[];return c}function N(c,h,q){function r(h,y){function q(a){D=
!1;var k=m.lastIndex;a.then(function(){D=!0;e&&(m.lastIndex=k,A())});var e=!0}function A(){function c(a){a&&"string"==typeof a&&A&&(a=A+a);b?b.push?"string"==typeof b[b.length-1]&&"string"==typeof a?b[b.length-1]+=a:a&&b.push(a):"string"==typeof b&&"string"==typeof a?b+=a:b=new M(b,a):b=a}for(D=!0;D;){var k=m.exec(h);if(!k)break;var e=k[5],A=k[1],f=k[2],d=k[3],p=k[4],l,g,b,C,p=p&&J(p),f=f&&J(f);B?(d?(g=f,l=d.charAt(0),C="?"==d.charAt(1),-1<d.indexOf("\n")&&(p=d.slice(1))):p=f,b=p,B=!1):(p=d?f+d:f,
c(p));"{"!=e&&(n+=k[0]);switch(e){case "'":case '"':var E="'"==e?Q:R;E.lastIndex=m.lastIndex;(e=E.exec(h))||v("unterminated string");f=e[1].replace(/\\([a-fA-F\d]{0,5}[ a-fA-F\d]?)/g,function(a,b){if(b)return String.fromCharCode(parseInt(b,16))});m.lastIndex=E.lastIndex;c(new I(f));n+=e[0];continue;case "\\":e=E.lastIndex++;c(h.charAt(e));continue;case "(":case "{":case "[":if("{"==e){B=!0;":"==l&&d&&(f+=d);n=J((n+f).replace(/\s+/g," "));c(d=a.newRule(n));"\x3d"==l&&(F=!1,b.creating=!0);var z=null,
L=G;k[6]&&(p=y.cssRules||y.rules,d.cssRule=z=p[k[6].slice(1)])&&(n=z.selectorText);if(a.root&&F)for(p=y.cssRules||y.rules;z=p[G++];)if(z.selectorText==n||z.selectorText&&z.selectorText.replace(/::/g,":").replace(/'/g,'"')==n.replace(/::/g,":").replace(/'/g,'"')){d.cssRule=z;break}z||(d.ruleIndex=G=L);d.styleSheet=y;b.creating?(d.selector="."+("\x3d"==l?f.match(/[\w-]*$/g,"")[0]:"")+"-x-"+S++,d.creating=!0):/^@(?!font-face)(?!FONT-FACE)/.test(n)?d.setMediaSelector(n):d.selector=a.root?n:a.selector+
" "+n;n=""}else f=p.match(/(.*?)([\w-]*)$/),c(d=a.newCall(f[2],b,a)),d.ref=a.getDefinition(f[2]),d.getArgs=P,(b.calls||(b.calls=[])).push(d);a.currentName=g;a.currentSequence=b;a.assignmentOperator=l;var H;"{"==e&&(H=d.selector.match(/[@:]\w+/))&&(H=H[0],(g=a.getDefinition(H))&&g.selector&&g.selector(d));w.push(a=d);a.operator=e;a.start=m.lastIndex;b=g=null;continue}if(b)if(f="string"==typeof b?b:b[0],f.charAt&&"@"==f.charAt(0))if(k=f.match(/\w+/)[0],"import"==k)f=N.getStyleSheet((y.cssRules||y.imports)[G++],
b,y),k=m.lastIndex,r(f.localSource,f),m.lastIndex=k;else{if("xstyle"==k){if("start"==f.slice(8,13))d=a?a.newRule(""):O,d.root=a.root,w.push(a=d);else{var O=a||O;w.pop();a=w[w.length-1]}m=a?t:/(@[\w\s])/g}}else if("\x3d"===l)try{var x=a.declareDefinition(g,b,C);x&&x.then&&q(x)}catch(u){v(u)}switch(e){case ":":"\x3d"==l?(B=!0,l=":"):c(":");break;case "}":if(g&&!a.root&&!a.isMediaBlock)try{a[":"==l?"setValue":"declareDefinition"](g,b,C)}catch(u){v(u)}case ")":case "]":T[a.operator]!=e&&v("Incorrect opening operator "+
a.operator+" with closing operator "+e);g=null;g=h.slice(a.start,m.lastIndex-1);a.cssText=a.cssText?a.cssText+";"+g:g;if("}"==e){"}"==K&&(K=a.parent.selector)&&"@"==!K.charAt(0)&&v("A nested rule must end with a semicolon");if(a.root)v("Unmatched "+e);else{try{a.onRule(a.selector,a)}catch(u){v(u)}F=!0}n=""}if(")"==e||"]"==e)a.args=[b];if(")"==e&&!l){try{x=w[w.length-2].onArguments(a)}catch(u){v(u)}x&&x.then&&q(x)}w.pop();a=w[w.length-1];b=a.currentSequence;g=a.currentName;l=a.assignmentOperator;if(a.root&&
"}"==e){if(l)try{a[":"==l?"setValue":"declareDefinition"](g,b,C)}catch(u){v(u)}B=!0;l=!1}break;case "":case void 0:return;case ";":if(a&&g){try{(x=a[":"==l?"setValue":"declareDefinition"](g,b,C))&&x.then&&q(x)}catch(u){v(u)}g}b=null;B=!0;l=F=!1;n=""}var K=e}}function v(a){var c=h.slice(0,m.lastIndex).split("\n"),e=c[c.length-1],c=(y.href||"in-page stylesheet")+":"+c.length+":"+e.length+" near:\n"+e.slice(-40);if(r.onerror)r.onerror(a,c);console.error(a.message||a,c);a.stack&&console.error(a.stack)}
h=h.replace(L,function(a){return a.replace(/[^\n]/g,"")});var a=c;m.lastIndex=0;var D,G=0,F=!0,n="",B=!0;A()}q=q||{addRule:function(){},cssRules:[]};var t,m=t=/(\s*)((?:[^{\}\[\]\(\)\\'":=;]|\[(?:[^\]'"]|'(?:\\.|[^'])*'|"(?:\\.|[^"])*")\])*)([=:]\??\s*([^{\}\[\]\(\)\\'":;]*))?(?:([{\}\[\]\(\)\\'":;])(\/\d+)?|$)/g,w=[c];c.parse=r;r(h,q)}var Q=/((?:\\.|[^'])*)'/g,R=/((?:\\.|[^"])*)"/g,L=/\/\*[\w\W]*?\*\//g,T={"{":"}","[":"]","(":")"},S=0,J="".trim?function(c){return c.trim()}:function(c){return c.replace(/^\s+|\s+$/g,
"")},A=M.prototype=[];A.toString=function(){return this.join("")};A.isSequence=!0;I.prototype.toString=function(){return'"'+this.value.replace(/["\\\n\r]/g,"\\$\x26")+'"'};I.prototype.isLiteralString=!0;return N});