mithril-vndb/mithril.min.js
2016-11-24 09:21:27 +00:00

40 lines
No EOL
20 KiB
JavaScript

new function(){function m(a,b,k,e,l,h){return{tag:a,key:b,attrs:k,children:e,text:l,dom:h,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}function t(a){if(null==a||"string"!==typeof a&&null==a.view)throw Error("The selector must be either a string or a component.");if("string"===typeof a&&void 0===H[a]){for(var b,k,e=[],l={};b=O.exec(a);){var h=b[1],v=b[2];""===h&&""!==v?k=v:"#"===h?l.id=v:"."===h?e.push(v):"["===b[3][0]&&((h=b[6])&&(h=h.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),
"class"===b[4]?e.push(h):l[b[4]]=h||!0)}0<e.length&&(l.className=e.join(" "));H[a]=function(a,b){var e=!1,h,f,w=a.className||a["class"],n;for(n in l)a[n]=l[n];void 0!==w&&(void 0!==a["class"]&&(a["class"]=void 0,a.className=w),void 0!==l.className&&(a.className=l.className+" "+w));for(n in a)if("key"!==n){e=!0;break}Array.isArray(b)&&1==b.length&&null!=b[0]&&"#"===b[0].tag?f=b[0].children:h=b;return m(k||"div",a.key,e?a:void 0,h,f,void 0)}}var p;null==arguments[1]||"object"===typeof arguments[1]&&
void 0===arguments[1].tag&&!Array.isArray(arguments[1])?(p=arguments[1],e=2):e=1;if(arguments.length===e+1)b=Array.isArray(arguments[e])?arguments[e]:[arguments[e]];else for(b=[];e<arguments.length;e++)b.push(arguments[e]);return"string"===typeof a?H[a](p||{},m.normalizeChildren(b)):m(a,p&&p.key,p||{},m.normalizeChildren(b),void 0,void 0)}m.normalize=function(a){return Array.isArray(a)?m("[",void 0,void 0,m.normalizeChildren(a),void 0,void 0):null!=a&&"object"!==typeof a?m("#",void 0,void 0,a,void 0,
void 0):a};m.normalizeChildren=function(a){for(var b=0;b<a.length;b++)a[b]=m.normalize(a[b]);return a};var O=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,H={};t.trust=function(a){null==a&&(a="");return m("<",void 0,void 0,a,void 0,void 0)};t.fragment=function(a,b){return m("[",a.key,a,m.normalizeChildren(b),void 0,void 0)};var y=function(a){function b(a,b){return function w(n){var u;try{if(!b||null==n||"object"!==typeof n&&"function"!==typeof n||"function"!==typeof(u=
n.then))m(function(){b||0!==a.length||console.error("Possible unhandled promise rejection:",n);for(var e=0;e<a.length;e++)a[e](n);l.length=0;h.length=0;r.state=b;r.retry=function(){w(n)}});else{if(n===e)throw new TypeError("Promise can't be resolved w/ itself");k(u.bind(n))}}catch(F){p(F)}}}function k(a){function b(a){return function(b){0<f++||a(b)}}var f=0,e=b(p);try{a(b(v),e)}catch(n){e(n)}}if(!(this instanceof y))throw Error("Promise must be called with `new`");if("function"!==typeof a)throw new TypeError("executor must be a function");
var e=this,l=[],h=[],v=b(l,!0),p=b(h,!1),r=e._instance={resolvers:l,rejectors:h},m="function"===typeof setImmediate?setImmediate:setTimeout;k(a)};y.prototype.then=function(a,b){function k(a,b,k,u){b.push(function(b){if("function"!==typeof a)k(b);else try{l(a(b))}catch(f){h&&h(f)}});"function"===typeof e.retry&&u===e.state&&e.retry()}var e=this._instance,l,h,v=new y(function(a,b){l=a;h=b});k(a,e.resolvers,l,!0);k(b,e.rejectors,h,!1);return v};y.prototype["catch"]=function(a){return this.then(null,
a)};y.resolve=function(a){return a instanceof y?a:new y(function(b){b(a)})};y.reject=function(a){return new y(function(b,k){k(a)})};y.all=function(a){return new y(function(b,k){var e=a.length,l=0,h=[];if(0===a.length)b([]);else for(var v=0;v<a.length;v++)(function(v){function r(a){l++;h[v]=a;l===e&&b(h)}null==a[v]||"object"!==typeof a[v]&&"function"!==typeof a[v]||"function"!==typeof a[v].then?r(a[v]):a[v].then(r,k)})(v)})};y.race=function(a){return new y(function(b,k){for(var e=0;e<a.length;e++)a[e].then(b,
k)})};"undefined"===typeof Promise&&("undefined"!==typeof window?window.Promise=y:"undefined"!==typeof global&&(global.Promise=y));var C=function(a){function b(a,e){if(Array.isArray(e))for(var h=0;h<e.length;h++)b(a+"["+h+"]",e[h]);else if("[object Object]"===Object.prototype.toString.call(e))for(h in e)b(a+"["+h+"]",e[h]);else k.push(encodeURIComponent(a)+(null!=e&&""!==e?"="+encodeURIComponent(e):""))}if("[object Object]"!==Object.prototype.toString.call(a))return"";var k=[],e;for(e in a)b(e,a[e]);
return k.join("&")},I=function(a,b){function k(){0===--u&&"function"===typeof q&&q()}function e(a){var f=a.then;a.then=function(){u++;var b=f.apply(a,arguments);b.then(k,function(a){k();throw a;});return e(b)};return a}function l(a,b){if(null==b)return a;for(var f=a.match(/:[^\/]+/gi)||[],e=0;e<f.length;e++){var h=f[e].slice(1);null!=b[h]&&(a=a.replace(f[e],b[h]),delete b[h])}return a}function h(a,b){var f=C(b);if(""!==f){var e=0>a.indexOf("?")?"?":"&";a+=e+f}return a}function v(a){try{return""!==
a?JSON.parse(a):null}catch(w){throw Error(a);}}function p(a){return a.responseText}function r(a,b){if("function"===typeof a)if(Array.isArray(b))for(var e=0;e<b.length;e++)b[e]=new a(b[e]);else return new a(b);return b}var m=0,u=0,q;return{request:function(f,k){return e(new b(function(b,e){if("string"===typeof f){var u=f;f=k||{};null==f.url&&(f.url=u)}null==f.method&&(f.method="GET");f.method=f.method.toUpperCase();u="boolean"===typeof f.useBody?f.useBody:"GET"!==f.method&&"TRACE"!==f.method;"function"!==
typeof f.serialize&&(f.serialize="undefined"!==typeof FormData&&f.data instanceof FormData?function(a){return a}:JSON.stringify);"function"!==typeof f.deserialize&&(f.deserialize=v);"function"!==typeof f.extract&&(f.extract=p);f.url=l(f.url,f.data);u?f.data=f.serialize(f.data):f.url=h(f.url,f.data);var n=new a.XMLHttpRequest;n.open(f.method,f.url,"boolean"===typeof f.async?f.async:!0,"string"===typeof f.user?f.user:void 0,"string"===typeof f.password?f.password:void 0);f.serialize===JSON.stringify&&
u&&n.setRequestHeader("Content-Type","application/json; charset=utf-8");f.deserialize===v&&n.setRequestHeader("Accept","application/json, text/*");f.withCredentials&&(n.withCredentials=f.withCredentials);"function"===typeof f.config&&(n=f.config(n,f)||n);n.onreadystatechange=function(){if(4===n.readyState)try{var a=f.extract!==p?f.extract(n,f):f.deserialize(f.extract(n,f));if(200<=n.status&&300>n.status||304===n.status)b(r(f.type,a));else{var h=Error(n.responseText),k;for(k in a)h[k]=a[k];e(h)}}catch(G){e(G)}};
u&&null!=f.data?n.send(f.data):n.send()}))},jsonp:function(f){return e(new b(function(b,e){var n=f.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+m++,k=a.document.createElement("script");a[n]=function(e){k.parentNode.removeChild(k);b(r(f.type,e));delete a[n]};k.onerror=function(){k.parentNode.removeChild(k);e(Error("JSONP request failed"));delete a[n]};null==f.data&&(f.data={});f.url=l(f.url,f.data);f.data[f.callbackKey||"callback"]=n;k.src=h(f.url,f.data);a.document.documentElement.appendChild(k)}))},
setCompletionCallback:function(a){q=a}}}(window,"undefined"!==typeof Promise?Promise:y),J=function(){var a=[];return{subscribe:a.push.bind(a),unsubscribe:function(b){b=a.indexOf(b);-1<b&&a.splice(b,1)},publish:function(){for(var b=0;b<a.length;b++)a[b].apply(this,arguments)}}}();I.setCompletionCallback(J.publish);var N=function(a){function b(c,g,a,b,e,f,h){for(;a<b;a++){var d=g[a];null!=d&&r(c,k(d,e,h),f)}}function k(c,g,a){var d=c.tag;null!=c.attrs&&t(c.attrs,c,g);if("string"===typeof d)switch(d){case "#":return c.dom=
z.createTextNode(c.children);case "<":return e(c);case "[":var f=z.createDocumentFragment();null!=c.children&&(d=c.children,b(f,d,0,d.length,g,null,a));c.dom=f.firstChild;c.domSize=f.childNodes.length;return f;default:var h=c.tag;switch(c.tag){case "svg":a="http://www.w3.org/2000/svg";break;case "math":a="http://www.w3.org/1998/Math/MathML"}var E=(d=c.attrs)&&d.is,h=a?E?z.createElementNS(a,h,{is:E}):z.createElementNS(a,h):E?z.createElement(h,{is:E}):z.createElement(h);c.dom=h;if(null!=d)for(f in E=
a,d)n(c,f,null,d[f],E);null!=c.attrs&&null!=c.attrs.contenteditable?y(c):(null!=c.text&&(""!==c.text?h.textContent=c.text:c.children=[m("#",void 0,void 0,c.text,void 0,void 0)]),null!=c.children&&(f=c.children,b(h,f,0,f.length,g,null,a),g=c.attrs,"select"===c.tag&&null!=g&&("value"in g&&n(c,"value",null,g.value,void 0),"selectedIndex"in g&&n(c,"selectedIndex",null,g.selectedIndex,void 0))));return h}else{c.state||(c.state={});P(c.state,c.tag);f=c.tag.view;if(null!=f.reentrantLock)c=G;else if(f.reentrantLock=
!0,t(c.tag,c,g),c.instance=m.normalize(f.call(c.state,c)),f.reentrantLock=null,null!=c.instance){if(c.instance===c)throw Error("A view cannot return the vnode it received as arguments");g=k(c.instance,g,a);c.dom=c.instance.dom;c.domSize=null!=c.dom?c.instance.domSize:0;c=g}else c.domSize=0,c=G;return c}}function e(c){var a={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(c.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",a=z.createElement(a);
a.innerHTML=c.children;c.dom=a.firstChild;c.domSize=a.childNodes.length;c=z.createDocumentFragment();for(var d;d=a.firstChild;)c.appendChild(d);return c}function l(c,a,d,f,e,n){if(a!==d&&(null!=a||null!=d))if(null==a)b(c,d,0,d.length,f,e,void 0);else if(null==d)u(a,0,a.length,d);else if(a.length===d.length&&null!=d[0]&&null==d[0].key)for(var g=0;g<a.length;g++)a[g]===d[g]||null==a[g]&&null==d[g]||(null==a[g]?r(c,k(d[g],f,n),p(a,g+1,e)):null==d[g]?u(a,g,g+1,d):h(c,a[g],d[g],f,p(a,g+1,e),!1,n));else{a:{if(null!=
a.pool&&Math.abs(a.pool.length-d.length)<=Math.abs(a.length-d.length)&&(g=d[0]&&d[0].children&&d[0].children.length||0,Math.abs((a.pool[0]&&a.pool[0].children&&a.pool[0].children.length||0)-g)<=Math.abs((a[0]&&a[0].children&&a[0].children.length||0)-g))){g=!0;break a}g=!1}g&&(a=a.concat(a.pool));for(var A=0,l=0,q=a.length-1,B=d.length-1,w;q>=A&&B>=l;){var x=a[A],m=d[l];if(x!==m||g)if(null==x)A++;else if(null==m)l++;else if(x.key===m.key)A++,l++,h(c,x,m,f,p(a,A,e),g,n),g&&x.tag===m.tag&&r(c,v(x),e);
else if(x=a[q],x!==m||g)if(null==x)q--;else if(null==m)l++;else if(x.key===m.key)h(c,x,m,f,p(a,q+1,e),g,n),(g||l<B)&&r(c,v(x),p(a,A,e)),q--,l++;else break;else q--,l++;else A++,l++}for(;q>=A&&B>=l;){x=a[q];m=d[B];if(x!==m||g)if(null==x)q--;else{if(null!=m)if(x.key===m.key)h(c,x,m,f,p(a,q+1,e),g,n),g&&x.tag===m.tag&&r(c,v(x),e),null!=x.dom&&(e=x.dom),q--;else{if(!w){w=a;var x=q,D={},z;for(z=0;z<x;z++){var t=w[z];null!=t&&(t=t.key,null!=t&&(D[t]=z))}w=D}null!=m&&(x=w[m.key],null!=x?(D=a[x],h(c,D,m,
f,p(a,q+1,e),g,n),r(c,v(D),e),a[x].skip=!0,null!=D.dom&&(e=D.dom)):(m=k(m,f,void 0),r(c,m,e),e=m))}B--}else q--,B--;if(B<l)break}b(c,d,l,B+1,f,e,n);u(a,A,q+1,d)}}function h(a,g,d,b,u,q,w){var c=g.tag;if(c===d.tag){d.state=g.state;d.events=g.events;var A;var B;null!=d.attrs&&"function"===typeof d.attrs.onbeforeupdate&&(A=d.attrs.onbeforeupdate.call(d.state,d,g));"string"!==typeof d.tag&&"function"===typeof d.tag.onbeforeupdate&&(B=d.tag.onbeforeupdate.call(d.state,d,g));void 0===A&&void 0===B||A||
B?A=!1:(d.dom=g.dom,d.domSize=g.domSize,d.instance=g.instance,A=!0);if(!A)if(null!=d.attrs&&M(d.attrs,d,b,q),"string"===typeof c)switch(c){case "#":g.children.toString()!==d.children.toString()&&(g.dom.nodeValue=d.children);d.dom=g.dom;break;case "<":g.children!==d.children?(v(g),r(a,e(d),u)):(d.dom=g.dom,d.domSize=g.domSize);break;case "[":l(a,g.children,d.children,b,u,w);g=0;b=d.children;d.dom=null;if(null!=b){for(var p=0;p<b.length;p++)a=b[p],null!=a&&null!=a.dom&&(null==d.dom&&(d.dom=a.dom),g+=
a.domSize||1);1!==g&&(d.domSize=g)}break;default:a=w;u=d.dom=g.dom;switch(d.tag){case "svg":a="http://www.w3.org/2000/svg";break;case "math":a="http://www.w3.org/1998/Math/MathML"}"textarea"===d.tag&&(null==d.attrs&&(d.attrs={}),null!=d.text&&(d.attrs.value=d.text,d.text=void 0));q=g.attrs;w=d.attrs;c=a;if(null!=w)for(p in w)n(d,p,q&&q[p],w[p],c);if(null!=q)for(p in q)null!=w&&p in w||("className"===p&&(p="class"),"o"!==p[0]||"n"!==p[1]||L(p)?"key"!==p&&d.dom.removeAttribute(p):F(d,p,void 0));null!=
d.attrs&&null!=d.attrs.contenteditable?y(d):null!=g.text&&null!=d.text&&""!==d.text?g.text.toString()!==d.text.toString()&&(g.dom.firstChild.nodeValue=d.text):(null!=g.text&&(g.children=[m("#",void 0,void 0,g.text,void 0,g.dom.firstChild)]),null!=d.text&&(d.children=[m("#",void 0,void 0,d.text,void 0,void 0)]),l(u,g.children,d.children,b,null,a))}else d.instance=m.normalize(d.tag.view.call(d.state,d)),M(d.tag,d,b,q),null!=d.instance?(null==g.instance?r(a,k(d.instance,b,w),u):h(a,g.instance,d.instance,
b,u,q,w),d.dom=d.instance.dom,d.domSize=d.instance.domSize):null!=g.instance?(f(g.instance,null),d.dom=void 0,d.domSize=0):(d.dom=g.dom,d.domSize=g.domSize)}else f(g,null),r(a,k(d,b,w),u)}function v(a){var c=a.domSize;if(null!=c||null==a.dom){var d=z.createDocumentFragment();if(0<c){for(a=a.dom;--c;)d.appendChild(a.nextSibling);d.insertBefore(a,d.firstChild)}return d}return a.dom}function p(a,g,d){for(;g<a.length;g++)if(null!=a[g]&&null!=a[g].dom)return a[g].dom;return d}function r(a,g,d){d&&d.parentNode?
a.insertBefore(g,d):a.appendChild(g)}function y(a){var c=a.children;if(null!=c&&1===c.length&&"<"===c[0].tag)c=c[0].children,a.dom.innerHTML!==c&&(a.dom.innerHTML=c);else if(null!=c||null!=a.text)throw Error("Child node of a contenteditable must be trusted");}function u(a,g,d,b){for(;g<d;g++){var c=a[g];null!=c&&(c.skip?c.skip=!1:f(c,b))}}function q(a){var c=!1;return function(){c||(c=!0,a())}}function f(a,g){function c(){if(++e===b&&(w(a),a.dom)){var c=a.domSize||1;if(1<c)for(var d=a.dom;--c;){var f=
d.nextSibling,h=f.parentNode;null!=h&&h.removeChild(f)}c=a.dom;d=c.parentNode;null!=d&&d.removeChild(c);if(c=null!=g&&null==a.domSize)c=a.attrs,c=!(null!=c&&(c.oncreate||c.onupdate||c.onbeforeremove||c.onremove));c&&"string"===typeof a.tag&&(g.pool?g.pool.push(a):g.pool=[a])}}var b=1,e=0;a.attrs&&a.attrs.onbeforeremove&&(b++,a.attrs.onbeforeremove.call(a.state,a,q(c)));"string"!==typeof a.tag&&a.tag.onbeforeremove&&(b++,a.tag.onbeforeremove.call(a.state,a,q(c)));c()}function w(a){a.attrs&&a.attrs.onremove&&
a.attrs.onremove.call(a.state,a);"string"!==typeof a.tag&&a.tag.onremove&&a.tag.onremove.call(a.state,a);if(null!=a.instance)w(a.instance);else if(a=a.children,Array.isArray(a))for(var c=0;c<a.length;c++){var d=a[c];null!=d&&w(d)}}function n(a,g,d,b,e){var c=a.dom;if("key"!==g&&(d!==b||"value"===g||"checked"===g||"selectedIndex"===g||"selected"===g&&a.dom===z.activeElement||"object"===typeof b)&&"undefined"!==typeof b&&!L(g)){var f=g.indexOf(":");if(-1<f&&"xlink"===g.substr(0,f))c.setAttributeNS("http://www.w3.org/1999/xlink",
g.slice(f+1),b);else if("o"===g[0]&&"n"===g[1]&&"function"===typeof b)F(a,g,b);else if("style"===g)if(a=d,a===b&&(c.style.cssText="",a=null),null==b)c.style.cssText="";else if("string"===typeof b)c.style.cssText=b;else{"string"===typeof a&&(c.style.cssText="");for(var h in b)c.style[h]=b[h];if(null!=a&&"string"!==typeof a)for(h in a)h in b||(c.style[h]="")}else g in c&&"href"!==g&&"list"!==g&&"form"!==g&&"width"!==g&&"height"!==g&&void 0===e?"input"===a.tag&&"value"===g&&a.dom.value===b&&a.dom===
z.activeElement||"select"===a.tag&&"value"===g&&a.dom.value===b&&a.dom===z.activeElement||"option"===a.tag&&"value"===g&&a.dom.value===b||(c[g]=b):"boolean"===typeof b?b?c.setAttribute(g,""):c.removeAttribute(g):c.setAttribute("className"===g?"class":g,b)}}function L(a){return"oninit"===a||"oncreate"===a||"onupdate"===a||"onremove"===a||"onbeforeremove"===a||"onbeforeupdate"===a}function F(a,b,d){var c=a.dom,g=function(a){var b=d.call(c,a);"function"===typeof C&&C.call(c,a);return b};if(b in c)c[b]=
"function"===typeof d?g:null;else{var e=b.slice(2);void 0===a.events&&(a.events={});null!=a.events[b]&&c.removeEventListener(e,a.events[b],!1);"function"===typeof d&&(a.events[b]=g,c.addEventListener(e,a.events[b],!1))}}function t(a,b,d){"function"===typeof a.oninit&&a.oninit.call(b.state,b);"function"===typeof a.oncreate&&d.push(a.oncreate.bind(b.state,b))}function M(a,b,d,e){e?t(a,b,d):"function"===typeof a.onupdate&&d.push(a.onupdate.bind(b.state,b))}function P(a,b){Object.keys(b).forEach(function(c){a[c]=
b[c]})}var z=a.document,G=z.createDocumentFragment(),C;return{render:function(a,b){if(!a)throw Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var d=[],c=z.activeElement;null==a.vnodes&&(a.textContent="");Array.isArray(b)||(b=[b]);l(a,a.vnodes,m.normalizeChildren(b),d,null,void 0);a.vnodes=b;for(var e=0;e<d.length;e++)d[e]();z.activeElement!==c&&c.focus()},setEventCallback:function(a){return C=a}}}(window),Q=function(a){var b=0,k=null,e="function"===typeof requestAnimationFrame?
requestAnimationFrame:setTimeout;return function(l){var h=Date.now();!0===l||0===b||16<=h-b?(b=h,a()):null===k&&(k=e(function(){k=null;a();b=Date.now()},16-(h-b)))}},R=function(a,b,k,e){e=Q(e);null!=b&&b.setEventCallback(function(a){!1!==a.redraw&&k.publish()});null!=k&&(a.redraw&&k.unsubscribe(a.redraw),k.subscribe(e));return a.redraw=e};t.mount=function(a,b){return function(k,e){if(null===e)a.render(k,[]),b.unsubscribe(k.redraw),delete k.redraw;else{if(null==e.view)throw Error("m.mount(element, component) expects a component, not a vnode");
R(k,a,b,function(){a.render(k,m(e,void 0,void 0,void 0,void 0,void 0))})()}}}(N,J);var K=function(a){if(""===a||null==a)return{};"?"===a.charAt(0)&&(a=a.slice(1));a=a.split("&");for(var b={},k={},e=0;e<a.length;e++){var l=a[e].split("="),h=decodeURIComponent(l[0]),l=2===l.length?decodeURIComponent(l[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var m=h.split(/\]\[?|\[/),p=b;-1<h.indexOf("[")&&m.pop();for(var r=0;r<m.length;r++){var h=m[r],t=m[r+1],t=""==t||!isNaN(parseInt(t,10)),u=r===m.length-1;""===
h&&(h=m.slice(0,r).join(),null==k[h]&&(k[h]=0),h=k[h]++);null==p[h]&&(p[h]=u?l:t?[]:{});p=p[h]}}return b},S=function(a){function b(b){var e=a.location[b].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);"pathname"===b&&"/"!==e[0]&&(e="/"+e);return e}function k(a){return function(){null==t&&(t=p(function(){t=null;a()}))}}function e(a,b,e){var f=a.indexOf("?"),h=a.indexOf("#"),k=-1<f?f:-1<h?h:a.length;if(-1<f){var f=K(a.slice(f+1,-1<h?h:a.length)),l;for(l in f)b[l]=f[l]}if(-1<h)for(l in b=K(a.slice(h+
1)),b)e[l]=b[l];return a.slice(0,k)}function l(){switch(r.charAt(0)){case "#":return b("hash").slice(r.length);case "?":return b("search").slice(r.length)+b("hash");default:return b("pathname").slice(r.length)+b("search")+b("hash")}}function h(b,h,f){var k={},n={};b=e(b,k,n);if(null!=h){for(var l in h)k[l]=h[l];b=b.replace(/:([^\/]+)/g,function(a,b){delete k[b];return h[b]})}(l=C(k))&&(b+="?"+l);(n=C(n))&&(b+="#"+n);m?(f&&f.replace?a.history.replaceState(null,null,r+b):a.history.pushState(null,null,
r+b),a.onpopstate()):a.location.href=r+b}var m="function"===typeof a.history.pushState,p="function"===typeof setImmediate?setImmediate:setTimeout,r="#!",t;return{setPrefix:function(a){r=a},getPath:l,setPath:h,defineRoutes:function(b,h,f){function q(){var a=l(),k={},m=e(a,k,k),q;for(q in b){var p=new RegExp("^"+q.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(p.test(m)){m.replace(p,function(){for(var e=q.match(/:[^\/]+/g)||[],f=[].slice.call(arguments,1,-2),l=0;l<e.length;l++)k[e[l].replace(/:|\./g,
"")]=decodeURIComponent(f[l]);h(b[q],k,a,q)});return}}f(a,k)}m?a.onpopstate=k(q):"#"===r.charAt(0)&&(a.onhashchange=q);q();return q},link:function(a){a.dom.setAttribute("href",r+a.attrs.href);a.dom.onclick=function(a){a.ctrlKey||a.metaKey||a.shiftKey||2===a.which||(a.preventDefault(),a.redraw=!1,a=this.getAttribute("href"),0===a.indexOf(r)&&(a=a.slice(r.length)),h(a,void 0,void 0))}}}};t.route=function(a,b){function k(a){return a}var e=S(a),l,h,t,p,r,y={view:function(){return[t(m(h,null,p,void 0,
void 0,void 0))]}},u=function(a,f,m){h="div";t=k;p=null;b(a,y);e.defineRoutes(m,function(b,e,f){var m="function"!==typeof b.view,n=k,q=l=function(k){q===l&&(l=null,h=null!=k?k:m?"div":b,t=n,p=e,r=f,a.redraw(!0))},u=function(){q()};m&&("function"===typeof b.render&&(n=b.render.bind(b)),"function"===typeof b.onmatch&&(u=b.onmatch));u.call(b,q,e,f)},function(){e.setPath(f,null,{replace:!0})})};u.link=e.link;u.prefix=e.setPrefix;u.set=e.setPath;u.get=function(){return r};return u}(window,t.mount);t.withAttr=
function(a,b,k){return function(e){return b.call(k||this,a in e.currentTarget?e.currentTarget[a]:e.currentTarget.getAttribute(a))}};t.render=N.render;t.redraw=J.publish;t.request=I.request;t.jsonp=I.jsonp;t.parseQueryString=K;t.buildQueryString=C;t.version="1.0.0-rc.5";"undefined"!==typeof module?module.exports=t:window.m=t};