juicer.min_wev8.js
7.41 KB
!function(){var u=function(){var o=[].slice.call(arguments);return o.push(u.options),o[0].match(/^\s*#([\w:\-\.]+)\s*$/gim)&&o[0].replace(/^\s*#([\w:\-\.]+)\s*$/gim,function(e,t){var n=document,i=n&&n.getElementById(t);o[0]=i?i.value||i.innerHTML:e}),1==arguments.length?u.compile.apply(u,o):2<=arguments.length?u.to_html.apply(u,o):void 0},t={escapehash:{"<":"<",">":">","&":"&",'"':""","'":"'","/":"/"},escapereplace:function(e){return t.escapehash[e]},escaping:function(e){return"string"!=typeof e?e:e.replace(/[&<>"]/gim,this.escapereplace)},detection:function(e){return void 0===e?"":e}},i=function(e){if("undefined"!=typeof console){if(console.warn)return void console.warn(e);if(console.log)return void console.log(e)}throw e},o=function(e,t){if((e=e!==Object(e)?{}:e).__proto__)return e.__proto__=t,e;var n=function(){},i=Object.create?Object.create(t):(n.prototype=t,new n);for(var o in e)e.hasOwnProperty(o)&&(i[o]=e[o]);return i};u.__cache={},u.version="0.6.5-stable",u.settings={},u.tags={operationOpen:"{@",operationClose:"}",interpolateOpen:"\\${",interpolateClose:"}",noneencodeOpen:"\\$\\${",noneencodeClose:"}",commentOpen:"\\{#",commentClose:"\\}"},u.options={cache:!0,strip:!0,errorhandling:!0,detection:!0,_method:o({__escapehtml:t,__throw:i,__juicer:u},{})},u.tagInit=function(){var e=u.tags.operationOpen+"each\\s*([^}]*?)\\s*as\\s*(\\w*?)\\s*(,\\s*\\w*?)?"+u.tags.operationClose,t=u.tags.operationOpen+"\\/each"+u.tags.operationClose,n=u.tags.operationOpen+"if\\s*([^}]*?)"+u.tags.operationClose,i=u.tags.operationOpen+"\\/if"+u.tags.operationClose,o=u.tags.operationOpen+"else"+u.tags.operationClose,r=u.tags.operationOpen+"else if\\s*([^}]*?)"+u.tags.operationClose,s=u.tags.interpolateOpen+"([\\s\\S]+?)"+u.tags.interpolateClose,a=u.tags.noneencodeOpen+"([\\s\\S]+?)"+u.tags.noneencodeClose,c=u.tags.commentOpen+"[^}]*?"+u.tags.commentClose,p=u.tags.operationOpen+"each\\s*(\\w*?)\\s*in\\s*range\\(([^}]+?)\\s*,\\s*([^}]+?)\\)"+u.tags.operationClose,l=u.tags.operationOpen+"include\\s*([^}]*?)\\s*,\\s*([^}]*?)"+u.tags.operationClose;u.settings.forstart=new RegExp(e,"igm"),u.settings.forend=new RegExp(t,"igm"),u.settings.ifstart=new RegExp(n,"igm"),u.settings.ifend=new RegExp(i,"igm"),u.settings.elsestart=new RegExp(o,"igm"),u.settings.elseifstart=new RegExp(r,"igm"),u.settings.interpolate=new RegExp(s,"igm"),u.settings.noneencode=new RegExp(a,"igm"),u.settings.inlinecomment=new RegExp(c,"igm"),u.settings.rangestart=new RegExp(p,"igm"),u.settings.include=new RegExp(l,"igm")},u.tagInit(),u.set=function(e,t){var i=this,n=function(e,t){var n=e.match(/^tag::(.*)$/i);if(n)return i.tags[n[1]]=t.replace(/[\$\(\)\[\]\+\^\{\}\?\*\|\.]/gim,function(e){return"\\"+e}),void i.tagInit();i.options[e]=t};if(2!==arguments.length){if(e===Object(e))for(var o in e)e.hasOwnProperty(o)&&n(o,e[o])}else n(e,t)},u.register=function(e,t){var n=this.options._method;return!n.hasOwnProperty(e)&&(n[e]=t)},u.unregister=function(e){var t=this.options._method;if(t.hasOwnProperty(e))return delete t[e]},u.template=function(e){var i=this;this.options=e,this.__interpolate=function(e,t,n){var i,o=e.split("|"),r=o[0]||"";return 1<o.length&&(e=o.shift(),r="_method."+(i=o.shift().split(",")).shift()+".call({}, "+[e].concat(i)+")"),"<%= "+(t?"_method.__escapehtml.escaping":"")+"("+(n&&!1===n.detection?"":"_method.__escapehtml.detection")+"("+r+")) %>"},this.__removeShell=function(e,n){var r=0;return e=e.replace(u.settings.forstart,function(e,t,n,i){n=n||"value",i=i&&i.substr(1);var o="i"+r++;return"<% ~function() {for(var "+o+" in "+t+") {if("+t+".hasOwnProperty("+o+")) {var "+n+"="+t+"["+o+"];"+(i?"var "+i+"="+o+";":"")+" %>"}).replace(u.settings.forend,"<% }}}(); %>").replace(u.settings.ifstart,function(e,t){return"<% if("+t+") { %>"}).replace(u.settings.ifend,"<% } %>").replace(u.settings.elsestart,function(e){return"<% } else { %>"}).replace(u.settings.elseifstart,function(e,t){return"<% } else if("+t+") { %>"}).replace(u.settings.noneencode,function(e,t){return i.__interpolate(t,!1,n)}).replace(u.settings.interpolate,function(e,t){return i.__interpolate(t,!0,n)}).replace(u.settings.inlinecomment,"").replace(u.settings.rangestart,function(e,t,n,i){var o="j"+r++;return"<% ~function() {for(var "+o+"="+n+";"+o+"<"+i+";"+o+"++) {{var "+t+"="+o+"; %>"}).replace(u.settings.include,function(e,t,n){return"<%= _method.__juicer("+t+", "+n+"); %>"}),n&&!1===n.errorhandling||(e="<% try { %>"+e,e+='<% } catch(e) {_method.__throw("Juicer Render Exception: "+e.message);} %>'),e},this.__toNative=function(e,t){return this.__convert(e,!t||t.strip)},this.__lexicalAnalyze=function(e){var n=[],i=[],t="",o=["if","each","_","_method","console","break","case","catch","continue","debugger","default","delete","do","finally","for","function","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","null","typeof","class","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield","const","arguments","true","false","undefined","NaN"],r=function(e,t){if(Array.prototype.indexOf&&e.indexOf===Array.prototype.indexOf)return e.indexOf(t);for(var n=0;n<e.length;n++)if(e[n]===t)return n;return-1},s=function(e,t){if(t=t.match(/\w+/gim)[0],-1===r(n,t)&&-1===r(o,t)&&-1===r(i,t)){if("undefined"!=typeof window&&"function"==typeof window[t]&&window[t].toString().match(/^\s*?function \w+\(\) \{\s*?\[native code\]\s*?\}\s*?$/i))return e;if("undefined"!=typeof global&&"function"==typeof global[t]&&global[t].toString().match(/^\s*?function \w+\(\) \{\s*?\[native code\]\s*?\}\s*?$/i))return e;if("function"==typeof u.options._method[t]||u.options._method.hasOwnProperty(t))return i.push(t),e;n.push(t)}return e};e.replace(u.settings.forstart,s).replace(u.settings.interpolate,s).replace(u.settings.ifstart,s).replace(u.settings.elseifstart,s).replace(u.settings.include,s).replace(/[\+\-\*\/%!\?\|\^&~<>=,\(\)\[\]]\s*([A-Za-z_]+)/gim,s);for(var a=0;a<n.length;a++)t+="var "+n[a]+"=_."+n[a]+";";for(a=0;a<i.length;a++)t+="var "+i[a]+"=_method."+i[a]+";";return"<% "+t+" %>"},this.__convert=function(e,t){var n=[].join("");return n+="'use strict';",n+="var _=_||{};",n+="var _out='';_out+='",n+=!1!==t?e.replace(/\\/g,"\\\\").replace(/[\r\t\n]/g," ").replace(/'(?=[^%]*%>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<%=(.+?)%>/g,"';_out+=$1;_out+='").split("<%").join("';").split("%>").join("_out+='")+"';return _out;":e.replace(/\\/g,"\\\\").replace(/[\r]/g,"\\r").replace(/[\t]/g,"\\t").replace(/[\n]/g,"\\n").replace(/'(?=[^%]*%>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<%=(.+?)%>/g,"';_out+=$1;_out+='").split("<%").join("';").split("%>").join("_out+='")+"';return _out.replace(/[\\r\\n]\\s+[\\r\\n]/g, '\\r\\n');"},this.parse=function(e,t){var n=this;return t&&!1===t.loose||(e=this.__lexicalAnalyze(e)+e),e=this.__removeShell(e,t),e=this.__toNative(e,t),this._render=new Function("_, _method",e),this.render=function(e,t){return t&&t===i.options._method||(t=o(t,i.options._method)),n._render.call(this,e,t)},this}},u.compile=function(e,t){t&&t===this.options||(t=o(t,this.options));try{var n=this.__cache[e]?this.__cache[e]:new this.template(this.options).parse(e,t);return t&&!1===t.cache||(this.__cache[e]=n),n}catch(e){return i("Juicer Compile Exception: "+e.message),{render:function(){}}}},u.to_html=function(e,t,n){return n&&n===this.options||(n=o(n,this.options)),this.compile(e,n).render(t,n._method)},"undefined"!=typeof module&&module.exports?module.exports=u:this.juicer=u}();