/* Mithril v0.4.0 http://github.com/lhorie/mithril.js (c) Leo Horie License: MIT */ var m=function a(b,c){"use strict";function d(a){return"function"==typeof a}function e(a){return"[object Object]"===oa.call(a)}function f(a){return"[object String]"===oa.call(a)}function g(a){ja=a.document,ka=a.location,ma=a.cancelAnimationFrame||a.clearTimeout,la=a.requestAnimationFrame||a.setTimeout}function h(a,b){for(var c=[],d=1;d1)&&(P(b.nodes,b),g=[ja.createTextNode(a)]),l(c,g[0],e,a))),b=new a.constructor(a),b.nodes=g,b}function z(a,b,c,d,e,f,g){return 0===a.nodes.length?x(b,d,c):a.valueOf()!==b.valueOf()||e===!0?y(b,a,d,f,c,g):(a.nodes.intact=!0,a)}function A(a){if(a.$trusted){var b=a.match(/<[^\/]|\>\s*[^<]/g);if(null!=b)return b.length}else if(na(a))return a.length;return 1}function B(a,b,d,e,f,g,h,i,k){a=m(a);var l=[],n=b.length===a.length,o=0,s={},t=!1;j(b,function(a,c){t=!0,s[b[c].attrs.key]={action:ua,index:c}}),r(a),t&&(b=p(a,b,s,d));for(var u=0,v=0,w=a.length;w>v;v++){var x=M(d,f,b,e,a[v],b[u],g,e+o||o,h,i,k);x!==c&&(n=n&&x.nodes.intact,o+=A(x),b[u++]=x)}return n||q(a,b,l),b}function C(a,b,c,d,e){if(null!=b){if(oa.call(b)===oa.call(a))return b;if(e&&e.nodes){var f=c-d,g=f+(na(a)?a:b.nodes).length;P(e.nodes.slice(f,g),e.slice(f,g))}else b.nodes&&P(b.nodes,b)}return b=new a.constructor,b.tag&&(b={}),b.nodes=[],b}function D(a,b){return b===c?a.attrs.is?ja.createElement(a.tag,a.attrs.is):ja.createElement(a.tag):a.attrs.is?ja.createElementNS(b,a.tag,a.attrs.is):ja.createElementNS(b,a.tag)}function E(a,b,c,d){return d?O(b,a.tag,a.attrs,{},c):a.attrs}function F(a,b,d,e,f,g){return null!=a.children&&a.children.length>0?M(b,a.tag,c,c,a.children,d.children,!0,0,a.attrs.contenteditable?b:e,f,g):a.children}function G(a,b,c,d,e,f,g){var h={tag:a.tag,attrs:b,children:c,nodes:[d]};return u(h,f,g),h.children&&!h.children.nodes&&(h.children.nodes=[]),"select"===a.tag&&"value"in a.attrs&&O(d,a.tag,{value:a.attrs.value},{},e),h}function H(a,b,c,d){var e="diff"===h.redraw.strategy()&&a?a.indexOf(b):-1;return e>-1?c[e]:"function"==typeof d?new d:{}}function I(a,b,c,d){null!=d.onunload&&Ia.push({controller:d,handler:d.onunload}),a.push(c),b.push(d)}function J(a,b,c,d,e,f){var g=H(c.views,b,d,a.controller),h=+(a&&a.attrs&&a.attrs.key);return a=0===Ma||La||d&&d.indexOf(g)>-1?a.view(g):{tag:"placeholder"},"retain"===a.subtree?c:(h===h&&((a.attrs=a.attrs||{}).key=h),I(f,e,b,g),a)}function K(a,b,c,d){for(var e=b&&b.controllers;null!=a.view;)a=J(a,a.view.$original||a.view,b,e,d,c);return a}function L(a,b,c,d,e,g,h,i){var j=[],k=[];if(a=K(a,b,j,k),!a.tag&&k.length)throw new Error("Component template must return a virtual element, not an array, string, etc.");a.attrs=a.attrs||{},b.attrs=b.attrs||{};var l=Object.keys(a.attrs),m=l.length>("key"in a.attrs?1:0);if(s(a,b,l),f(a.tag)){var o=0===b.nodes.length;h=t(a,h);var p;if(o){p=D(a,h);var q=E(a,p,h,m),r=F(a,p,b,c,h,i);b=G(a,q,r,p,h,j,k)}else p=w(b,a,c,m,h,j,i,k);return(o||g===!0&&null!=p)&&n(d,p,e),v(i,a,p,o,b),b}}function M(a,b,c,f,g,h,i,j,l,m,n){return g=k(g),"retain"===g.subtree?h:(h=C(g,h,j,f,c),na(g)?B(g,h,a,j,b,i,l,m,n):null!=g&&e(g)?L(g,h,l,a,j,i,m,n):d(g)?h:z(h,g,j,a,i,l,b))}function N(a,b){return a.action-b.action||a.index-b.index}function O(a,b,c,f,g){for(var h in c){var i=c[h],j=f[h];if(h in f&&j===i)"value"===h&&"input"===b&&a.value!=i&&(a.value=i);else{f[h]=i;try{if("config"===h||"key"===h)continue;if(d(i)&&"on"===h.slice(0,2))a[h]=S(i,a);else if("style"===h&&null!=i&&e(i)){for(var k in i)(null==j||j[k]!==i[k])&&(a.style[k]=i[k]);for(var k in j)k in i||(a.style[k]="")}else null!=g?"href"===h?a.setAttributeNS("http://www.w3.org/1999/xlink","href",i):a.setAttribute("className"===h?"class":h,i):h in a&&"list"!==h&&"style"!==h&&"form"!==h&&"type"!==h&&"width"!==h&&"height"!==h?("input"!==b||a[h]!==i)&&(a[h]=i):a.setAttribute(h,i)}catch(l){if(l.message.indexOf("Invalid argument")<0)throw l}}}return f}function P(a,b){for(var c=a.length-1;c>-1;c--)if(a[c]&&a[c].parentNode){try{a[c].parentNode.removeChild(a[c])}catch(d){}b=[].concat(b),b[c]&&Q(b[c])}a.length=0}function Q(a){a.configContext&&d(a.configContext.onunload)&&(a.configContext.onunload(),a.configContext.onunload=null),a.controllers&&i(a.controllers,function(a){d(a.onunload)&&a.onunload({preventDefault:sa})}),a.children&&(na(a.children)?i(a.children,Q):a.children.tag&&Q(a.children))}function R(a,b,c){var d=a.childNodes[b];if(d){var e=1!==d.nodeType,f=ja.createElement("span");e?(a.insertBefore(f,d||null),f.insertAdjacentHTML("beforebegin",c),a.removeChild(f)):d.insertAdjacentHTML("beforebegin",c)}else a.insertAdjacentHTML("beforeend",c);for(var g=[];a.childNodes[b]!==d;)g.push(a.childNodes[b]),b++;return g}function S(a,b){return function(c){c=c||event,h.redraw.strategy("diff"),h.startComputation();try{return a.call(b,c)}finally{X()}}}function T(a){var b=ya.indexOf(a);return 0>b?ya.push(a)-1:b}function U(a){var b=function(){return arguments.length&&(a=arguments[0]),a};return b.toJSON=function(){return a},b}function V(a,b){var c=function(){return(a.controller||sa).apply(this,b)||this};a.controller&&(c.prototype=a.controller.prototype);var d=function(c){for(var d=1;d=200&&e.status<300?a.onload({type:"load",target:e}):a.onerror({type:"error",target:e}))},a.serialize===JSON.stringify&&a.data&&"GET"!==a.method&&e.setRequestHeader("Content-Type","application/json; charset=utf-8"),a.deserialize===JSON.parse&&e.setRequestHeader("Accept","application/json, text/*"),d(a.config)){var g=a.config(e,a);null!=g&&(e=g)}var h="GET"!==a.method&&a.data?a.data:"";if(h&&!f(h)&&h.constructor!==b.FormData)throw new Error("Request data should be either be a string or FormData. Check the `serialize` option in `m.request`");return e.send(h),e}var i="mithril_callback_"+(new Date).getTime()+"_"+Math.round(1e16*Math.random()).toString(36),j=ja.createElement("script");b[i]=function(d){j.parentNode.removeChild(j),a.onload({type:"load",target:{responseText:d}}),b[i]=c},j.onerror=function(){return j.parentNode.removeChild(j),a.onerror({type:"error",target:{status:500,responseText:JSON.stringify({error:"Error making jsonp request"})}}),b[i]=c,!1},j.onload=function(){return!1},j.src=a.url+(a.url.indexOf("?")>0?"&":"?")+(a.callbackKey?a.callbackKey:"callback")+"="+i+"&"+aa(a.data||{}),ja.body.appendChild(j)}function ha(a,b,c){if("GET"===a.method&&"jsonp"!==a.dataType){var d=a.url.indexOf("?")<0?"?":"&",e=aa(b);a.url=a.url+(e?d+e:"")}else a.data=c(b);return a}function ia(a,b){var c=a.match(/:[a-z]\w+/gi);return c&&b&&i(c,function(c){var d=c.slice(1);a=a.replace(c,b[d]),delete b[d]}),a}var ja,ka,la,ma,na=Array.isArray||function(a){return"[object Array]"===oa.call(a)},oa={}.toString,pa=/(?:(^|#|\.)([^#\.\[\]]+))|(\[.+?\])/g,qa=/\[(.+?)(?:=("|'|)(.*?)\2)?\]/,ra=/^(AREA|BASE|BR|COL|COMMAND|EMBED|HR|IMG|INPUT|KEYGEN|LINK|META|PARAM|SOURCE|TRACK|WBR)$/,sa=function(){};g(b);var ta,ua=1,va=2,wa=3,xa={appendChild:function(a){ta===c&&(ta=ja.createElement("html")),ja.documentElement&&ja.documentElement!==a?ja.replaceChild(a,ja.documentElement):ja.appendChild(a),this.childNodes=ja.childNodes},insertBefore:function(a){this.appendChild(a)},childNodes:[]},ya=[],za={};h.render=function(a,b,d){var e=[];if(!a)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var f=T(a),g=a===ja,h=g||a===ja.documentElement?xa:a;g&&"html"!==b.tag&&(b={tag:"html",attrs:{},children:b}),za[f]===c&&P(h.childNodes),d===!0&&ca(a),za[f]=M(h,null,c,c,b,za[f],!1,0,null,c,e),i(e,function(a){a()})},h.trust=function(a){return a=new String(a),a.$trusted=!0,a},h.prop=function(a){return(null!=a&&e(a)||d(a))&&d(a.then)?da(a):U(a)};var Aa,Ba=[],Ca=[],Da=[],Ea=null,Fa=0,Ga=null,Ha=null,Ia=[],Ja=16;h.component=function(a){for(var b=[],c=1;cc&&(c=Ba.length);var e=!1,f={preventDefault:function(){e=!0,Ga=Ha=null}};if(i(Ia,function(a){a.handler.call(a.controller,f),a.controller.onunload=null}),e?i(Ia,function(a){a.controller.onunload=a.handler}):Ia=[],Da[c]&&d(Da[c].onunload)&&Da[c].onunload(f),!e){h.redraw.strategy("all"),h.startComputation(),Ba[c]=a;var g=Aa=b?b:b={controller:sa},j=new(b.controller||sa);return g===Aa&&(Da[c]=j,Ca[c]=b),X(),Da[c]}};var Ka=!1,La=!1;h.redraw=function(a){if(!Ka){Ka=!0,a&&(La=!0);try{Ea&&!a?(la===b.requestAnimationFrame||new Date-Fa>Ja)&&(Ea>0&&ma(Ea),Ea=la(W,Ja)):(W(),Ea=la(function(){Ea=null},Ja))}finally{Ka=La=!1}}},h.redraw.strategy=h.prop();var Ma=0;h.startComputation=function(){Ma++},h.endComputation=function(){Ma>1?Ma--:(Ma=0,h.redraw())},h.withAttr=function(a,b){return function(c){c=c||event;var d=c.currentTarget||this;b(a in d?d[a]:d.getAttribute(a))}};var Na,Oa,Pa={pathname:"",hash:"#",search:"?"},Qa=sa,Ra=!1;return h.route=function(a,c,d,e){if(0===arguments.length)return Oa;if(3===arguments.length&&f(c)){Qa=function(b){var e=Oa=Y(b);if(!Z(a,d,e)){if(Ra)throw new Error("Ensure the default route matches one of the routes defined in m.route");Ra=!0,h.route(c,!0),Ra=!1}};var g="hash"===h.route.mode?"onhashchange":"onpopstate";b[g]=function(){var a=ka[h.route.mode];"pathname"===h.route.mode&&(a+=ka.search),Oa!==Y(a)&&Qa(a)},Ga=_,b[g]()}else if(a.addEventListener||a.attachEvent)a.href=("pathname"!==h.route.mode?ka.pathname:"")+Pa[h.route.mode]+e.attrs.href,a.addEventListener?(a.removeEventListener("click",$),a.addEventListener("click",$)):(a.detachEvent("onclick",$),a.attachEvent("onclick",$));else if(f(a)){var i=Oa;Oa=a;var j=c||{},k=Oa.indexOf("?"),l=k>-1?ba(Oa.slice(k+1)):{};for(var m in j)l[m]=j[m];var n=aa(l),o=k>-1?Oa.slice(0,k):Oa;n&&(Oa=o+(-1===o.indexOf("?")?"?":"&")+n);var p=(3===arguments.length?d:c)===!0||i===a;b.history.pushState?(Ga=_,Ha=function(){b.history[p?"replaceState":"pushState"](null,ja.title,Pa[h.route.mode]+Oa)},Qa(Pa[h.route.mode]+Oa)):(ka[h.route.mode]=Oa,Qa(Pa[h.route.mode]+Oa))}},h.route.param=function(a){if(!Na)throw new Error("You must call m.route(element, defaultRoute, routes) before calling m.route.param()");return Na[a]},h.route.mode="search",h.route.buildQueryString=aa,h.route.parseQueryString=ba,h.deferred=function(){var a=new ea;return a.promise=da(a.promise),a},h.deferred.onerror=function(a){if("[object Error]"===oa.call(a)&&!a.constructor.toString().match(/ Error/))throw Ma=0,a},h.sync=function(a){function b(a,b){return function(g){return f[a]=g,b||(c="reject"),0===--e&&(d.promise(f),d[c](f)),g}}var c="resolve",d=h.deferred(),e=a.length,f=new Array(e);return a.length>0?i(a,function(a,c){a.then(b(c,!0),b(c,!1))}):d.resolve([]),d.promise},h.request=function(a){a.background!==!0&&h.startComputation();var b=new ea,c=a.dataType&&"jsonp"===a.dataType.toLowerCase(),d=a.serialize=c?fa:a.serialize||JSON.stringify,e=a.deserialize=c?fa:a.deserialize||JSON.parse,f=c?function(a){return a.responseText}:a.extract||function(a){return 0===a.responseText.length&&e===JSON.parse?null:a.responseText};return a.method=(a.method||"GET").toUpperCase(),a.url=ia(a.url,a.data),a=ha(a,a.data,d),a.onload=a.onerror=function(c){try{c=c||event;var d=("load"===c.type?a.unwrapSuccess:a.unwrapError)||fa,g=d(e(f(c.target,a)),c.target);"load"===c.type&&(na(g)&&a.type?i(g,function(b,c){g[c]=new a.type(b)}):a.type&&(g=new a.type(g))),b["load"===c.type?"resolve":"reject"](g)}catch(c){h.deferred.onerror(c),b.reject(c)}a.background!==!0&&h.endComputation()},ga(a),b.promise=da(b.promise,a.initialValue),b.promise},h.deps=function(a){return g(b=a||b),b},h.deps.factory=a,h}("undefined"!=typeof window?window:{});"object"==typeof module&&null!=module&&module.exports?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m}); //# sourceMappingURL=mithril.min.js.map