This commit is contained in:
Leo Horie 2016-11-02 14:57:09 -04:00
commit 8b168deef4
6 changed files with 82 additions and 53 deletions

86
mithril.min.js vendored
View file

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