mithril-vndb/mithril.min.js
impinball d7ef127be2 Isolate m.prop() and m.deferred() implementations (mostly)
This mostly isolates the implementations for both of these. Now, everything
here calls the method itself, not any of the external methods.

Few driveby fixes as well:

1. Git now ignores archive/ again (it's a build artifact, and can be removed
   when updating `master`)
2. Since I had to rewrite most of the Deferred implementation, the new version
   passes one of the skipped tests, so it is now enabled.
2015-11-20 02:49:48 -05:00

8 lines
No EOL
20 KiB
JavaScript

/*
Mithril v0.2.1
http://mithril.js.org
(c) 2014-2015 Leo Horie
License: MIT
*/
void 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]"===La.call(a)}function e(a){return"[object String]"===La.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(Ma.call(a,c)&&b(a[c],c))break}function i(a){Ga=a.document,Ha=a.location,Ja=a.cancelAnimationFrame||a.clearTimeout,Ia=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=Oa.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=Pa.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&&Na(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 fa(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++)Na(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:Ta,index:d,from:b[a].index,element:c.nodes[b[a].index]||Ga.createElement("div")}:b[a]={action:Sa,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 Ra:Z(c[e].nodes,c[e]),i.splice(e,1);break;case Sa:var f=Ga.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 Ta: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),Ua&&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=[Ga.createTextNode(a)],Qa.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===Ga.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||g[0].nodeValue.trim&&!g[0].nodeValue.trim())&&(Z(b.nodes,b),g=[Ga.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 Na(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:Ra,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(La.call(b)===La.call(a))return b;if(e&&e.nodes){var f=c-d,g=f+(Na(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?Ga.createElement(a.tag,a.attrs.is):Ga.createElement(a.tag):a.attrs.is?Ga.createElementNS(c,a.tag,a.attrs.is):Ga.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&&Wa.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===Ua||Xa||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),Na(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)Ma.call(e,j)&&(Ma.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&&(Na(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=Ga.createElement("span");e?(a.insertBefore(f,d||null),f.insertAdjacentHTML("beforebegin",c),a.removeChild(f)):d.insertAdjacentHTML("beforebegin",c)}else Ya(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{ka()}}}function ba(a){var b=$a.indexOf(a);return 0>b?$a.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){return null!=a&&(d(a)||c(a))&&c(a.then)}function ea(a){var c=n.prop();return a.then(c),c.then=a.then.bind(a),c["catch"]=a.then.bind(a,b),c["finally"]=function(b){function c(){return n.deferred().resolve(b()).promise}return a.then(function(a){return c().then(function(){return a})},function(a){return c().then(function(){throw a})})},c}function fa(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 ga(a,b,c,d){var e=null===a;if(!d){n.redraw.strategy("all"),n.startComputation(),bb[c]=b,a=ab=a||{controller:f};var g=new(a.controller||f);return a===ab&&(db[c]=g,cb[c]=a),ka(),e&&ha(b,c),db[c]}e&&ha(b,c)}function ha(a,b){bb.splice(b,1),db.splice(b,1),cb.splice(b,1),va(a),$a.splice(ba(a),1)}function ia(){hb>0&&Ja(hb),hb=Ia(ja,gb)}function ja(){eb&&(eb(),eb=null),g(bb,function(a,b){var c=cb[b];if(db[b]){var d=[db[b]];n.render(a,c.view?c.view(db[b],d):"")}}),fb&&(fb(),fb=null),hb=null,ib=new Date,n.redraw.strategy("diff")}function ka(){"none"===n.redraw.strategy()?(Ua--,n.redraw.strategy("diff")):n.endComputation()}function la(b){a[b]=function(){var a=Ha[n.route.mode];"pathname"===n.route.mode&&(a+=Ha.search),mb!==pa(a)&&ob(a)},eb=sa,a[b]()}function ma(){return("pathname"===n.route.mode?"":Ha.pathname)+nb[n.route.mode]}function na(b){if(a.history.pushState){eb=sa;var c=b?"replaceState":"pushState";fb=function(){a.history[c](null,Ga.title,nb[n.route.mode]+mb)},ob(nb[n.route.mode]+mb)}else Ha[n.route.mode]=mb,ob(nb[n.route.mode]+mb)}function oa(a,b,c){arguments.length<3&&"object"!=typeof b&&(c=b,b=null);var d=mb;mb=a;var e,f,g=b||{},i=mb.indexOf("?");if(i>=0){var j=ua(mb.slice(i+1));h(g,function(a,b){j[b]=g[b]}),e=ta(j),f=mb.slice(0,i)}else e=ta(b),f=mb;if(e){var k=-1===f.indexOf("?")?"?":"&";mb=f+k+e}return na(c||d===a)}function pa(a){return a.slice(nb[n.route.mode].length)}function qa(a,b,c){var d=c.indexOf("?");d>=0?(lb=ua(c.substr(d+1,c.length)),c=c.substr(0,d)):lb={};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(Ma.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,""),lb[a]=decodeURIComponent(d[b])}),n.mount(a,b[h])}),!0}}function ra(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?ua(c.search.slice(1)):{};c&&"A"!==c.nodeName.toUpperCase();)c=c.parentNode;n.route(c[n.route.mode].slice(nb[n.route.mode].length),b)}}function sa(){"hash"!==n.route.mode&&Ha.hash?Ha.hash=Ha.hash:a.scrollTo(0,0)}function ta(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(ta(a,i));else if(Na(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 ua(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]?(Na(c[d])||(c[d]=[c[d]]),c[d].push(e)):c[d]=e}),c}function va(a){var c=ba(a);Z(a.childNodes,_a[c]),_a[c]=b}function wa(a,d){function e(a,b,c){return da(a)?a.then(function(a){e(a,b,c)},function(a){e(a,c,c)}):b(q=a)}function h(a){a.resolve(q)}function i(a){a.reject(q)}function j(a){s.push(a)}function k(a){t=a,g(s,a),l=p=null}function l(a,b){e(a,function(){k(b===sb?h:i)},function(){k(i)})}function m(a,b){var c=0;try{return a.then(function(a){c++||p(qb,a,b)},function(a){c++||p(rb,a,b)})}catch(d){return n.deferred.onerror(d),p(rb,d,b)}}function o(b,e,f){try{e===qb&&c(a)?b=a(b):e===rb&&c(d)&&(b=d(b),e=qb)}catch(g){return n.deferred.onerror(g),l(g,tb)}return b===f?l(TypeError(),tb):l(b,e===qb?sb:tb)}function p(a,b,c){var d;try{d=da(b)}catch(e){return n.deferred.onerror(e),p(rb,e,c)}return a===rb&&n.deferred.onerror(b),d?m(b,c):o(b,a,c)}var q,r=this,s=[],t=j;r.resolve=function(a){return t===j&&p(qb,a,r),this},r.reject=function(a){return t===j&&p(rb,a,r),this},r.promise=function(a){return arguments.length&&e(a,f,f),t!==i?q:b},r.promise.then=function(a,b){var c=new wa(a,b);return t!==i&&c.promise(q),t(c),c.promise},r.promise["catch"]=function(a){return r.promise.then(null,a)},r.promise["finally"]=function(a){function b(){return n.deferred().resolve(a()).promise}return r.promise.then(function(){return b().then(function(){return q})},function(){b().then(function(){throw q})})}}function xa(a){return a instanceof EvalError||a instanceof RangeError||a instanceof ReferenceError||a instanceof SyntaxError||a instanceof TypeError||a instanceof URIError}function ya(a){return a}function za(){return"mithril_callback_"+(new Date).getTime()+"_"+Math.round(1e16*Math.random()).toString(36)}function Aa(c){var d=za(),e=Ga.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+"&"+ta(c.data||{}),Ga.body.appendChild(e)}function Ba(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 Ca(a){return a.dataType&&"jsonp"===a.dataType.toLowerCase()?Aa(a):Ba(a)}function Da(a,b,c){if("GET"===a.method&&"jsonp"!==a.dataType){var d=a.url.indexOf("?")<0?"?":"&",e=ta(b);a.url+=e?d+e:""}else a.data=c(b);return a}function Ea(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 Fa(a){return a.responseText}var Ga,Ha,Ia,Ja,Ka="v0.2.1",La={}.toString,Ma={}.hasOwnProperty,Na=Array.isArray||function(a){return"[object Array]"===La.call(a)},Oa=/(?:(^|#|\.)([^#\.\[\]]+))|(\[.+?\])/g,Pa=/\[(.+?)(?:=("|'|)(.*?)\2)?\]/,Qa=/^(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 Ka};var Ra=1,Sa=2,Ta=3,Ua=0;n.startComputation=function(){Ua++},n.endComputation=function(){Ua>1?Ua--:(Ua=0,n.redraw())};var Va,Wa=[],Xa=!1,Ya=function(){try{return Ga.createRange().createContextualFragment("x"),function(a,b){a.appendChild(Ga.createRange().createContextualFragment(b))}}catch(a){return function(a,b){a.insertAdjacentHTML("beforeend",b)}}}(),Za={appendChild:function(a){Va===b&&(Va=Ga.createElement("html")),Ga.documentElement&&Ga.documentElement!==a?Ga.replaceChild(a,Ga.documentElement):Ga.appendChild(a),this.childNodes=Ga.childNodes},insertBefore:function(a){this.appendChild(a)},childNodes:[]},$a=[],_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===Ga;e=i||a===Ga.documentElement?Za:a,i&&"html"!==c.tag&&(c={tag:"html",attrs:{},children:c}),_a[h]===b&&Z(e.childNodes),d===!0&&va(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 da(a)?ea(a):ca(a)};var ab,bb=[],cb=[],db=[],eb=null,fb=null,gb=16;n.component=function(a){for(var b=[],c=1;c<arguments.length;c++)b.push(arguments[c]);return fa(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=bb.indexOf(a);0>d&&(d=bb.length);var e=!1,f={preventDefault:function(){e=!0,eb=fb=null}};return g(Wa,function(a){a.handler.call(a.controller,f),a.controller.onunload=null}),e?g(Wa,function(a){a.controller.onunload=a.handler}):Wa=[],db[d]&&c(db[d].onunload)&&db[d].onunload(f),ga(b,a,d,e)};var hb=0,ib=0,jb=Ia===a.requestAnimationFrame?ia:function(){+new Date-ib>gb&&ia()},kb=!1;n.redraw=function(a){if(!kb){kb=!0,a&&(Xa=!0);try{hb&&!a?jb():(ja(),hb=Ia(function(){hb=0},gb))}finally{kb=Xa=!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 lb,mb,nb={pathname:"",hash:"#",search:"?"},ob=f,pb=!1;n.route=function(a,b,c,d){if(0===arguments.length)return mb;if(3===arguments.length&&e(b))ob=function(d){var e=mb=pa(d);if(!qa(a,c,e)){if(pb)throw new Error("Ensure the default route matches one of the routes defined in m.route");pb=!0,n.route(b,!0),pb=!1}},la("hash"===n.route.mode?"onhashchange":"onpopstate");else if(a.addEventListener||a.attachEvent)a.href=ma()+d.attrs.href,a.addEventListener?(a.removeEventListener("click",ra),a.addEventListener("click",ra)):(a.detachEvent("onclick",ra),a.attachEvent("onclick",ra));else if(e(a))return oa.apply(this,arguments)},n.route.param=function(a){if(!lb)throw new Error("You must call m.route(element, defaultRoute, routes) before calling m.route.param()");return a?lb[a]:lb},n.route.mode="search",n.route.buildQueryString=ta,n.route.parseQueryString=ua;var qb=1,rb=2,sb=3,tb=4;return n.deferred=function(){return new wa},n.deferred.prototype=wa.prototype,n.deferred.prototype.constructor=n.deferred,n.deferred.onerror=function(a){if(xa(a))throw Ua=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=new wa,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 wa,c=ya,d=ya,e=Fa;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=Ea(a.url,a.data),a=Da(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||ya)(d(e(c.target,a)),c.target),i&&(Na(h)&&a.type?g(h,function(b,c){h[c]=new a.type(b)}):a.type&&(h=new a.type(h)))}catch(j){h=j,i=!1}b[i?"resolve":"reject"](h),a.background!==!0&&n.endComputation()},Ca(a),b.promise(a.initialValue),b.promise},n});
//# sourceMappingURL=mithril.min.js.map