mithril-vndb/mithril.min.js
2015-11-07 14:37:29 +01:00

8 lines
No EOL
20 KiB
JavaScript

/*
Mithril v0.2.1
http://github.com/lhorie/mithril.js
(c) Leo Horie
License: MIT
*/
!function(a,b){"use strict";var c=b("undefined"!=typeof window?window:{});"object"==typeof module&&null!=module&&module.exports?module.exports=c:"function"==typeof define&&define.amd?define(function(){return c}):a.m=c}(this,function(a,b){"use strict";function c(a){return"function"==typeof a}function d(a){return"[object Object]"===Ka.call(a)}function e(a){return"[object String]"===Ka.call(a)}function f(){}function g(a,b){for(var c=0;c<a.length&&!b(a[c],c++););}function h(a,b){for(var c in a)if(La.call(a,c)&&b(a[c],c))break}function i(a){Fa=a.document,Ga=a.location,Ia=a.cancelAnimationFrame||a.clearTimeout,Ha=a.requestAnimationFrame||a.setTimeout}function j(a){return null!=a&&d(a)&&!("tag"in a||"view"in a||"subtree"in a)}function k(a,b){for(var c,d=[];null!=(c=Na.exec(a));)if(""===c[1]&&c[2])b.tag=c[2];else if("#"===c[1])b.attrs.id=c[2];else if("."===c[1])d.push(c[2]);else if("["===c[3][0]){var e=Oa.exec(c[3]);b.attrs[e[1]]=e[3]||(e[2]?"":!0)}return d}function l(a,b){var c=a?b.slice(1):b;return 1===c.length&&Ma(c[0])?c[0]:c}function m(a,b,c,d){h(b,function(e,f){f===c&&null!=b[f]&&""!==b[f]?(d.push(b[f]),a.attrs[f]=""):a.attrs[f]=b[f]}),d.length&&(a.attrs[c]=d.join(" "))}function n(a,b){for(var c=[],f=1;f<arguments.length;f++)c[f-1]=arguments[f];if(d(a))return da(a,c);var g=j(b),h=g?b:{},i="class"in h?"class":"className",n={tag:"div",attrs:{}};if(!e(a))throw new Error("selector in m(selector, attrs, children) should be a string");var o=k(a,n);return n.children=l(g,c),m(n,h,i,o),n}function o(a,b){g(a,function(a,c){return a=a&&a.attrs,a&&null!=a.key&&b(a,c)})}function p(a){try{if(null!=a&&null!=a.toString())return a}catch(b){}return""}function q(a,b,c,d){try{s(a,b,c),b.nodeValue=d}catch(e){}}function r(a){for(var b=0;b<a.length;b++)Ma(a[b])&&(a=a.concat.apply([],a),b--);return a}function s(a,b,c){a.insertBefore(b,a.childNodes[c]||null)}function t(a,b,c,d){o(a,function(a,d){a=a.key,b[a]?b[a]={action:Sa,index:d,from:b[a].index,element:c.nodes[b[a].index]||Fa.createElement("div")}:b[a]={action:Ra,index:d}});var e=[];h(b,function(a){e.push(a)});var f=e.sort(V),i=new Array(c.length);return i.nodes=c.nodes.slice(),g(f,function(b){var e=b.index;switch(b.action){case Qa:Z(c[e].nodes,c[e]),i.splice(e,1);break;case Ra:var f=Fa.createElement("div");f.key=a[e].attrs.key,s(d,f,e),i.splice(e,0,{attrs:{key:a[e].attrs.key},nodes:[f]}),i.nodes[e]=f;break;case Sa:var g=b.element,h=d.childNodes[e];h!==g&&null!==g&&d.insertBefore(g,h||null),i[e]=c[b.from],i.nodes[e]=g}}),i}function u(a,b,c,d){var e=a.length!==b.length;return e||o(a,function(a,c){var d=b[c];return e=d&&d.attrs&&d.attrs.key!==a.key}),e?t(a,c,b,d):b}function v(a,b,c){g(a,function(a,d){null!=b[d]&&c.push.apply(c,b[d].nodes)}),g(b.nodes,function(a,d){null!=a.parentNode&&c.indexOf(a)<0&&Z([a],[b[d]])}),a.length<b.length&&(b.length=a.length),b.nodes=c}function w(a){var b=0;o(a,function(){return g(a,function(a){a=a&&a.attrs,a&&null==a.key&&(a.key="__mithril__"+b++)}),!0})}function x(a,b){a.sort(),b.sort();var c=a.length;if(c!==b.length)return!1;for(var d=0;c>d;d++)if(a[d]!==b[d])return!1;return!0}function y(a,b,c){return a.tag!==b.tag?!0:x(c,Object.keys(b.attrs))?a.attrs.id!==b.attrs.id?!0:a.attrs.key!==b.attrs.key?!0:"all"===n.redraw.strategy()?!(b.configContext&&b.configContext.retain===!0):"diff"===n.redraw.strategy()?b.configContext&&b.configContext.retain===!1:void 0:!0}function z(a,b,d){y(a,b,d)&&(b.nodes.length&&Z(b.nodes),b.configContext&&c(b.configContext.onunload)&&b.configContext.onunload(),b.controllers&&g(b.controllers,function(a){a.unload&&a.onunload({preventDefault:f})}))}function A(a,b){return a.attrs.xmlns?a.attrs.xmlns:"svg"===a.tag?"http://www.w3.org/2000/svg":"math"===a.tag?"http://www.w3.org/1998/Math/MathML":b}function B(a,b,c){c.length&&(a.views=b,a.controllers=c,g(c,function(a){if(a.onunload&&a.onunload.$old&&(a.onunload=a.onunload.$old),Ta&&a.onunload){var b=a.onunload;a.onunload=f,a.onunload.$old=b}}))}function C(a,b,d,e,f){var g=b.attrs.config;if(c(g)){var h=f.configContext=f.configContext||{};a.push(function(){return g.call(b,d,!e,h,f)})}}function D(a,c,d,e,f,g,h,i){var j=a.nodes[0];return e&&Y(j,c.tag,c.attrs,a.attrs,f),a.children=U(j,c.tag,b,b,c.children,a.children,!1,0,c.attrs.contenteditable?j:d,f,h),a.nodes.intact=!0,i.length&&(a.views=g,a.controllers=i),j}function E(a,b,c){var d;a.$trusted?d=_(b,c,a):(d=[Fa.createTextNode(a)],Pa.test(b.nodeName)||s(b,d[0],c));var e;return e="string"==typeof a||"number"==typeof a||"boolean"==typeof a?new a.constructor(a):a,e.nodes=d,e}function F(a,b,c,d,e,f){var g=b.nodes;return d&&d===Fa.activeElement||(a.$trusted?(Z(g,b),g=_(c,e,a)):"textarea"===f?c.value=a:d?d.innerHTML=a:((1===g[0].nodeType||g.length>1)&&(Z(b.nodes,b),g=[Fa.createTextNode(a)]),q(c,g[0],e,a))),b=new a.constructor(a),b.nodes=g,b}function G(a,b,c,d,e,f,g){return 0===a.nodes.length?E(b,d,c):a.valueOf()!==b.valueOf()||e?F(b,a,d,f,c,g):(a.nodes.intact=!0,a)}function H(a){if(!a.$trusted)return Ma(a)?a.length:1;var b=a.match(/<[^\/]|\>\s*[^<]/g);return null!=b?b.length:void 0}function I(a,c,d,e,f,g,h,i,j){a=r(a);var k=[],l=c.length===a.length,m=0,n={},p=!1;o(c,function(a,b){p=!0,n[c[b].attrs.key]={action:Qa,index:b}}),w(a),p&&(c=u(a,c,n,d));for(var q=0,s=0,t=a.length;t>s;s++){var x=U(d,f,c,e,a[s],c[q],g,e+m||m,h,i,j);x!==b&&(l=l&&x.nodes.intact,m+=H(x),c[q++]=x)}return l||v(a,c,k),c}function J(a,b,c,d,e){if(null!=b){if(Ka.call(b)===Ka.call(a))return b;if(e&&e.nodes){var f=c-d,g=f+(Ma(a)?a:b.nodes).length;Z(e.nodes.slice(f,g),e.slice(f,g))}else b.nodes&&Z(b.nodes,b)}return b=new a.constructor,b.tag&&(b={}),b.nodes=[],b}function K(a,c){return c===b?a.attrs.is?Fa.createElement(a.tag,a.attrs.is):Fa.createElement(a.tag):a.attrs.is?Fa.createElementNS(c,a.tag,a.attrs.is):Fa.createElementNS(c,a.tag)}function L(a,b,c,d){return d?Y(b,a.tag,a.attrs,{},c):a.attrs}function M(a,c,d,e,f,g){return null!=a.children&&0!==a.children.length?U(c,a.tag,b,b,a.children,d.children,!0,0,a.attrs.contenteditable?c:e,f,g):a.children}function N(a,b,c,d,e,f,g){var h={tag:a.tag,attrs:b,children:c,nodes:[d]};return B(h,f,g),h.children&&!h.children.nodes&&(h.children.nodes=[]),"select"===a.tag&&"value"in a.attrs&&Y(d,a.tag,{value:a.attrs.value},{},e),h}function O(a,b,c,d){var e="diff"===n.redraw.strategy()&&a?a.indexOf(b):-1;return e>-1?c[e]:"function"==typeof d?new d:{}}function P(a,b,c,d){null!=d.onunload&&Va.push({controller:d,handler:d.onunload}),a.push(c),b.push(d)}function Q(a,b,c,d,e,f){var g=O(c.views,b,d,a.controller),h=+(a&&a.attrs&&a.attrs.key);return a=0===Ta||Wa||d&&d.indexOf(g)>-1?a.view(g):{tag:"placeholder"},"retain"===a.subtree?c:(h===h&&((a.attrs=a.attrs||{}).key=h),P(f,e,b,g),a)}function R(a,b,c,d){for(var e=b&&b.controllers;null!=a.view;)a=Q(a,a.view.$original||a.view,b,e,d,c);return a}function S(a,b,c,d,e,f,g,h,i,j,k,l){var m;if(a){m=K(b,c);var n=L(b,m,c,d),o=M(b,m,e,f,c,g);e=N(b,n,o,m,c,h,i)}else m=D(e,b,f,d,c,h,g,i);return(a||k&&null!=m)&&s(j,m,l),C(g,b,m,a,e),e}function T(a,b,c,d,f,g,h,i){var j=[],k=[];if(a=R(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);return z(a,b,l),e(a.tag)?S(0===b.nodes.length,a,A(a,h),m,b,c,i,j,k,d,g,f):void 0}function U(a,b,e,f,g,h,i,j,k,l,m){return g=p(g),"retain"===g.subtree?h:(h=J(g,h,j,f,e),Ma(g)?I(g,h,a,j,b,i,k,l,m):null!=g&&d(g)?T(g,h,k,a,j,i,l,m):c(g)?h:G(h,g,j,a,i,k,b))}function V(a,b){return a.action-b.action||a.index-b.index}function W(a){return"list"!==a&&"style"!==a&&"form"!==a&&"type"!==a&&"width"!==a&&"height"!==a}function X(a,b,e,f,g,i){if("config"!==a&&"key"!==a)if(c(b)&&"on"===a.slice(0,2))f[a]=aa(b,f);else if("style"===a&&null!=b&&d(b)){h(b,function(a,b){(null==e||e[b]!==a)&&(f.style[b]=a)});for(var j in e)La.call(e,j)&&(La.call(b,j)||(f.style[j]=""))}else null!=g?"href"===a?f.setAttributeNS("http://www.w3.org/1999/xlink","href",b):f.setAttribute("className"===a?"class":a,b):a in f&&W(a)?("input"!==i||f[a]!==b)&&(f[a]=b):f.setAttribute(a,b)}function Y(a,b,c,d,e){return h(c,function(c,f){var g=d[f];if(f in d&&g===c)"value"===f&&"input"===b&&a.value!=c&&(a.value=c);else{d[f]=c;try{X(f,c,g,a,e,b)}catch(h){if(h.message.indexOf("Invalid argument")<0)throw h}}}),d}function Z(a,b){for(var c=a.length-1;c>=0;c--)if(a[c]&&a[c].parentNode){try{a[c].parentNode.removeChild(a[c])}catch(d){}b=[].concat(b),b[c]&&$(b[c])}a.length&&(a.length=0)}function $(a){a.configContext&&c(a.configContext.onunload)&&(a.configContext.onunload(),a.configContext.onunload=null),a.controllers&&g(a.controllers,function(a){c(a.onunload)&&a.onunload({preventDefault:f})}),a.children&&(Ma(a.children)?g(a.children,$):a.children.tag&&$(a.children))}function _(a,b,c){var d=a.childNodes[b];if(d){var e=1!==d.nodeType,f=Fa.createElement("span");e?(a.insertBefore(f,d||null),f.insertAdjacentHTML("beforebegin",c),a.removeChild(f)):d.insertAdjacentHTML("beforebegin",c)}else Xa(a,c);for(var g=[];a.childNodes[b]!==d;)g.push(a.childNodes[b]),b++;return g}function aa(a,b){return function(c){c=c||event,n.redraw.strategy("diff"),n.startComputation();try{return a.call(b,c)}finally{ia()}}}function ba(a){var b=Za.indexOf(a);return 0>b?Za.push(a)-1:b}function ca(a){function b(){return arguments.length&&(a=arguments[0]),a}return b.toJSON=function(){return a},b}function da(a,b){function c(){return e.apply(this,b)||this}function d(c){for(var d=[c].concat(b),e=1;e<arguments.length;e++)d.push(arguments[e]);return g.apply(a,d)}var e=a.controller||f,g=a.view||f;e!==f&&(c.prototype=e.prototype),d.$original=g;var h={controller:c,view:d};return b[0]&&null!=b[0].key&&(h.attrs={key:b[0].key}),h}function ea(a,b,c,d){var e=null===a;if(!d){n.redraw.strategy("all"),n.startComputation(),ab[c]=b,a=_a=a||{controller:f};var g=new(a.controller||f);return a===_a&&(cb[c]=g,bb[c]=a),ia(),e&&fa(b,c),cb[c]}e&&fa(b,c)}function fa(a,b){ab.splice(b,1),cb.splice(b,1),bb.splice(b,1),ta(a),Za.splice(ba(a),1)}function ga(){gb>0&&Ia(gb),gb=Ha(ha,fb)}function ha(){db&&(db(),db=null),g(ab,function(a,b){var c=bb[b];if(cb[b]){var d=[cb[b]];n.render(a,c.view?c.view(cb[b],d):"")}}),eb&&(eb(),eb=null),gb=null,hb=new Date,n.redraw.strategy("diff")}function ia(){"none"===n.redraw.strategy()?(Ta--,n.redraw.strategy("diff")):n.endComputation()}function ja(b){a[b]=function(){var a=Ga[n.route.mode];"pathname"===n.route.mode&&(a+=Ga.search),lb!==na(a)&&nb(a)},db=qa,a[b]()}function ka(){return("pathname"===n.route.mode?"":Ga.pathname)+mb[n.route.mode]}function la(b){if(a.history.pushState){db=qa;var c=b?"replaceState":"pushState";eb=function(){a.history[c](null,Fa.title,mb[n.route.mode]+lb)},nb(mb[n.route.mode]+lb)}else Ga[n.route.mode]=lb,nb(mb[n.route.mode]+lb)}function ma(a,b,c){arguments.length<3&&"object"!=typeof b&&(c=b,b=null);var d=lb;lb=a;var e,f,g=b||{},i=lb.indexOf("?");if(i>=0){var j=sa(lb.slice(i+1));h(g,function(a,b){j[b]=g[b]}),e=ra(j),f=lb.slice(0,i)}else e=ra(b),f=lb;if(e){var k=-1===f.indexOf("?")?"?":"&";lb=f+k+e}return la(c||d===a)}function na(a){return a.slice(mb[n.route.mode].length)}function oa(a,b,c){var d=c.indexOf("?");d>=0?(kb=sa(c.substr(d+1,c.length)),c=c.substr(0,d)):kb={};var e=Object.keys(b),f=e.indexOf(c);if(f>=0)return n.mount(a,b[e[f]]),!0;for(var h in b)if(La.call(b,h)){if(h===c)return n.mount(a,b[h]),!0;var i=new RegExp("^"+h.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(i.test(c))return c.replace(i,function(){var c=h.match(/:[^\/]+/g)||[],d=[].slice.call(arguments,1,-2);g(c,function(a,b){a=a.replace(/:|\./g,""),kb[a]=decodeURIComponent(d[b])}),n.mount(a,b[h])}),!0}}function pa(a){if(a=a||event,!a.ctrlKey&&!a.metaKey&&2!==a.which){a.preventDefault?a.preventDefault():a.returnValue=!1;var b,c=a.currentTarget||a.srcElement;for(b="pathname"===n.route.mode&&c.search?sa(c.search.slice(1)):{};c&&"A"!==c.nodeName.toUpperCase();)c=c.parentNode;n.route(c[n.route.mode].slice(mb[n.route.mode].length),b)}}function qa(){"hash"!==n.route.mode&&Ga.hash?Ga.hash=Ga.hash:a.scrollTo(0,0)}function ra(a,c){var e={},f=[];return h(a,function(a,h){var i=c?c+"["+h+"]":h;if(null===a)f.push(encodeURIComponent(i));else if(d(a))f.push(ra(a,i));else if(Ma(a)){var j=[];e[i]=e[i]||{},g(a,function(a){e[i][a]||(e[i][a]=!0,j.push(encodeURIComponent(i)+"="+encodeURIComponent(a)))}),f.push(j.join("&"))}else a!==b&&f.push(encodeURIComponent(i)+"="+encodeURIComponent(a))}),f.join("&")}function sa(a){if(""===a||null==a)return{};"?"===a.charAt(0)&&(a=a.slice(1));var b=a.split("&"),c={};return g(b,function(a){var b=a.split("="),d=decodeURIComponent(b[0]),e=2===b.length?decodeURIComponent(b[1]):null;null!=c[d]?(Ma(c[d])||(c[d]=[c[d]]),c[d].push(e)):c[d]=e}),c}function ta(a){var c=ba(a);Z(a.childNodes,$a[c]),$a[c]=b}function ua(a,b){function e(a){j=a||sb,g(l,function(a){j===rb?a.resolve(k):a.reject(k)})}function f(a,b,e,f){if((null!=k&&d(k)||c(k))&&c(a))try{var g=0;a.call(k,function(a){g++||(k=a,b())},function(a){g++||(k=a,e())})}catch(h){n.deferred.onerror(h),k=h,e()}else f()}function h(){var d;try{d=k&&k.then}catch(g){return n.deferred.onerror(g),k=g,j=qb,h()}f(d,function(){j=pb,h()},function(){j=qb,h()},function(){try{j===pb&&c(a)?k=a(k):j===qb&&c(b)&&(k=b(k),j=pb)}catch(g){return n.deferred.onerror(g),k=g,e()}k===i?(k=TypeError(),e()):f(d,function(){e(rb)},e,function(){e(j===pb&&rb)})})}var i=this,j=0,k=0,l=[];i.promise={},i.resolve=function(a){return j||(k=a,j=pb,h()),this},i.reject=function(a){return j||(k=a,j=qb,h()),this},i.promise.then=function(a,b){var c=new ua(a,b);return j===rb?c.resolve(k):j===sb?c.reject(k):l.push(c),c.promise}}function va(a,b){var c=n.prop(b);return a.then(c),c.then=function(c,d){return va(a.then(c,d),b)},c["catch"]=c.then.bind(null,null),c["finally"]=function(a){function d(){return n.deferred().resolve(a()).promise}return c.then(function(a){return va(d().then(function(){return a}),b)},function(a){return va(d().then(function(){throw new Error(a)}),b)})},c}function wa(a){return a instanceof EvalError||a instanceof RangeError||a instanceof ReferenceError||a instanceof SyntaxError||a instanceof TypeError||a instanceof URIError}function xa(a){return a}function ya(){return"mithril_callback_"+(new Date).getTime()+"_"+Math.round(1e16*Math.random()).toString(36)}function za(c){var d=ya(),e=Fa.createElement("script");a[d]=function(f){e.parentNode.removeChild(e),c.onload({type:"load",target:{responseText:f}}),a[d]=b},e.onerror=function(){return e.parentNode.removeChild(e),c.onerror({type:"error",target:{status:500,responseText:'{"error": "Error making jsonp request"}'}}),a[d]=b,!1},e.onload=function(){return!1},e.src=c.url+(c.url.indexOf("?")>0?"&":"?")+(c.callbackKey?c.callbackKey:"callback")+"="+d+"&"+ra(c.data||{}),Fa.body.appendChild(e)}function Aa(b){var d=new a.XMLHttpRequest;if(d.open(b.method,b.url,!0,b.user,b.password),d.onreadystatechange=function(){4===d.readyState&&(d.status>=200&&d.status<300?b.onload({type:"load",target:d}):b.onerror({type:"error",target:d}))},b.serialize===JSON.stringify&&b.data&&"GET"!==b.method&&d.setRequestHeader("Content-Type","application/json; charset=utf-8"),b.deserialize===JSON.parse&&d.setRequestHeader("Accept","application/json, text/*"),c(b.config)){var f=b.config(d,b);null!=f&&(d=f)}var g;if(g="GET"!==b.method&&b.data?b.data:"",g&&!e(g)&&g.constructor!==a.FormData)throw new Error("Request data should be either be a string or FormData. Check the `serialize` option in `m.request`");return d.send(g),d}function Ba(a){return a.dataType&&"jsonp"===a.dataType.toLowerCase()?za(a):Aa(a)}function Ca(a,b,c){if("GET"===a.method&&"jsonp"!==a.dataType){var d=a.url.indexOf("?")<0?"?":"&",e=ra(b);a.url+=e?d+e:""}else a.data=c(b);return a}function Da(a,b){var c=a.match(/:[a-z]\w+/gi);return c&&b&&g(c,function(c){var d=c.slice(1);a=a.replace(c,b[d]),delete b[d]}),a}function Ea(a){return a.responseText}var Fa,Ga,Ha,Ia,Ja="v0.2.1",Ka={}.toString,La={}.hasOwnProperty,Ma=Array.isArray||function(a){return"[object Array]"===Ka.call(a)},Na=/(?:(^|#|\.)([^#\.\[\]]+))|(\[.+?\])/g,Oa=/\[(.+?)(?:=("|'|)(.*?)\2)?\]/,Pa=/^(AREA|BASE|BR|COL|COMMAND|EMBED|HR|IMG|INPUT|KEYGEN|LINK|META|PARAM|SOURCE|TRACK|WBR)$/;i(a),n.deps=function(b){return i(a=b||a),a},n.version=function(){return Ja};var Qa=1,Ra=2,Sa=3,Ta=0;n.startComputation=function(){Ta++},n.endComputation=function(){Ta>1?Ta--:(Ta=0,n.redraw())};var Ua,Va=[],Wa=!1,Xa=function(){try{return Fa.createRange().createContextualFragment("x"),function(a,b){a.appendChild(Fa.createRange().createContextualFragment(b))}}catch(a){return function(a,b){a.insertAdjacentHTML("beforeend",b)}}}(),Ya={appendChild:function(a){Ua===b&&(Ua=Fa.createElement("html")),Fa.documentElement&&Fa.documentElement!==a?Fa.replaceChild(a,Fa.documentElement):Fa.appendChild(a),this.childNodes=Fa.childNodes},insertBefore:function(a){this.appendChild(a)},childNodes:[]},Za=[],$a={};n.render=function(a,c,d){if(!a)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var e,f=[],h=ba(a),i=a===Fa;e=i||a===Fa.documentElement?Ya:a,i&&"html"!==c.tag&&(c={tag:"html",attrs:{},children:c}),$a[h]===b&&Z(e.childNodes),d===!0&&ta(a),$a[h]=U(e,null,b,b,c,$a[h],!1,0,null,b,f),g(f,function(a){a()})},n.trust=function(a){return a=new String(a),a.$trusted=!0,a},n.prop=function(a){return(null!=a&&d(a)||c(a))&&c(a.then)?va(a):ca(a)};var _a,ab=[],bb=[],cb=[],db=null,eb=null,fb=16;n.component=function(a){for(var b=[],c=1;c<arguments.length;c++)b.push(arguments[c]);return da(a,b)},n.mount=n.module=function(a,b){if(!a)throw new Error("Please ensure the DOM element exists before rendering a template into it.");var d=ab.indexOf(a);0>d&&(d=ab.length);var e=!1,f={preventDefault:function(){e=!0,db=eb=null}};return g(Va,function(a){a.handler.call(a.controller,f),a.controller.onunload=null}),e?g(Va,function(a){a.controller.onunload=a.handler}):Va=[],cb[d]&&c(cb[d].onunload)&&cb[d].onunload(f),ea(b,a,d,e)};var gb=0,hb=0,ib=Ha===a.requestAnimationFrame?ga:function(){+new Date-hb>fb&&ga()},jb=!1;n.redraw=function(a){if(!jb){jb=!0,a&&(Wa=!0);try{gb&&!a?ib():(ha(),gb=Ha(function(){gb=0},fb))}finally{jb=Wa=!1}}},n.redraw.strategy=n.prop(),n.withAttr=function(a,b,c){return function(d){d=d||event;var e,f=d.currentTarget||this,g=c||this;e=a in f?f[a]:f.getAttribute(a),b.call(g,e)}};var kb,lb,mb={pathname:"",hash:"#",search:"?"},nb=f,ob=!1;n.route=function(a,b,c,d){if(0===arguments.length)return lb;if(3===arguments.length&&e(b))nb=function(d){var e=lb=na(d);if(!oa(a,c,e)){if(ob)throw new Error("Ensure the default route matches one of the routes defined in m.route");ob=!0,n.route(b,!0),ob=!1}},ja("hash"===n.route.mode?"onhashchange":"onpopstate");else if(a.addEventListener||a.attachEvent)a.href=ka()+d.attrs.href,a.addEventListener?(a.removeEventListener("click",pa),a.addEventListener("click",pa)):(a.detachEvent("onclick",pa),a.attachEvent("onclick",pa));else if(e(a))return ma.apply(this,arguments)},n.route.param=function(a){if(!kb)throw new Error("You must call m.route(element, defaultRoute, routes) before calling m.route.param()");return a?kb[a]:kb},n.route.mode="search",n.route.buildQueryString=ra,n.route.parseQueryString=sa;var pb=1,qb=2,rb=3,sb=4;return n.deferred=function(){var a=new ua;return a.promise=va(a.promise),a},n.deferred.onerror=function(a){if(wa(a))throw Ta=0,a},n.sync=function(a){function b(a,b){return function(g){return e[a]=g,b||(f="reject"),0===--d&&(c.promise(e),c[f](e)),g}}var c=n.deferred(),d=a.length,e=new Array(d),f="resolve";return a.length>0?g(a,function(a,c){a.then(b(c,!0),b(c,!1))}):c.resolve([]),c.promise},n.request=function(a){a.background!==!0&&n.startComputation();var b=new ua,c=xa,d=xa,e=Ea;return a.dataType&&"jsonp"===a.dataType.toLowerCase()||(c=a.serialize||JSON.stringify,d=a.deserialize||JSON.parse,e=function(a){return 0===a.responseText.length&&d===JSON.parse?null:a.responseText}),a.serialize=c,a.deserialize=d,a.method=(a.method||"GET").toUpperCase(),a.url=Da(a.url,a.data),a=Ca(a,a.data,c),a.onload=a.onerror=function(c){c=c||event;var f,h,i="load"===c.type;f=i?a.unwrapSuccess:a.unwrapError;try{h=(f||xa)(d(e(c.target,a)),c.target),i&&(Ma(h)&&a.type?g(h,function(b,c){h[c]=new a.type(b)}):a.type&&(h=new a.type(h)))}catch(j){n.deferred.onerror(j),h=j,i=!1}b[i?"resolve":"reject"](h),a.background!==!0&&n.endComputation()},Ba(a),b.promise=va(b.promise,a.initialValue),b.promise},n});
//# sourceMappingURL=mithril.min.js.map