diff --git a/docs/change-log.md b/docs/change-log.md index dcbfc458..99add23a 100644 --- a/docs/change-log.md +++ b/docs/change-log.md @@ -478,7 +478,7 @@ ### Bug Fixes: - diff no longer touch the DOM when processing `style` attributes and event handlers -- returning a thennable to a resolution callback in `m.deferred().promise` now causes the promise to adopt its state +- returning a thenable to a resolution callback in `m.deferred().promise` now causes the promise to adopt its state - diff now correctly clears subtree if null or undefined is passed as a node --- diff --git a/docs/mithril.component.md b/docs/mithril.component.md index c89df6df..f759c20c 100644 --- a/docs/mithril.component.md +++ b/docs/mithril.component.md @@ -62,7 +62,7 @@ var MyComponent = { controller: function(data) { return { increment: function() { - //This is a simplication for the sake of the example. + //This is a simplification for the sake of the example. //Typically, values are modified via model methods, //rather than modified directly model.count++ @@ -590,7 +590,7 @@ where: - **Component component** - A component is supposed to be an Object with two keys: `controller` and `view`. Each of these should point to a Javascript function. If a contoller is not specified, Mithril will automatically create an empty controller function. + A component is supposed to be an Object with two keys: `controller` and `view`. Each of these should point to a Javascript function. If a controller is not specified, Mithril will automatically create an empty controller function. - **Object attributes** diff --git a/docs/mithril.computation.md b/docs/mithril.computation.md index 040bedb5..f5c72db0 100644 --- a/docs/mithril.computation.md +++ b/docs/mithril.computation.md @@ -152,7 +152,7 @@ The `m.startComputation` / `m.endComputation` pair is designed to be "stacked", Therefore, using the computation methods is recommended in order to reduce the amount of intermediate redraws that would otherwise occur as multiple asynchronous services are resolved. -When computation methods are used dilligently and religiously, templates are never redrawn with incomplete data. However, it's important to always write conditional tests in templates to account for the possibility of nullables, because redraws may come to occur more aggressively than data is available (perhaps because a newly introduced 3rd party library calls `m.redraw`, or because you might want a more aggressive redraw policy to implement a specific feature down the road). +When computation methods are used diligently and religiously, templates are never redrawn with incomplete data. However, it's important to always write conditional tests in templates to account for the possibility of nullables, because redraws may come to occur more aggressively than data is available (perhaps because a newly introduced 3rd party library calls `m.redraw`, or because you might want a more aggressive redraw policy to implement a specific feature down the road). Defending against nullables can typically be achieved via the `initialValue` option in [`m.request`](mithril.request.md) and basic null checks (e.g. `data ? m("div", data) : null`). diff --git a/docs/mithril.deferred.md b/docs/mithril.deferred.md index 521372a4..fb06f47b 100644 --- a/docs/mithril.deferred.md +++ b/docs/mithril.deferred.md @@ -165,7 +165,7 @@ m.request({method: "GET", url: "/user/:id", data: {id: 1}}) .then(function(user) { if (!user.isAdmin) throw new Error("Sorry, you don't have permissions") }) - .then(null, error) //handle the application error: bind to a getter-setter for diplaying it on the template + .then(null, error) //handle the application error: bind to a getter-setter for displaying it on the template ``` Note that the default promise exception handling semantics can be modified. See the next section. diff --git a/docs/mithril.redraw.md b/docs/mithril.redraw.md index ee0f0e51..4d344376 100644 --- a/docs/mithril.redraw.md +++ b/docs/mithril.redraw.md @@ -26,7 +26,7 @@ The [`m.startComputation` / `m.endComputation` pair](mithril.computation.md) is Therefore, using the computation methods is recommended in order to reduce the amount of intermediate redraws that would otherwise occur as multiple asynchronous services are resolved. -When computation methods are used dilligently and religiously, templates are never redrawn with incomplete data. However, it's important to always write conditional tests in templates to account for the possibility of nullables, because redraws may come to occur more aggressively than data is available (perhaps because a newly introduced 3rd party library calls `m.redraw`, or because you might want a more aggressive redraw policy to implement a specific feature down the road). +When computation methods are used diligently and religiously, templates are never redrawn with incomplete data. However, it's important to always write conditional tests in templates to account for the possibility of nullables, because redraws may come to occur more aggressively than data is available (perhaps because a newly introduced 3rd party library calls `m.redraw`, or because you might want a more aggressive redraw policy to implement a specific feature down the road). Defending against nullables can typically be achieved via the `initialValue` option in [`m.request`](mithril.request.md) and basic null checks (e.g. `data ? m("div", data) : null`). diff --git a/docs/mithril.request.md b/docs/mithril.request.md index e2e7b3af..4e1a19a5 100644 --- a/docs/mithril.request.md +++ b/docs/mithril.request.md @@ -51,7 +51,7 @@ var users = m.request({method: "GET", url: "/user"}); Note that this getter-setter holds an *undefined* value until the AJAX request completes. Attempting to unwrap its value early will likely result in errors. -The returned getter-setter also implements the [promise](mithril.deferred.md) interface (also known as a *thennable*): this is the mechanism you should always use to queue operations to be performed on the data from the web service. +The returned getter-setter also implements the [promise](mithril.deferred.md) interface (also known as a *thenable*): this is the mechanism you should always use to queue operations to be performed on the data from the web service. The simplest use case of this feature is to implement functional value assignment via `m.prop` (i.e. the same thing as above). You can bind a pre-existing getter-setter by passing it in as a parameter to a `.then` method: @@ -73,9 +73,9 @@ var doSomething = function() { /*...*/ } m.request({method: "GET", url: "/user"}).then(users).then(doSomething) ``` -While both basic assignment syntax and thennable syntax can be used to the same effect, typically it's recommended that you use the assignment syntax whenever possible, as it's easier to read. +While both basic assignment syntax and thenable syntax can be used to the same effect, typically it's recommended that you use the assignment syntax whenever possible, as it's easier to read. -The thennable mechanism is intended to be used in three ways: +The thenable mechanism is intended to be used in three ways: - in the model layer: to process web service data in transformative ways (e.g. filtering a list based on a parameter that the web service doesn't support) - in the controller layer: to bind redirection code upon a condition @@ -122,7 +122,7 @@ var controller = function() { #### Binding errors -Mithril thennables take two functions as optional parameters: the first parameter is called if the web service request completes successfully. The second one is called if it completes with an error. +Mithril thenables take two functions as optional parameters: the first parameter is called if the web service request completes successfully. The second one is called if it completes with an error. Error binding is meant to be done in the controller layer. Doing it in the model level is also possible, but generally leads to more code in order to connect all the dots. diff --git a/docs/web-services.md b/docs/web-services.md index ebc3d2e5..eb6e216f 100644 --- a/docs/web-services.md +++ b/docs/web-services.md @@ -108,7 +108,7 @@ In the example below, we bind an error getter-setter to our previous controller //controller var controller = function() { this.error = m.prop("") - + this.users = User.listEven().then(function(users) { if (users.length == 0) m.route("/add"); }, this.error) @@ -121,7 +121,7 @@ If the controller doesn't already have a success callback to run after a request //controller var controller = function() { this.error = m.prop("") - + this.users = User.listEven().then(null, this.error) } ``` @@ -145,7 +145,7 @@ var users = m.request({method: "GET", url: "/user"}) //add one more user to the response return users.concat({name: "Jane"}) }) - + function log(value) { console.log(value) return value diff --git a/mithril.d.ts b/mithril.d.ts index c7d2c6b6..4cbbf7a0 100644 --- a/mithril.d.ts +++ b/mithril.d.ts @@ -171,13 +171,13 @@ declare module _mithril { * Creates a getter-setter function that wraps a Mithril promise. Useful * for uniform data access, m.withAttr, etc. * - * @param promise A thennable to initialize the property with. It may + * @param promise A thenable to initialize the property with. It may * optionally be a Mithril promise. * @return A getter-setter function wrapping the promise. * * @see m.withAttr */ - prop(promise: Thennable) : MithrilPromiseProperty; + prop(promise: Thenable) : MithrilPromiseProperty; /** * Creates a getter-setter function that wraps a simple value. Useful @@ -554,7 +554,7 @@ declare module _mithril { } /** - * Takes a list of promises or thennables and returns a Mithril promise + * Takes a list of promises or thenables and returns a Mithril promise * that resolves once all in the list are resolved, or rejects if any of * them reject. * @@ -562,7 +562,7 @@ declare module _mithril { * @return A promise that resolves to all the promises if all resolve, or * rejects with the error contained in the first rejection. */ - sync(promises: Thennable[]): MithrilPromise; + sync(promises: Thenable[]): MithrilPromise; /** * Use this and endComputation if your views aren't redrawing after @@ -911,32 +911,32 @@ declare module _mithril { } /** - * This represents a thennable success callback. + * This represents a thenable success callback. */ interface MithrilSuccessCallback { - (value: T): U | Thennable; + (value: T): U | Thenable; } /** - * This represents a thennable error callback. + * This represents a thenable error callback. */ interface MithrilErrorCallback { - (value: Error): T | Thennable; + (value: Error): T | Thenable; } /** - * This represents a thennable. + * This represents a thenable. */ - interface Thennable { - then(success: (value: T) => U): Thennable; - then(success: (value: T) => U, error: (value: Error) => V): Thennable|Thennable; - catch?: (error: (value: Error) => U) => Thennable; + interface Thenable { + then(success: (value: T) => U): Thenable; + then(success: (value: T) => U, error: (value: Error) => V): Thenable|Thenable; + catch?: (error: (value: Error) => U) => Thenable; } /** * This represents a Mithril promise object. */ - interface MithrilPromise extends Thennable, MithrilProperty> { + interface MithrilPromise extends Thenable, MithrilProperty> { /** * Chain this promise with a simple success callback, propogating * rejections. diff --git a/mithril.js b/mithril.js index 0401aad0..8fb252d2 100644 --- a/mithril.js +++ b/mithril.js @@ -1859,15 +1859,15 @@ var RESOLVED = 3 var REJECTED = 4 - function coerce(value, next, error, inst) { + function coerce(value, next, error) { if (isPromise(value)) { return value.then(function (value) { - coerce(value, next, error, inst) + coerce(value, next, error) }, function (e) { - coerce(e, error, error, inst) + coerce(e, error, error) }) } else { - return next.call(inst, value) + return next(value) } } @@ -1980,7 +1980,7 @@ } } - function notThennable(value, state, deferred) { + function notThenable(value, state, deferred) { try { if (state === RESOLVING && isFunction(onSuccess)) { value = onSuccess(value) @@ -2017,7 +2017,7 @@ if (thenable) { return doThen(value, deferred) } else { - return notThennable(value, state, deferred) + return notThenable(value, state, deferred) } } } diff --git a/mithril.min.js b/mithril.min.js index b98d0039..5f478121 100644 --- a/mithril.min.js +++ b/mithril.min.js @@ -4,5 +4,5 @@ http://mithril.js.org (c) 2014-2015 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]"===bc.call(a)}function e(a){return"[object String]"===bc.call(a)}function f(){}function g(a,b){for(var c=0;ci;i++){var k=A(a,a.data[i],a.cached[h],e);k!==b&&(d=d&&k.nodes.intact,e+=gb(k),a.cached[h++]=k)}return d||E(a,c),a.cached}function C(a,b){var c=a.data.length!==a.cached.length;c||s(a.data,function(b,d){var e=a.cached[d];return c=e&&e.attrs&&e.attrs.key!==b.key}),c&&D(a,b)}function D(a,b){var c=a.cached.nodes;s(a.data,function(a,d){a=a.key,b[a]=b[a]?{action:gc,index:d,from:b[a].index,element:c[b[a].index]||Zb.createElement("div")}:{action:fc,index:d}});var d=[];h(b,function(a){d.push(a)});var e=d.sort(hb),f=new Array(a.cached.length);f.nodes=a.cached.nodes.slice(),g(e,function(b){var c=b.index;switch(b.action){case ec:nb(a.cached[c].nodes,a.cached[c]),f.splice(c,1);break;case fc:var d=Zb.createElement("div");d.key=a.data[c].attrs.key,v(a.parent,d,c),f.splice(c,0,{attrs:{key:a.data[c].attrs.key},nodes:[d]}),f.nodes[c]=d;break;case gc:var e=b.element;a.parent.childNodes[c]!==e&&a.parent.insertBefore(e,a.parent.childNodes[c]||null),f[c]=a.cached[b.from],f.nodes[c]=e}}),a.cached=f}function E(a,b){for(var c=0,d=a.data.length;d>c;c++){var e=a.cached[c];null!=e&&b.push.apply(b,e.nodes)}g(a.cached.nodes,function(c,d){null!=c.parentNode&&b.indexOf(c)<0&&nb([c],[a.cached[d]])}),a.data.length+("key"in b)}function G(a){var b=a.data;return b.attrs.xmlns?b.attrs.xmlns:"svg"===b.tag?"http://www.w3.org/2000/svg":"math"===b.tag?"http://www.w3.org/1998/Math/MathML":a.ns}function H(a){var b=[],c=[];if(I(a,b,c),!a.data.tag&&c.length)throw new Error("Component template must return a virtual element, not an array, string, etc.");var d=F(a);return e(a.data.tag)?R({builder:a,hasKeys:d,views:b,controllers:c,ns:G(a)}):void 0}function I(a,b,c){for(var d=a.cached&&a.cached.controllers;null!=a.data.view;)J(a,d,c,b)}function J(a,b,c,d){var e=a.data.view.$original||a.data.view,f=M(a.cached.views,e,b,a.data.controller),g=+(a.data&&a.data.attrs&&a.data.attrs.key);return a.data=0===ic||hc||b&&b.indexOf(f)>-1?a.data.view(f):{tag:"placeholder"},"retain"===a.data.subtree?a.cached:(g===g&&((a.data.attrs=a.data.attrs||{}).key=g),void L(d,c,e,f))}function K(a,b){a.ctrls.splice(a.ctrls.indexOf(a.ctrl),1),a.views.splice(a.views.indexOf(a.view),1),a.ctrl&&c(a.ctrl.onunload)&&a.ctrl.onunload(b)}function L(a,b,c,d){a.push(c),jc[b.push(d)-1]={views:a,view:c,ctrl:d,ctrls:b}}function M(a,b,d,e){var f="diff"===lc()&&a?a.indexOf(b):-1;return f>-1?d[f]:c(e)?new e:{}}function N(a,b){P(a,b)&&(a.cached.nodes.length&&nb(a.cached.nodes),a.cached.cfgCtx&&c(a.cached.cfgCtx.onunload)&&a.cached.cfgCtx.onunload(),a.cached.controllers&&g(a.cached.controllers,function(a){a.unload&&a.onunload({preventDefault:f})}))}function O(a,c){var d=a.length;if(d!==c.length)return!1;for(var e=0,f=Object.create(null);d>e;)f[c[e]]=e++;for(;0!==e;)if(f[a[--e]]===b)return!1;return!0}function P(a,b){var c=a.data,d=a.cached;return c.tag!==d.tag?!0:O(b,Object.keys(d.attrs))?c.attrs.id!==d.attrs.id?!0:c.attrs.key!==d.attrs.key?!0:"all"===lc()?!d.cfgCtx||d.cfgCtx.retain!==!0:"diff"===lc()?d.cfgCtx&&d.cfgCtx.retain===!1:!1:!0}function Q(a){var b=S(a);return a.builder.cached=W(a,b,T(a,b),V(a,b)),b}function R(a){var b=a.builder,c=0===b.cached.nodes.length,d=c?Q(a):Z(a);return(c||b.reattach&&null!=d)&&v(b.parent,d,b.index),$(b,d,c),b.cached}function S(a){var c=a.builder.data;return a.ns===b?c.attrs.is?Zb.createElement(c.tag,c.attrs.is):Zb.createElement(c.tag):c.attrs.is?Zb.createElementNS(a.ns,c.tag,c.attrs.is):Zb.createElementNS(a.ns,c.tag)}function T(a,b){var c=a.builder.data;return a.hasKeys?lb(b,c.tag,c.attrs,{},a.ns):c.attrs}function U(a,c,d){var e=a.builder;return x(w(c,e.data.tag,b,b,e.data.children,e.cached.children,d,0,e.data.attrs.contenteditable?c:e.editable,a.ns,e.cfgs))}function V(a,b){var c=a.builder.data.children;return null!=c&&c.length?U(a,b,!0):c}function W(a,b,c,d){var e=a.builder.data,f={tag:e.tag,attrs:c,children:d,nodes:[b]};return Y(a,f),f.children&&!f.children.nodes&&(f.children.nodes=[]),"select"===e.tag&&"value"in e.attrs&&lb(b,e.tag,{value:e.attrs.value},{},a.ns),f}function X(a){if(a.onunload&&a.onunload.$old&&(a.onunload=a.onunload.$old),ic&&a.onunload){var b=a.onunload;a.onunload=f,a.onunload.$old=b}}function Y(a,b){a.controllers.length&&(b.views=a.views,b.controllers=a.controllers,g(a.controllers,X))}function Z(a){var b=a.builder.cached,c=b.nodes[0];return a.hasKeys&&lb(c,a.builder.data.tag,a.builder.data.attrs,b.attrs,a.ns),b.children=U(a,c,!1),b.nodes.intact=!0,a.controllers.length&&(b.views=a.views,b.controllers=a.controllers),c}function $(a,b,d){var e=a.data,f=a.cached,g=e.attrs.config;if(c(g)){var h=f.cfgCtx=f.cfgCtx||{};a.cfgs.push(function(){return g.call(e,b,!d,h,f)})}}function _(a){return 0===a.cached.nodes.length?bb(a):a.cached.valueOf()!==a.data.valueOf()||a.reattach?cb(a):(a.cached.nodes.intact=!0,a.cached)}function ab(a){return!/^(AREA|BASE|BR|COL|COMMAND|EMBED|HR|IMG|INPUT|KEYGEN|LINK|META|PARAM|SOURCE|TRACK|WBR)$/.test(a)}function bb(a){var b;a.data.$trusted?b=pb(a.parent,a.index,a.data):(b=[Zb.createTextNode(a.data)],ab(a.parent.nodeName)&&v(a.parent,b[0],a.index));var c;return c="string"==typeof a.data||"number"==typeof a.data||"boolean"==typeof a.data?new a.data.constructor(a.data):a.data,c.nodes=b,c}function cb(a){var b=a.cached.nodes;return a.editable&&a.editable===Zb.activeElement||(a.data.$trusted?(nb(b,a.cached),b=pb(a.parent,a.index,a.data)):"textarea"===a.pTag?a.parent.value=a.data:a.editable?a.editable.innerHTML=a.data:((1===b[0].nodeType||b.length>1||b[0].nodeValue.trim&&!b[0].nodeValue.trim())&&(nb(a.cached.nodes,a.cached),b=[Zb.createTextNode(a.data)]),db(a,b[0]))),a.cached=new a.data.constructor(a.data),a.cached.nodes=b,a.cached}function db(a,b){try{v(a.parent,b,a.index),b.nodeValue=a.data}catch(c){}}function eb(){ic++}function fb(){ic>1?ic--:(ic=0,r.redraw())}function gb(a){if(!a.$trusted)return dc(a)?a.length:1;var b=a.match(/<[^\/]|\>\s*[^<]/g);return null!=b?b.length:void 0}function hb(a,b){return a.action-b.action||a.index-b.index}function ib(a){return!/^(list|style|form|type|width|height)$/.test(a)}function jb(a,b,e,f,g,i){if("config"!==a&&"key"!==a)if(c(b)&&"on"===a.slice(0,2))f[a]=qb(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)cc.call(e,j)&&(cc.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&&ib(a)?("input"!==i||f[a]!==b)&&(f[a]=b):f.setAttribute(a,b)}function kb(a,b,c,d,e,f){try{jb(a,b,c,d,e,f)}catch(g){if(/\bInvalid argument\b/.test(g.message))throw g}}function lb(a,b,c,d,e){return h(c,function(c,f){var g=d[f];f in d&&g===c?"value"===f&&"input"===b&&a.value!=c&&(a.value=c):(d[f]=c,kb(f,c,g,a,e,b))}),d}function mb(a){try{a.parentNode.removeChild(a)}catch(b){}}function nb(a,b){if(a.length){b=[].concat(b);for(var c=a.length-1;c>=0;c--){var d=a[c];null!=d&&d.parentNode&&(mb(d),b[c]&&ob(b[c]))}a.length&&(a.length=0)}}function ob(a){a.cfgCtx&&c(a.cfgCtx.onunload)&&(a.cfgCtx.onunload(),a.cfgCtx.onunload=null),a.controllers&&g(a.controllers,function(a){c(a.onunload)&&a.onunload({preventDefault:f})}),a.children&&(dc(a.children)?g(a.children,ob):a.children.tag&&ob(a.children))}function pb(a,b,c){var d=a.childNodes[b];if(d)if(1!==d.nodeType){var e=Zb.createElement("span");a.insertBefore(e,d||null),e.insertAdjacentHTML("beforebegin",c),a.removeChild(e)}else d.insertAdjacentHTML("beforebegin",c);else mc(a,c);for(var f=[];a.childNodes[b]!==d;)f.push(a.childNodes[b++]);return f}function qb(a,b){return function(c){lc("diff"),eb();try{return a.call(b,c||event)}finally{zb()}}}function rb(a){var b=oc.indexOf(a);return 0>b?oc.push(a)-1:b}function sb(a,b,c,d){var e=null===a;if(!d){lc("all"),eb(),rc[c]=b,a=qc=a||{controller:f};var g=new(a.controller||f);return a===qc&&(tc[c]=g,sc[c]=a),zb(),e&&ub(b,c),tc[c]}e&&ub(b,c)}function tb(a,b){if(!a)throw new Error("Please ensure the DOM element exists before rendering a template into it.");var d=rc.indexOf(a);0>d&&(d=rc.length);var e=!1,f={preventDefault:function(){e=!0,uc=vc=null}};return g(jc,function(a){null!=a.ctrl&&(K(a,f),a.ctrl.onunload=null)}),e?g(jc,function(a){a.ctrl.onunload=function(b){K(a,b)}}):jc=[],tc[d]&&c(tc[d].onunload)&&tc[d].onunload(f),sb(b,a,d,e)}function ub(a,b){rc.splice(b,1),tc.splice(b,1),sc.splice(b,1),Ob(a),oc.splice(rb(a),1)}function vb(){0!==xc&&ac(xc),xc=_b(yb,wc)}function wb(){xc=0}function xb(a){xc&&!a?zc():(yb(),xc=_b(wb,wc))}function yb(){uc&&(uc(),uc=null);for(var a=0;a=0){var j=Nb(Bc.slice(i+1));h(g,function(a,b){j[b]=g[b]}),e=Mb(j),f=Bc.slice(0,i)}else e=Mb(b),f=Bc;if(e){var k=-1===f.indexOf("?")?"?":"&";Bc=f+k+e}return Fb(c||d===a)}function Hb(a,b,c,d){if(0===arguments.length)return Bc;if(3===arguments.length&&e(b))Dc=function(d){var e=Bc=Ib(d);if(!Jb(a,c,e)){if(Ec)throw new Error("Ensure the default route matches one of the routes defined in m.route");Ec=!0,Hb(b,!0),Ec=!1}},Bb("hash"===Hb.mode?"onhashchange":"onpopstate");else if(a.addEventListener||a.attachEvent)a.href=Cb()+d.attrs.href,a.addEventListener?(a.removeEventListener("click",Kb),a.addEventListener("click",Kb)):(a.detachEvent("onclick",Kb),a.attachEvent("onclick",Kb));else if(e(a))return Gb.apply(null,arguments)}function Ib(a){return a.slice(Cc[Hb.mode].length)}function Jb(a,b,c){var d=c.indexOf("?");d>=0?(Ac=Nb(c.substr(d+1,c.length)),c=c.substr(0,d)):Ac={};var e=Object.keys(b),f=e.indexOf(c);if(f>=0)return tb(a,b[e[f]]),!0;for(var h in b)if(cc.call(b,h)){if(h===c)return tb(a,b[h]),!0;var i=new RegExp("^"+h.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(i.test(c))return c.replace(i,function(){for(var a=[],b=1,c=arguments.length-2;c>b;)a.push(arguments[b++]);var d=h.match(/:[^\/]+/g)||[];g(d,function(b,c){b=b.replace(/:|\./g,""),Ac[b]=decodeURIComponent(a[c])})}),tb(a,b[h]),!0}}function Kb(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"===Hb.mode&&c.search?Nb(c.search.slice(1)):{};c&&"A"!==c.nodeName.toUpperCase();)c=c.parentNode;ic=0,Hb(c[Hb.mode].slice(Cc[Hb.mode].length),b)}}function Lb(){"hash"!==Hb.mode&&$b.hash?$b.hash=$b.hash:a.scrollTo(0,0)}function Mb(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(Mb(a,i));else if(dc(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 Nb(a){if(!a)return{};"?"===a[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]?(dc(c[d])||(c[d]=[c[d]]),c[d].push(e)):c[d]=e}),c}function Ob(a){var c=rb(a);nb(a.childNodes,pc[c]),pc[c]=b}function Pb(a,b,c,d){return k(a)?a.then(function(a){Pb(a,b,c,d)},function(a){Pb(a,c,c,d)}):b.call(d,a)}function Qb(a,d){function e(a){r=a}function f(a){a.resolve(r)}function h(a){a.reject(r)}function i(a){return u!==h&&a(r),a}function j(a){t.push(a)}function l(a,b){var c=Rb().resolve(a()).promise;return b!==h&&c(r),c.then(b)}function m(a){u=a,g(t,a),n=q=null}function n(a,b){Pb(a,function(a){r=a,m(b===Hc?f:h)},function(a){r=a,m(h)})}function o(a,b){var c=0;try{return a.then(function(a){c++||q(Fc,a,b)},function(a){c++||q(Gc,a,b)})}catch(d){return Rb.onerror(d),q(Gc,d,b)}}function p(b,e,f){try{e===Fc&&c(a)?b=a(b):e===Gc&&c(d)&&(b=d(b),e=Fc)}catch(g){return Rb.onerror(g),n(g,Ic)}return b===f?n(TypeError(),Ic):n(b,e===Fc?Hc:Ic)}function q(a,b,c){var d;try{d=k(b)}catch(e){return Rb.onerror(e),q(Gc,e,c)}return a===Gc&&Rb.onerror(b),d?o(b,c):p(b,a,c)}var r,s=this,t=[],u=j;s.resolve=function(a){return u===j&&q(Fc,a,s),s},s.reject=function(a){return u===j&&q(Gc,a,s),s},s.promise=function(a){return arguments.length&&Pb(a,e,e),u!==h?r:b},s.promise.then=function(a,b){var c=new Qb(a,b);return u(c),i(c.promise)},s.promise.catch=function(a){return s.promise.then(null,a)},s.promise.finally=function(a){return s.promise.then(function(){return l(a,function(){return r})},function(){return l(a,function(){throw r})})}}function Rb(){return new Qb}function Sb(a){return a instanceof EvalError||a instanceof RangeError||a instanceof ReferenceError||a instanceof SyntaxError||a instanceof TypeError||a instanceof URIError}function Tb(){return"mithril_callback_"+(new Date).getTime()+"_"+Math.round(1e16*Math.random()).toString(36)}function Ub(c){var d=Tb(),e=Zb.createElement("script");a[d]=function(f){e.parentNode.removeChild(e),c.onload({success:!0,target:{responseText:f}}),a[d]=b},e.onerror=function(){return e.parentNode.removeChild(e),c.onerror({success:!1,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||"callback")+"="+d+"&"+Mb(c.data||{}),Zb.body.appendChild(e)}function Vb(b){var d=new a.XMLHttpRequest;if(d.open(b.method,b.url,!0,b.user,b.password),d.onreadystatechange=function(){4===this.readyState&&(this.status>=200&&this.status<300?b.onload({success:!0,target:this}):b.onerror({success:!1,target:this}))},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 instanceof 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 Wb(a){return a.dataType&&"JSONP"===a.dataType.toUpperCase()?Ub(a):Vb(a)}function Xb(a,b,c){if("GET"===a.method&&"jsonp"!==a.dataType){var d=a.url.indexOf("?")<0?"?":"&",e=Mb(b);a.url+=e?d+e:""}else a.data=c(b);return a}function Yb(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}r.version=function(){return"v0.2.1"};var Zb,$b,_b,ac,bc={}.toString,cc={}.hasOwnProperty,dc=Array.isArray||function(a){return"[object Array]"===bc.call(a)};i(a),r.deps=function(b){return i(a=b||a),a},r.prop=function(a){return k(a)?m(a):j(a)},r.component=q;var ec=1,fc=2,gc=3,hc=!1,ic=0,jc=[],kc=!1;r.redraw=function(a){if(!kc){kc=!0,a&&(hc=!0);try{xb(a)}finally{kc=hc=!1}}};var lc=r.redraw.strategy=r.prop();r.startComputation=eb,r.endComputation=fb;var mc=function(){try{return Zb.createRange().createContextualFragment("x"),function(a,b){a.appendChild(Zb.createRange().createContextualFragment(b))}}catch(a){return function(a,b){a.insertAdjacentHTML("beforeend",b)}}}(),nc={appendChild:function(a){Zb.documentElement&&Zb.documentElement!==a?Zb.replaceChild(a,Zb.documentElement):Zb.appendChild(a),this.childNodes=Zb.childNodes},insertBefore:function(a){this.appendChild(a)},childNodes:[]},oc=[],pc={};r.render=function(a,c,d){if(!a)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render exists.");var e,f=[],h=rb(a),i=a===Zb;e=i||a===Zb.documentElement?nc:a,i&&"html"!==c.tag&&(c={tag:"html",attrs:{},children:c}),pc[h]===b&&nb(e.childNodes),d===!0&&Ob(a),pc[h]=x(w(e,null,b,b,c,pc[h],!1,0,null,b,f)),g(f,function(a){a()})},r.trust=function(a){return a=new String(a),a.$trusted=!0,a};var qc,rc=[],sc=[],tc=[],uc=null,vc=null,wc=16;r.mount=r.module=tb;var xc=0,yc=0,zc=_b===a.requestAnimationFrame?vb:function(){+new Date-yc>wc&&vb()};r.withAttr=function(a,b,c){return function(d){d=d||event;var e,f=d.currentTarget||this;e=a in f?f[a]:f.getAttribute(a),b.call(c||this,e)}};var Ac,Bc,Cc={pathname:"",hash:"#",search:"?"},Dc=f,Ec=!1;r.route=Hb,Hb.param=function(a){if(!Ac)throw new Error("You must call m.route(element, defaultRoute, routes) before calling mroute.param()");return a?Ac[a]:Ac},Hb.mode="search",Hb.buildQueryString=Mb,Hb.parseQueryString=Nb;var Fc=1,Gc=2,Hc=3,Ic=4;return r.deferred=Rb,Rb.prototype=Qb.prototype,Rb.prototype.constructor=Rb,Rb.onerror=function(a){if(Sb(a))throw ic=0,a},r.sync=function(a){function b(a,b){return e[a]=b,0===--d&&(c.promise(e),c[f](e)),b}var c=new Qb,d=a.length,e=new Array(d),f="resolve";return a.length>0?g(a,function(a,c){a.then(function(a){return b(c,a)},function(a){return f="reject",b(c,a)})}):c.resolve([]),c.promise},r.request=function(a){a.background!==!0&&eb();var b=Rb(),c=function(a){return a},d=c,e=function(a){return a.responseText};return a.dataType&&"JSONP"===a.dataType.toUpperCase()||(c=a.serialize||JSON.stringify,d=a.deserialize||JSON.parse,e=a.extract||function(a){return a.responseText.length||d!==JSON.parse?a.responseText:null}),a.serialize=c,a.deserialize=d,a.method=(a.method||"GET").toUpperCase(),a.url=Yb(a.url,a.data),a=Xb(a,a.data,c),a.onload=a.onerror=function(c){c=c||event;var f,h=c.success;f=h?a.unwrapSuccess:a.unwrapError;try{var i=d(e(c.target,a));f&&(i=f(i,c.target)),h?(dc(i)&&a.type?g(i,function(b,c){i[c]=new a.type(b)}):a.type&&(i=new a.type(i)),b.resolve(i)):b.reject(i)}catch(j){b.reject(j)}finally{a.background!==!0&&fb()}},Wb(a),b.promise(a.initialValue),b.promise},r}); +!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]"===bc.call(a)}function e(a){return"[object String]"===bc.call(a)}function f(){}function g(a,b){for(var c=0;ci;i++){var k=A(a,a.data[i],a.cached[h],e);k!==b&&(d=d&&k.nodes.intact,e+=gb(k),a.cached[h++]=k)}return d||E(a,c),a.cached}function C(a,b){var c=a.data.length!==a.cached.length;c||s(a.data,function(b,d){var e=a.cached[d];return c=e&&e.attrs&&e.attrs.key!==b.key}),c&&D(a,b)}function D(a,b){var c=a.cached.nodes;s(a.data,function(a,d){a=a.key,b[a]=b[a]?{action:gc,index:d,from:b[a].index,element:c[b[a].index]||Zb.createElement("div")}:{action:fc,index:d}});var d=[];h(b,function(a){d.push(a)});var e=d.sort(hb),f=new Array(a.cached.length);f.nodes=a.cached.nodes.slice(),g(e,function(b){var c=b.index;switch(b.action){case ec:nb(a.cached[c].nodes,a.cached[c]),f.splice(c,1);break;case fc:var d=Zb.createElement("div");d.key=a.data[c].attrs.key,v(a.parent,d,c),f.splice(c,0,{attrs:{key:a.data[c].attrs.key},nodes:[d]}),f.nodes[c]=d;break;case gc:var e=b.element;a.parent.childNodes[c]!==e&&a.parent.insertBefore(e,a.parent.childNodes[c]||null),f[c]=a.cached[b.from],f.nodes[c]=e}}),a.cached=f}function E(a,b){for(var c=0,d=a.data.length;d>c;c++){var e=a.cached[c];null!=e&&b.push.apply(b,e.nodes)}g(a.cached.nodes,function(c,d){null!=c.parentNode&&b.indexOf(c)<0&&nb([c],[a.cached[d]])}),a.data.length+("key"in b)}function G(a){var b=a.data;return b.attrs.xmlns?b.attrs.xmlns:"svg"===b.tag?"http://www.w3.org/2000/svg":"math"===b.tag?"http://www.w3.org/1998/Math/MathML":a.ns}function H(a){var b=[],c=[];if(I(a,b,c),!a.data.tag&&c.length)throw new Error("Component template must return a virtual element, not an array, string, etc.");var d=F(a);return e(a.data.tag)?R({builder:a,hasKeys:d,views:b,controllers:c,ns:G(a)}):void 0}function I(a,b,c){for(var d=a.cached&&a.cached.controllers;null!=a.data.view;)J(a,d,c,b)}function J(a,b,c,d){var e=a.data.view.$original||a.data.view,f=M(a.cached.views,e,b,a.data.controller),g=+(a.data&&a.data.attrs&&a.data.attrs.key);return a.data=0===ic||hc||b&&b.indexOf(f)>-1?a.data.view(f):{tag:"placeholder"},"retain"===a.data.subtree?a.cached:(g===g&&((a.data.attrs=a.data.attrs||{}).key=g),void L(d,c,e,f))}function K(a,b){a.ctrls.splice(a.ctrls.indexOf(a.ctrl),1),a.views.splice(a.views.indexOf(a.view),1),a.ctrl&&c(a.ctrl.onunload)&&a.ctrl.onunload(b)}function L(a,b,c,d){a.push(c),jc[b.push(d)-1]={views:a,view:c,ctrl:d,ctrls:b}}function M(a,b,d,e){var f="diff"===lc()&&a?a.indexOf(b):-1;return f>-1?d[f]:c(e)?new e:{}}function N(a,b){P(a,b)&&(a.cached.nodes.length&&nb(a.cached.nodes),a.cached.cfgCtx&&c(a.cached.cfgCtx.onunload)&&a.cached.cfgCtx.onunload(),a.cached.controllers&&g(a.cached.controllers,function(a){a.unload&&a.onunload({preventDefault:f})}))}function O(a,c){var d=a.length;if(d!==c.length)return!1;for(var e=0,f=Object.create(null);d>e;)f[c[e]]=e++;for(;0!==e;)if(f[a[--e]]===b)return!1;return!0}function P(a,b){var c=a.data,d=a.cached;return c.tag!==d.tag?!0:O(b,Object.keys(d.attrs))?c.attrs.id!==d.attrs.id?!0:c.attrs.key!==d.attrs.key?!0:"all"===lc()?!d.cfgCtx||d.cfgCtx.retain!==!0:"diff"===lc()?d.cfgCtx&&d.cfgCtx.retain===!1:!1:!0}function Q(a){var b=S(a);return a.builder.cached=W(a,b,T(a,b),V(a,b)),b}function R(a){var b=a.builder,c=0===b.cached.nodes.length,d=c?Q(a):Z(a);return(c||b.reattach&&null!=d)&&v(b.parent,d,b.index),$(b,d,c),b.cached}function S(a){var c=a.builder.data;return a.ns===b?c.attrs.is?Zb.createElement(c.tag,c.attrs.is):Zb.createElement(c.tag):c.attrs.is?Zb.createElementNS(a.ns,c.tag,c.attrs.is):Zb.createElementNS(a.ns,c.tag)}function T(a,b){var c=a.builder.data;return a.hasKeys?lb(b,c.tag,c.attrs,{},a.ns):c.attrs}function U(a,c,d){var e=a.builder;return x(w(c,e.data.tag,b,b,e.data.children,e.cached.children,d,0,e.data.attrs.contenteditable?c:e.editable,a.ns,e.cfgs))}function V(a,b){var c=a.builder.data.children;return null!=c&&c.length?U(a,b,!0):c}function W(a,b,c,d){var e=a.builder.data,f={tag:e.tag,attrs:c,children:d,nodes:[b]};return Y(a,f),f.children&&!f.children.nodes&&(f.children.nodes=[]),"select"===e.tag&&"value"in e.attrs&&lb(b,e.tag,{value:e.attrs.value},{},a.ns),f}function X(a){if(a.onunload&&a.onunload.$old&&(a.onunload=a.onunload.$old),ic&&a.onunload){var b=a.onunload;a.onunload=f,a.onunload.$old=b}}function Y(a,b){a.controllers.length&&(b.views=a.views,b.controllers=a.controllers,g(a.controllers,X))}function Z(a){var b=a.builder.cached,c=b.nodes[0];return a.hasKeys&&lb(c,a.builder.data.tag,a.builder.data.attrs,b.attrs,a.ns),b.children=U(a,c,!1),b.nodes.intact=!0,a.controllers.length&&(b.views=a.views,b.controllers=a.controllers),c}function $(a,b,d){var e=a.data,f=a.cached,g=e.attrs.config;if(c(g)){var h=f.cfgCtx=f.cfgCtx||{};a.cfgs.push(function(){return g.call(e,b,!d,h,f)})}}function _(a){return 0===a.cached.nodes.length?bb(a):a.cached.valueOf()!==a.data.valueOf()||a.reattach?cb(a):(a.cached.nodes.intact=!0,a.cached)}function ab(a){return!/^(AREA|BASE|BR|COL|COMMAND|EMBED|HR|IMG|INPUT|KEYGEN|LINK|META|PARAM|SOURCE|TRACK|WBR)$/.test(a)}function bb(a){var b;a.data.$trusted?b=pb(a.parent,a.index,a.data):(b=[Zb.createTextNode(a.data)],ab(a.parent.nodeName)&&v(a.parent,b[0],a.index));var c;return c="string"==typeof a.data||"number"==typeof a.data||"boolean"==typeof a.data?new a.data.constructor(a.data):a.data,c.nodes=b,c}function cb(a){var b=a.cached.nodes;return a.editable&&a.editable===Zb.activeElement||(a.data.$trusted?(nb(b,a.cached),b=pb(a.parent,a.index,a.data)):"textarea"===a.pTag?a.parent.value=a.data:a.editable?a.editable.innerHTML=a.data:((1===b[0].nodeType||b.length>1||b[0].nodeValue.trim&&!b[0].nodeValue.trim())&&(nb(a.cached.nodes,a.cached),b=[Zb.createTextNode(a.data)]),db(a,b[0]))),a.cached=new a.data.constructor(a.data),a.cached.nodes=b,a.cached}function db(a,b){try{v(a.parent,b,a.index),b.nodeValue=a.data}catch(c){}}function eb(){ic++}function fb(){ic>1?ic--:(ic=0,r.redraw())}function gb(a){if(!a.$trusted)return dc(a)?a.length:1;var b=a.match(/<[^\/]|\>\s*[^<]/g);return null!=b?b.length:void 0}function hb(a,b){return a.action-b.action||a.index-b.index}function ib(a){return!/^(list|style|form|type|width|height)$/.test(a)}function jb(a,b,e,f,g,i){if("config"!==a&&"key"!==a)if(c(b)&&"on"===a.slice(0,2))f[a]=qb(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)cc.call(e,j)&&(cc.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&&ib(a)?("input"!==i||f[a]!==b)&&(f[a]=b):f.setAttribute(a,b)}function kb(a,b,c,d,e,f){try{jb(a,b,c,d,e,f)}catch(g){if(/\bInvalid argument\b/.test(g.message))throw g}}function lb(a,b,c,d,e){return h(c,function(c,f){var g=d[f];f in d&&g===c?"value"===f&&"input"===b&&a.value!=c&&(a.value=c):(d[f]=c,kb(f,c,g,a,e,b))}),d}function mb(a){try{a.parentNode.removeChild(a)}catch(b){}}function nb(a,b){if(a.length){b=[].concat(b);for(var c=a.length-1;c>=0;c--){var d=a[c];null!=d&&d.parentNode&&(mb(d),b[c]&&ob(b[c]))}a.length&&(a.length=0)}}function ob(a){a.cfgCtx&&c(a.cfgCtx.onunload)&&(a.cfgCtx.onunload(),a.cfgCtx.onunload=null),a.controllers&&g(a.controllers,function(a){c(a.onunload)&&a.onunload({preventDefault:f})}),a.children&&(dc(a.children)?g(a.children,ob):a.children.tag&&ob(a.children))}function pb(a,b,c){var d=a.childNodes[b];if(d)if(1!==d.nodeType){var e=Zb.createElement("span");a.insertBefore(e,d||null),e.insertAdjacentHTML("beforebegin",c),a.removeChild(e)}else d.insertAdjacentHTML("beforebegin",c);else mc(a,c);for(var f=[];a.childNodes[b]!==d;)f.push(a.childNodes[b++]);return f}function qb(a,b){return function(c){lc("diff"),eb();try{return a.call(b,c||event)}finally{zb()}}}function rb(a){var b=oc.indexOf(a);return 0>b?oc.push(a)-1:b}function sb(a,b,c,d){var e=null===a;if(!d){lc("all"),eb(),rc[c]=b,a=qc=a||{controller:f};var g=new(a.controller||f);return a===qc&&(tc[c]=g,sc[c]=a),zb(),e&&ub(b,c),tc[c]}e&&ub(b,c)}function tb(a,b){if(!a)throw new Error("Please ensure the DOM element exists before rendering a template into it.");var d=rc.indexOf(a);0>d&&(d=rc.length);var e=!1,f={preventDefault:function(){e=!0,uc=vc=null}};return g(jc,function(a){null!=a.ctrl&&(K(a,f),a.ctrl.onunload=null)}),e?g(jc,function(a){a.ctrl.onunload=function(b){K(a,b)}}):jc=[],tc[d]&&c(tc[d].onunload)&&tc[d].onunload(f),sb(b,a,d,e)}function ub(a,b){rc.splice(b,1),tc.splice(b,1),sc.splice(b,1),Ob(a),oc.splice(rb(a),1)}function vb(){0!==xc&&ac(xc),xc=_b(yb,wc)}function wb(){xc=0}function xb(a){xc&&!a?zc():(yb(),xc=_b(wb,wc))}function yb(){uc&&(uc(),uc=null);for(var a=0;a=0){var j=Nb(Bc.slice(i+1));h(g,function(a,b){j[b]=g[b]}),e=Mb(j),f=Bc.slice(0,i)}else e=Mb(b),f=Bc;if(e){var k=-1===f.indexOf("?")?"?":"&";Bc=f+k+e}return Fb(c||d===a)}function Hb(a,b,c,d){if(0===arguments.length)return Bc;if(3===arguments.length&&e(b))Dc=function(d){var e=Bc=Ib(d);if(!Jb(a,c,e)){if(Ec)throw new Error("Ensure the default route matches one of the routes defined in m.route");Ec=!0,Hb(b,!0),Ec=!1}},Bb("hash"===Hb.mode?"onhashchange":"onpopstate");else if(a.addEventListener||a.attachEvent)a.href=Cb()+d.attrs.href,a.addEventListener?(a.removeEventListener("click",Kb),a.addEventListener("click",Kb)):(a.detachEvent("onclick",Kb),a.attachEvent("onclick",Kb));else if(e(a))return Gb.apply(null,arguments)}function Ib(a){return a.slice(Cc[Hb.mode].length)}function Jb(a,b,c){var d=c.indexOf("?");d>=0?(Ac=Nb(c.substr(d+1,c.length)),c=c.substr(0,d)):Ac={};var e=Object.keys(b),f=e.indexOf(c);if(f>=0)return tb(a,b[e[f]]),!0;for(var h in b)if(cc.call(b,h)){if(h===c)return tb(a,b[h]),!0;var i=new RegExp("^"+h.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(i.test(c))return c.replace(i,function(){for(var a=[],b=1,c=arguments.length-2;c>b;)a.push(arguments[b++]);var d=h.match(/:[^\/]+/g)||[];g(d,function(b,c){b=b.replace(/:|\./g,""),Ac[b]=decodeURIComponent(a[c])})}),tb(a,b[h]),!0}}function Kb(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"===Hb.mode&&c.search?Nb(c.search.slice(1)):{};c&&"A"!==c.nodeName.toUpperCase();)c=c.parentNode;ic=0,Hb(c[Hb.mode].slice(Cc[Hb.mode].length),b)}}function Lb(){"hash"!==Hb.mode&&$b.hash?$b.hash=$b.hash:a.scrollTo(0,0)}function Mb(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(Mb(a,i));else if(dc(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 Nb(a){if(!a)return{};"?"===a[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]?(dc(c[d])||(c[d]=[c[d]]),c[d].push(e)):c[d]=e}),c}function Ob(a){var c=rb(a);nb(a.childNodes,pc[c]),pc[c]=b}function Pb(a,b,c){return k(a)?a.then(function(a){Pb(a,b,c)},function(a){Pb(a,c,c)}):b(a)}function Qb(a,d){function e(a){r=a}function f(a){a.resolve(r)}function h(a){a.reject(r)}function i(a){return u!==h&&a(r),a}function j(a){t.push(a)}function l(a,b){var c=Rb().resolve(a()).promise;return b!==h&&c(r),c.then(b)}function m(a){u=a,g(t,a),n=q=null}function n(a,b){Pb(a,function(a){r=a,m(b===Hc?f:h)},function(a){r=a,m(h)})}function o(a,b){var c=0;try{return a.then(function(a){c++||q(Fc,a,b)},function(a){c++||q(Gc,a,b)})}catch(d){return Rb.onerror(d),q(Gc,d,b)}}function p(b,e,f){try{e===Fc&&c(a)?b=a(b):e===Gc&&c(d)&&(b=d(b),e=Fc)}catch(g){return Rb.onerror(g),n(g,Ic)}return b===f?n(TypeError(),Ic):n(b,e===Fc?Hc:Ic)}function q(a,b,c){var d;try{d=k(b)}catch(e){return Rb.onerror(e),q(Gc,e,c)}return a===Gc&&Rb.onerror(b),d?o(b,c):p(b,a,c)}var r,s=this,t=[],u=j;s.resolve=function(a){return u===j&&q(Fc,a,s),s},s.reject=function(a){return u===j&&q(Gc,a,s),s},s.promise=function(a){return arguments.length&&Pb(a,e,e),u!==h?r:b},s.promise.then=function(a,b){var c=new Qb(a,b);return u(c),i(c.promise)},s.promise.catch=function(a){return s.promise.then(null,a)},s.promise.finally=function(a){return s.promise.then(function(){return l(a,function(){return r})},function(){return l(a,function(){throw r})})}}function Rb(){return new Qb}function Sb(a){return a instanceof EvalError||a instanceof RangeError||a instanceof ReferenceError||a instanceof SyntaxError||a instanceof TypeError||a instanceof URIError}function Tb(){return"mithril_callback_"+(new Date).getTime()+"_"+Math.round(1e16*Math.random()).toString(36)}function Ub(c){var d=Tb(),e=Zb.createElement("script");a[d]=function(f){e.parentNode.removeChild(e),c.onload({success:!0,target:{responseText:f}}),a[d]=b},e.onerror=function(){return e.parentNode.removeChild(e),c.onerror({success:!1,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||"callback")+"="+d+"&"+Mb(c.data||{}),Zb.body.appendChild(e)}function Vb(b){var d=new a.XMLHttpRequest;if(d.open(b.method,b.url,!0,b.user,b.password),d.onreadystatechange=function(){4===this.readyState&&(this.status>=200&&this.status<300?b.onload({success:!0,target:this}):b.onerror({success:!1,target:this}))},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 instanceof 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 Wb(a){return a.dataType&&"JSONP"===a.dataType.toUpperCase()?Ub(a):Vb(a)}function Xb(a,b,c){if("GET"===a.method&&"jsonp"!==a.dataType){var d=a.url.indexOf("?")<0?"?":"&",e=Mb(b);a.url+=e?d+e:""}else a.data=c(b);return a}function Yb(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}r.version=function(){return"v0.2.1"};var Zb,$b,_b,ac,bc={}.toString,cc={}.hasOwnProperty,dc=Array.isArray||function(a){return"[object Array]"===bc.call(a)};i(a),r.deps=function(b){return i(a=b||a),a},r.prop=function(a){return k(a)?m(a):j(a)},r.component=q;var ec=1,fc=2,gc=3,hc=!1,ic=0,jc=[],kc=!1;r.redraw=function(a){if(!kc){kc=!0,a&&(hc=!0);try{xb(a)}finally{kc=hc=!1}}};var lc=r.redraw.strategy=r.prop();r.startComputation=eb,r.endComputation=fb;var mc=function(){try{return Zb.createRange().createContextualFragment("x"),function(a,b){a.appendChild(Zb.createRange().createContextualFragment(b))}}catch(a){return function(a,b){a.insertAdjacentHTML("beforeend",b)}}}(),nc={appendChild:function(a){Zb.documentElement&&Zb.documentElement!==a?Zb.replaceChild(a,Zb.documentElement):Zb.appendChild(a),this.childNodes=Zb.childNodes},insertBefore:function(a){this.appendChild(a)},childNodes:[]},oc=[],pc={};r.render=function(a,c,d){if(!a)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render exists.");var e,f=[],h=rb(a),i=a===Zb;e=i||a===Zb.documentElement?nc:a,i&&"html"!==c.tag&&(c={tag:"html",attrs:{},children:c}),pc[h]===b&&nb(e.childNodes),d===!0&&Ob(a),pc[h]=x(w(e,null,b,b,c,pc[h],!1,0,null,b,f)),g(f,function(a){a()})},r.trust=function(a){return a=new String(a),a.$trusted=!0,a};var qc,rc=[],sc=[],tc=[],uc=null,vc=null,wc=16;r.mount=r.module=tb;var xc=0,yc=0,zc=_b===a.requestAnimationFrame?vb:function(){+new Date-yc>wc&&vb()};r.withAttr=function(a,b,c){return function(d){d=d||event;var e,f=d.currentTarget||this;e=a in f?f[a]:f.getAttribute(a),b.call(c||this,e)}};var Ac,Bc,Cc={pathname:"",hash:"#",search:"?"},Dc=f,Ec=!1;r.route=Hb,Hb.param=function(a){if(!Ac)throw new Error("You must call m.route(element, defaultRoute, routes) before calling mroute.param()");return a?Ac[a]:Ac},Hb.mode="search",Hb.buildQueryString=Mb,Hb.parseQueryString=Nb;var Fc=1,Gc=2,Hc=3,Ic=4;return r.deferred=Rb,Rb.prototype=Qb.prototype,Rb.prototype.constructor=Rb,Rb.onerror=function(a){if(Sb(a))throw ic=0,a},r.sync=function(a){function b(a,b){return e[a]=b,0===--d&&(c.promise(e),c[f](e)),b}var c=new Qb,d=a.length,e=new Array(d),f="resolve";return a.length>0?g(a,function(a,c){a.then(function(a){return b(c,a)},function(a){return f="reject",b(c,a)})}):c.resolve([]),c.promise},r.request=function(a){a.background!==!0&&eb();var b=Rb(),c=function(a){return a},d=c,e=function(a){return a.responseText};return a.dataType&&"JSONP"===a.dataType.toUpperCase()||(c=a.serialize||JSON.stringify,d=a.deserialize||JSON.parse,e=a.extract||function(a){return a.responseText.length||d!==JSON.parse?a.responseText:null}),a.serialize=c,a.deserialize=d,a.method=(a.method||"GET").toUpperCase(),a.url=Yb(a.url,a.data),a=Xb(a,a.data,c),a.onload=a.onerror=function(c){c=c||event;var f,h=c.success;f=h?a.unwrapSuccess:a.unwrapError;try{var i=d(e(c.target,a));f&&(i=f(i,c.target)),h?(dc(i)&&a.type?g(i,function(b,c){i[c]=new a.type(b)}):a.type&&(i=new a.type(i)),b.resolve(i)):b.reject(i)}catch(j){b.reject(j)}finally{a.background!==!0&&fb()}},Wb(a),b.promise(a.initialValue),b.promise},r}); //# sourceMappingURL=mithril.min.js.map \ No newline at end of file diff --git a/mithril.min.js.map b/mithril.min.js.map index f1467b3e..dc583226 100644 --- a/mithril.min.js.map +++ b/mithril.min.js.map @@ -1 +1 @@ -{"version":3,"file":"mithril.min.js","sources":["mithril.js"],"names":["global","factory","m","window","module","exports","define","amd","this","undefined","isFunction","object","isObject","type","call","isString","noop","forEach","list","f","i","length","forOwn","obj","prop","hasOwn","initialize","$document","document","$location","location","$cancelAnimationFrame","cancelAnimationFrame","clearTimeout","$requestAnimationFrame","requestAnimationFrame","setTimeout","gettersetter","store","arguments","toJSON","isPromise","then","simpleResolve","p","callback","propify","promise","resolve","reject","catch","finally","value","reason","checkForAttrs","pairs","parseSelector","tag","cell","match","classes","parser","exec","attrs","id","push","pair","assignAttrs","target","classAttr","hasClass","attr","join","parameterize","component","Ctrl","originalCtrl","apply","args","view","ctrl","rest","concat","originalView","controller","prototype","$original","output","key","TypeError","hasAttrs","children","isArray","forKeys","dataToString","data","toString","e","flatten","insertNode","parent","node","index","insertBefore","childNodes","buildContext","parentElement","parentTag","parentCache","parentIndex","cached","shouldReattach","editable","namespace","configs","pTag","pCache","pIndex","reattach","ns","cfgs","builderBuild","inst","subtree","builderMakeCache","builderBuildArray","builderBuildObject","builderHandleTextNode","nodes","offset","end","clear","slice","constructor","buildArrayKeys","guid","builderBuildArrayChild","child","count","intact","subArrayCount","existing","shouldMaintainIdentities","action","DELETION","builderDiffKeys","cacheCount","len","item","getSubArrayCount","builderDiffArray","keysDiffer","cachedCell","builderHandleKeysDiffer","MOVE","from","element","createElement","INSERTION","actions","changes","sort","sortChanges","newCached","Array","change","splice","dummy","changeElement","parentNode","indexOf","builderInitAttrs","dataAttrs","dataAttrKeys","Object","keys","builderMaybeRecreateObject","builderGetObjectNamespace","xmlns","views","controllers","builderMarkViews","Error","hasKeys","objectBuild","builder","builderCheckView","getController","pendingRequests","forcing","updateLists","unloaderHandler","ev","ctrls","onunload","unloaders","redrawStrategy","builderElemIsDifferentEnough","cfgCtx","unload","preventDefault","arraySortCompare","a","b","cache","create","retain","objectBuildNewNode","objectCreateNode","objectReconstruct","objectCreateAttrs","objectBuildChildren","isNew","objectBuildUpdatedNode","builderScheduleConfigs","is","createElementNS","setAttributes","objectMakeChild","contenteditable","objectUnloadCachedControllers","unloadSingleCachedController","$old","config","context","builderHandleNonexistentNodes","valueOf","builderReattachNodes","nodeHasBody","test","$trusted","injectHTML","createTextNode","nodeName","activeElement","innerHTML","nodeType","nodeValue","trim","builderInjectTextNode","first","startComputation","endComputation","redraw","shouldSetAttrDirectly","trySetAttribute","dataAttr","cachedAttr","autoredraw","rule","style","setAttributeNS","setAttribute","trySetSingle","message","cachedAttrs","clearSingle","removeChild","nextSibling","placeholder","insertAdjacentHTML","insertAdjacentBeforeEnd","event","endFirstComputation","getCellCacheKey","nodeCache","initComponent","root","isPrevented","isNullComponent","roots","topComponent","components","removeRootElement","mmount","computePreRedrawHook","computePostRedrawHook","unloader","reset","actuallyPerformRedraw","lastRedrawId","FRAME_BUDGET","resetLastRedrawId","attemptRedraw","force","performRedraw","render","lastRedrawCallTime","Date","historyListener","path","mroute","mode","search","currentRoute","normalizeRoute","redirect","runHistoryListener","listener","setScroll","getRouteBase","pathname","modes","windowPushState","history","pushState","title","windowReplaceState","replaceState","computeAndLaunchRedirect","replaceHistory","routeTo","route","params","oldRoute","queryString","currentPath","queryIndex","paramsObj","parseQueryString","buildQueryString","delimiter","arg1","arg2","vdom","source","routeByValue","isDefaultRoute","addEventListener","attachEvent","href","removeEventListener","routeUnobtrusive","detachEvent","router","queryStart","routeParams","substr","matcher","RegExp","replace","values","decodeURIComponent","ctrlKey","metaKey","which","returnValue","currentTarget","srcElement","toUpperCase","hash","scrollTo","prefix","duplicates","str","encodeURIComponent","split","string","cacheKey","cellCache","coerce","next","error","Deferred","onSuccess","onFailure","set","promiseValue","deferred","init","func","wrapper","mdeferred","run","finish","fire","state","RESOLVED","doThen","RESOLVING","REJECTING","onerror","notThennable","REJECTED","thenable","self","isNativeError","EvalError","RangeError","ReferenceError","SyntaxError","URIError","generateCallbackKey","getTime","Math","round","random","getJsonp","options","callbackKey","script","resp","onload","success","responseText","status","src","url","body","appendChild","runXhr","xhr","XMLHttpRequest","open","method","user","password","onreadystatechange","readyState","serialize","JSON","stringify","setRequestHeader","deserialize","parse","maybeXhr","FormData","send","ajax","dataType","bindData","xhrOptions","querystring","parameterizeUrl","tokens","token","version","hasOwnProperty","deps","mock","redrawing","strategy","createRange","createContextualFragment","documentNode","documentElement","replaceChild","forceRecreation","isDocumentRoot","trust","String","mount","withAttr","withAttrCallback","callbackThis","targetProp","getAttribute","param","sync","synchronizer","results","outstanding","arg","request","background","extract","jsonp","unwrap","doSuccess","unwrapSuccess","unwrapError","response","res","initialValue"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"mithril.min.js","sources":["mithril.js"],"names":["global","factory","m","window","module","exports","define","amd","this","undefined","isFunction","object","isObject","type","call","isString","noop","forEach","list","f","i","length","forOwn","obj","prop","hasOwn","initialize","$document","document","$location","location","$cancelAnimationFrame","cancelAnimationFrame","clearTimeout","$requestAnimationFrame","requestAnimationFrame","setTimeout","gettersetter","store","arguments","toJSON","isPromise","then","simpleResolve","p","callback","propify","promise","resolve","reject","catch","finally","value","reason","checkForAttrs","pairs","parseSelector","tag","cell","match","classes","parser","exec","attrs","id","push","pair","assignAttrs","target","classAttr","hasClass","attr","join","parameterize","component","Ctrl","originalCtrl","apply","args","view","ctrl","rest","concat","originalView","controller","prototype","$original","output","key","TypeError","hasAttrs","children","isArray","forKeys","dataToString","data","toString","e","flatten","insertNode","parent","node","index","insertBefore","childNodes","buildContext","parentElement","parentTag","parentCache","parentIndex","cached","shouldReattach","editable","namespace","configs","pTag","pCache","pIndex","reattach","ns","cfgs","builderBuild","inst","subtree","builderMakeCache","builderBuildArray","builderBuildObject","builderHandleTextNode","nodes","offset","end","clear","slice","constructor","buildArrayKeys","guid","builderBuildArrayChild","child","count","intact","subArrayCount","existing","shouldMaintainIdentities","action","DELETION","builderDiffKeys","cacheCount","len","item","getSubArrayCount","builderDiffArray","keysDiffer","cachedCell","builderHandleKeysDiffer","MOVE","from","element","createElement","INSERTION","actions","changes","sort","sortChanges","newCached","Array","change","splice","dummy","changeElement","parentNode","indexOf","builderInitAttrs","dataAttrs","dataAttrKeys","Object","keys","builderMaybeRecreateObject","builderGetObjectNamespace","xmlns","views","controllers","builderMarkViews","Error","hasKeys","objectBuild","builder","builderCheckView","getController","pendingRequests","forcing","updateLists","unloaderHandler","ev","ctrls","onunload","unloaders","redrawStrategy","builderElemIsDifferentEnough","cfgCtx","unload","preventDefault","arraySortCompare","a","b","cache","create","retain","objectBuildNewNode","objectCreateNode","objectReconstruct","objectCreateAttrs","objectBuildChildren","isNew","objectBuildUpdatedNode","builderScheduleConfigs","is","createElementNS","setAttributes","objectMakeChild","contenteditable","objectUnloadCachedControllers","unloadSingleCachedController","$old","config","context","builderHandleNonexistentNodes","valueOf","builderReattachNodes","nodeHasBody","test","$trusted","injectHTML","createTextNode","nodeName","activeElement","innerHTML","nodeType","nodeValue","trim","builderInjectTextNode","first","startComputation","endComputation","redraw","shouldSetAttrDirectly","trySetAttribute","dataAttr","cachedAttr","autoredraw","rule","style","setAttributeNS","setAttribute","trySetSingle","message","cachedAttrs","clearSingle","removeChild","nextSibling","placeholder","insertAdjacentHTML","insertAdjacentBeforeEnd","event","endFirstComputation","getCellCacheKey","nodeCache","initComponent","root","isPrevented","isNullComponent","roots","topComponent","components","removeRootElement","mmount","computePreRedrawHook","computePostRedrawHook","unloader","reset","actuallyPerformRedraw","lastRedrawId","FRAME_BUDGET","resetLastRedrawId","attemptRedraw","force","performRedraw","render","lastRedrawCallTime","Date","historyListener","path","mroute","mode","search","currentRoute","normalizeRoute","redirect","runHistoryListener","listener","setScroll","getRouteBase","pathname","modes","windowPushState","history","pushState","title","windowReplaceState","replaceState","computeAndLaunchRedirect","replaceHistory","routeTo","route","params","oldRoute","queryString","currentPath","queryIndex","paramsObj","parseQueryString","buildQueryString","delimiter","arg1","arg2","vdom","source","routeByValue","isDefaultRoute","addEventListener","attachEvent","href","removeEventListener","routeUnobtrusive","detachEvent","router","queryStart","routeParams","substr","matcher","RegExp","replace","values","decodeURIComponent","ctrlKey","metaKey","which","returnValue","currentTarget","srcElement","toUpperCase","hash","scrollTo","prefix","duplicates","str","encodeURIComponent","split","string","cacheKey","cellCache","coerce","next","error","Deferred","onSuccess","onFailure","set","promiseValue","deferred","init","func","wrapper","mdeferred","run","finish","fire","state","RESOLVED","doThen","RESOLVING","REJECTING","onerror","notThenable","REJECTED","thenable","self","isNativeError","EvalError","RangeError","ReferenceError","SyntaxError","URIError","generateCallbackKey","getTime","Math","round","random","getJsonp","options","callbackKey","script","resp","onload","success","responseText","status","src","url","body","appendChild","runXhr","xhr","XMLHttpRequest","open","method","user","password","onreadystatechange","readyState","serialize","JSON","stringify","setRequestHeader","deserialize","parse","maybeXhr","FormData","send","ajax","dataType","bindData","xhrOptions","querystring","parameterizeUrl","tokens","token","version","hasOwnProperty","deps","mock","redrawing","strategy","createRange","createContextualFragment","documentNode","documentElement","replaceChild","forceRecreation","isDocumentRoot","trust","String","mount","withAttr","withAttrCallback","callbackThis","targetProp","getAttribute","param","sync","synchronizer","results","outstanding","arg","request","background","extract","jsonp","unwrap","doSuccess","unwrapSuccess","unwrapError","response","res","initialValue"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 14d76259..a154b38d 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "url": "http://github.com/lhorie/mithril.js/issues" }, "scripts": { + "preversion": "grunt", "test": "grunt test" }, "main": "mithril.js", diff --git a/test-deps/mock.js b/test-deps/mock.js index 698f86bc..7c086b96 100644 --- a/test-deps/mock.js +++ b/test-deps/mock.js @@ -227,6 +227,15 @@ this.mock = (function (global) { function Request() { this.$headers = {} + this.$resolve = function (data, status) { + if (data === undefined) data = this // eslint-disable-line + this.responseText = JSON.stringify(data) + this.readyState = 4 + this.status = status || 200 + this.onreadystatechange() + return this + } + this.setRequestHeader = function (key, value) { this.$headers[key] = value } @@ -237,9 +246,6 @@ this.mock = (function (global) { } this.send = function () { - this.responseText = JSON.stringify(this) - this.readyState = 4 - this.status = 200 Request.$instances.push(this) } } diff --git a/test/mithril.mount.js b/test/mithril.mount.js index fa68d11f..736f87a1 100644 --- a/test/mithril.mount.js +++ b/test/mithril.mount.js @@ -648,7 +648,7 @@ describe("m.mount()", function () { }) function resolveXhr() { - mock.XMLHttpRequest.$instances.pop().onreadystatechange() + mock.XMLHttpRequest.$instances.pop().$resolve() mock.requestAnimationFrame.$resolve() } diff --git a/test/mithril.request.js b/test/mithril.request.js index d432ab43..ed361bf4 100644 --- a/test/mithril.request.js +++ b/test/mithril.request.js @@ -4,7 +4,7 @@ describe("m.request()", function () { // Much easier to read function resolve() { var xhr = mock.XMLHttpRequest.$instances.pop() - xhr.onreadystatechange() + xhr.$resolve.apply(xhr, arguments) return xhr } @@ -181,8 +181,7 @@ describe("m.request()", function () { data: {foo: 1} }).then(null, error) - var xhr = mock.XMLHttpRequest.$instances.pop() - xhr.onreadystatechange() + var xhr = mock.XMLHttpRequest.$instances.pop().$resolve() expect(xhr.$headers).to.have.property( "Content-Type", @@ -197,8 +196,7 @@ describe("m.request()", function () { url: "test" }).then(null, error) - var xhr = mock.XMLHttpRequest.$instances.pop() - xhr.onreadystatechange() + var xhr = mock.XMLHttpRequest.$instances.pop().$resolve() expect(xhr.$headers).to.not.have.property("Content-Type") }) @@ -381,4 +379,21 @@ describe("m.request()", function () { // For good measure mock.requestAnimationFrame.$resolve() }) + + it("can use a config correctly", function () { + var config = sinon.spy() + var result = m.prop() + var error = sinon.spy + var opts = { + method: "GET", + url: "/test", + config: config + } + m.request(opts).then(result, error) + var xhr = resolve({foo: "bar"}) + + expect(config).to.be.calledWithExactly(xhr, opts) + expect(result()).to.eql({foo: "bar"}) + expect(error).to.not.be.called + }) })