forked from riot/riot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompiler.min.js
More file actions
1 lines (1 loc) · 4.99 KB
/
Copy pathcompiler.min.js
File metadata and controls
1 lines (1 loc) · 4.99 KB
1
(function(e,t){if(typeof define==="function"&&define.amd)define(["riot"],t);else if(typeof exports==="object")t(require("riot"));else t(e.riot)})(this,function(e,t){var r="string";var n={html:{},css:{},js:{coffee:function(e){return CoffeeScript.compile(e,{bare:true})},es6:function(e){return babel.transform(e,{blacklist:["useStrict"]}).code},none:function(e){return e}}};n.js.javascript=n.js.none;n.js.coffeescript=n.js.coffee;e.parsers=n;var i=("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,"+"defaultchecked,defaultmuted,defaultselected,defer,disabled,draggable,enabled,formnovalidate,hidden,"+"indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,"+"pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,spellcheck,translate,truespeed,"+"typemustmatch,visible").split(","),c="area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr".split(","),s=["style","src","d"],a=/^<([\w\-]+)>(.*)<\/\1>/gim,o=/=({[^}]+})([\s\/\>])/g,f=/([\w\-]+)=(["'])([^\2]+?)\2/g,l=/{\s*([^}]+)\s*}/g,u=/^<([\w\-]+)\s?([^>]*)>([^\x00]*[\w\/}"']>$)?([^\x00]*?)^<\/\1>/gim,p=/<script(\s+type=['"]?([^>'"]+)['"]?)?>([^\x00]*?)<\/script>/gm,m=/<style(\s+type=['"]?([^>'"]+)['"]?|\s+scoped)?>([^\x00]*?)<\/style>/gm,d=/(^|\}|\{)\s*([^\{\}]+)\s*(?=\{)/g,g=/\/\*[^\x00]*?\*\//gm,v=/<!--.*?-->/g,h=/<([\w\-]+)([^>]*)\/\s*>/g,b=/^\s*\/\/.*$/gm,w=/\/\*[^\x00]*?\*\//gm,x=/(<input\s[^>]*?)type=['"]number['"]/gm;function y(e,t,r,n,i){return"riot.tag('"+e+"', '"+t+"'"+(r?", '"+r+"'":"")+(n?", '"+n.replace(/'/g,"\\'")+"'":"")+", function(opts) {"+i+"\n});"}function k(t,r,n){var a=e.util.brackets;t=t.replace(a(o),'="$1"$2');t=r.whitespace?t.replace(/\n/g,"\\n"):t.replace(/\s+/g," ");t=t.trim().replace(v,"");t=t.replace(x,"$1riot-type="+a(0)+'"number"'+a(1));t=t.replace(f,function(e,t,r,n){if(n.indexOf(a(0))>=0){t=t.toLowerCase();if(s.indexOf(t)>=0)t="riot-"+t;else if(i.indexOf(t)>=0)t="__"+t}return t+'="'+n+'"'});if(r.expr){t=t.replace(a(l),function(e,t){var i=E(t,r,n).trim().replace(/\r?\n|\r/g,"").trim();if(i.slice(-1)==";")i=i.slice(0,-1);return a(0)+i+a(1)})}t=t.replace(h,function(e,t,r){var n="<"+t+(r?" "+r.trim():"")+">";if(c.indexOf(t.toLowerCase())==-1)n+="</"+t+">";return n});t=t.replace(/'/g,"\\'");t=t.replace(a(/\\{|\\}/g),"\\$&");if(r.compact)t=t.replace(/> </g,"><");return t}function j(e){e=e.replace(b,"").replace(w,"");var t=e.split("\n"),r="";t.forEach(function(e,n){var i=e.trim();if(i[0]!="}"&&i.indexOf("(")>0&&i.indexOf("function")==-1){var c=/[{}]/.exec(i.slice(-1)),s=c&&/(\s+)([\w]+)\s*\(([\w,\s]*)\)\s*\{/.exec(e);if(s&&!/^(if|while|switch|for|catch)$/.test(s[2])){t[n]=s[1]+"this."+s[2]+" = function("+s[3]+") {";if(c[0]=="}"){t[n]+=" "+i.slice(s[0].length-1,-1)+"}.bind(this)"}else{r=s[1]}}}if(e.slice(0,r.length+1)==r+"}"){t[n]=r+"}.bind(this);";r=""}});return t.join("\n")}function $(e,t,r){return t.replace(g,"").replace(d,function(t,r,n){return r+" "+n.split(/\s*,\s*/g).map(function(t){var r=t.trim().replace(/:scope\s*/,"");return r[0]=="@"||r=="from"||r=="to"||/%$/.test(r)?r:e+" "+r+', [riot-tag="'+e+'"] '+r}).join(",")}).trim()}function E(t,r,n){var i=r.parser||(n?e.parsers.js[n]:j);if(!i)throw new Error('Parser not found "'+n+'"');return i(t,r)}function O(t,r){var n=e.parsers.html[t];if(!n)throw new Error('Template parser not found "'+t+'"');return n(r)}function C(t,r,n){if(n=="scoped-css")t=$(r,t);else if(e.parsers.css[n])t=e.parsers.css[n](r,t);return t.replace(/\s+/g," ").replace(/\\/g,"\\\\").replace(/'/g,"\\'").trim()}function T(t,r){r=r||{};if(r.brackets)e.settings.brackets=r.brackets;if(r.template)t=O(r.template,t);t=t.replace(a,function(e,t,n){return y(t,k(n,r),"","","")});return t.replace(u,function(e,t,n,i,c){i=i||"";n=k(n,"","");var s=r.type;if(!c.trim()){i=i.replace(p,function(e,t,r,n){if(r)s=r.replace("text/","");c=n;return""})}var a="css",o="";i=i.replace(m,function(e,t,r,n){if(t&&t.trim()=="scoped")a="scoped-css";else if(r)a=r.replace("text/","");o=n;return""});return y(t,k(i,r,s),C(o,t,a),n,E(c,r,s))})}var q=window.document,L,S;function A(e,t){var r=new XMLHttpRequest;r.onreadystatechange=function(){if(r.readyState==4&&r.status==200)t(r.responseText)};r.open("GET",e,true);r.send("")}function H(e){var t=/[ \t]+/.exec(e);if(t)e=e.replace(new RegExp("^"+t[0],"gm"),"");return e}function M(e){var t=q.createElement("script"),r=q.documentElement;t.text=T(e);r.appendChild(t);r.removeChild(t)}function R(e){var t=q.querySelectorAll('script[type="riot/tag"]'),r=t.length;function n(){L.trigger("ready");S=true;e&&e()}if(!r){n()}else{[].map.call(t,function(e){var t=e.getAttribute("src");function i(e){M(e);r--;if(!r){n()}}return t?A(t,i):i(H(e.innerHTML))})}}e.compile=function(n,i){if(typeof n===r){if(n.trim()[0]=="<"){var c=H(T(n));if(!i)M(c);return c}else{return A(n,function(e){var t=H(T(e));M(t);i&&i(t,e)})}}if(typeof n!=="function")n=t;if(S)return n&&n();if(L){n&&L.on("ready",n)}else{L=e.observable();R(n)}};var _=e.mount;e.mount=function(t,r,n){var i;e.compile(function(){i=_(t,r,n)});return i};e.mountTo=e.mount});