From 3d515af736dca946058804ea258237ac84d4a1a5 Mon Sep 17 00:00:00 2001 From: Gandalf-the-Bot Date: Wed, 24 Aug 2016 02:34:16 +0000 Subject: [PATCH] Bundled output for commit 53a83a58f2bf46b1d63dfab1449a623ac89e92fa [skip ci] --- mithril.js | 19 +++++++----- mithril.min.js | 82 +++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 49 deletions(-) diff --git a/mithril.js b/mithril.js index d1e31fa8..a3e993da 100644 --- a/mithril.js +++ b/mithril.js @@ -166,8 +166,7 @@ var renderService = function($window) { initLifecycle(vnode.tag, vnode, hooks) vnode.instance = Vnode.normalize(vnode.tag.view.call(vnode.state, vnode)) if (vnode.instance != null) { - if(vnode.instance === vnode) - throw Error("A component view mustn't return the vnode that was supplied to it.") + if (vnode.instance === vnode) throw Error("A view cannot return the vnode it received as arguments") var element = createNode(vnode.instance, hooks, ns) vnode.dom = vnode.instance.dom vnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0 @@ -1100,13 +1099,17 @@ m.route = function($window, renderer, pubsub) { var route = function(root, defaultRoute, routes) { var current = {path: null, component: "div"} var replay = router.defineRoutes(routes, function(payload, args, path, route) { + var resolved = false + function resolve(component) { + if (resolved) return + resolved = true + current.path = path, current.component = component + renderer.render(root, payload.render(Vnode(component, null, args, undefined, undefined, undefined))) + } args.path = path, args.route = route - if (typeof payload.onmatch === "function") { - if (typeof payload.view !== "function") payload.view = function(vnode) {return vnode} - var resolve = function(component) { - current.path = path, current.component = component - renderer.render(root, payload.view(Vnode(component, null, args, undefined, undefined, undefined))) - } + if (typeof payload.view !== "function") { + if (typeof payload.render !== "function") payload.render = function(vnode) {return vnode} + if (typeof payload.onmatch !== "function") payload.onmatch = function() {resolve(current.component)} if (path !== current.path) payload.onmatch(Vnode(payload, null, args, undefined, undefined, undefined), resolve) else resolve(current.component) } diff --git a/mithril.min.js b/mithril.min.js index ee4750c5..56026ba7 100644 --- a/mithril.min.js +++ b/mithril.min.js @@ -1,41 +1,41 @@ -new function(){function t(d,e,q,g,n,h){return{tag:d,key:e,attrs:q,children:g,text:n,dom:h,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}function v(d){if(null==d||"string"!==typeof d&&null==d.view)throw Error("The selector must be either a string or a component.");if("string"===typeof d&&void 0===G[d]){for(var e,q,g=[],n={};e=O.exec(d);){var h=e[1],m=e[2];""===h&&""!==m?q=m:"#"===h?n.id=m:"."===h?g.push(m):"["===e[3][0]&&((h=e[6])&&(h=h.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")), -n[e[4]]=h||!0)}0=r&&A>=B;){var k=a[r],w=f[B];if(k===w)r++,B++;else if(null!=k&&null!=w&&k.key===w.key)r++,B++,h(b,k,w,d,l(a,r,c),p,u),p&&k.tag===w.tag&&x(b,m(k),c);else if(k=a[g],k===w)g--,B++;else if(null!=k&&null!=w&&k.key===w.key)h(b,k,w,d,l(a,g+1,c),p,u),B=r&&A>=B;){k=a[g];w=f[A];if(k===w)g--;else if(null!=k&&null!=w&&k.key===w.key)h(b,k,w,d,l(a,g+1,c),p,u),p&&k.tag===w.tag&&x(b,m(k),c),null!=k.dom&&(c=k.dom),g--;else{if(!n){n=a;var k=g,t={},y;for(y=0;yc.indexOf("?")?"?":"&";c+=g+e}return c}function n(c){try{return""!==c?JSON.parse(c):null}catch(d){throw Error(c);}}function h(c){return c.responseText}function m(c,d){if("function"=== -typeof c)if(d instanceof Array)for(var e=0;eu.status)e(m(c.type,d));else{var g=Error(u.responseText),k;for(k in d)g[k]=d[k];e.error(g)}}catch(x){e.error(x)}"function"===typeof z&&z()}};k?u.send(c.data):u.send();return e},jsonp:function(c){var e=l();void 0!==c.initialValue&&e(c.initialValue);var k=c.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+x++,h=d.document.createElement("script");d[k]=function(g){h.parentNode.removeChild(h); -e(m(c.type,g));"function"===typeof z&&z();delete d[k]};h.onerror=function(){h.parentNode.removeChild(h);e.error(Error("JSONP request failed"));"function"===typeof z&&z();delete d[k]};null==c.data&&(c.data={});c.url=q(c.url,c.data);c.data[c.callbackKey||"callback"]=k;h.src=g(c.url,c.data);d.document.documentElement.appendChild(h);return e},setCompletionCallback:function(c){z=c}}}(window,console.error.bind(console)),F=function(){var d=[];return{subscribe:d.push.bind(d),unsubscribe:function(e){e=d.indexOf(e); --1=t&&A>=B;){var h=a[t],v=f[B];if(h===v)t++,B++;else if(null!=h&&null!=v&&h.key===v.key)t++,B++,n(b,h,v,d,k(a,t,c),q,g),q&&h.tag===v.tag&&p(b,m(h),c);else if(h=a[w],h===v)w--,B++;else if(null!=h&&null!=v&&h.key===v.key)n(b,h,v,d,k(a,w+1,c),q,g),B=t&&A>=B;){h=a[w];v=f[A];if(h===v)w--;else if(null!=h&&null!=v&&h.key===v.key)n(b,h,v,d,k(a,w+1,c),q,g),q&&h.tag===v.tag&&p(b,m(h),c),null!=h.dom&&(c=h.dom),w--;else{if(!l){l=a;var h=w,u={},x;for(x=0;xc.indexOf("?")?"?":"&";c+=g+e}return c}function l(c){try{return""!==c?JSON.parse(c):null}catch(d){throw Error(c);}}function n(c){return c.responseText}function m(c,d){if("function"=== +typeof c)if(d instanceof Array)for(var e=0;ep.status)e(m(c.type,d));else{var g=Error(p.responseText),h;for(h in d)g[h]=d[h];e.error(g)}}catch(k){e.error(k)}"function"===typeof z&&z()}};h?p.send(c.data):p.send();return e},jsonp:function(c){var e=k();void 0!==c.initialValue&&e(c.initialValue);var h=c.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+p++,l=d.document.createElement("script");d[h]=function(p){l.parentNode.removeChild(l); +e(m(c.type,p));"function"===typeof z&&z();delete d[h]};l.onerror=function(){l.parentNode.removeChild(l);e.error(Error("JSONP request failed"));"function"===typeof z&&z();delete d[h]};null==c.data&&(c.data={});c.url=r(c.url,c.data);c.data[c.callbackKey||"callback"]=h;l.src=g(c.url,c.data);d.document.documentElement.appendChild(l);return e},setCompletionCallback:function(c){z=c}}}(window,console.error.bind(console)),G=function(){var d=[];return{subscribe:d.push.bind(d),unsubscribe:function(e){e=d.indexOf(e); +-1