rebuild after stream changes
This commit is contained in:
parent
7f8363560e
commit
6b0fa399d5
3 changed files with 70 additions and 68 deletions
56
mithril.js
56
mithril.js
|
|
@ -49,15 +49,7 @@ function updateStream(stream, value, error) {
|
|||
function updateState(stream, value, error) {
|
||||
error = unwrapError(value, error)
|
||||
if (error !== undefined && typeof stream._state.recover === "function") {
|
||||
try {
|
||||
var recovered = stream._state.recover()
|
||||
if (recovered === HALT) return
|
||||
updateValues(stream, recovered, undefined)
|
||||
}
|
||||
catch (e) {
|
||||
updateValues(stream, undefined, e)
|
||||
reportUncaughtError(stream, e)
|
||||
}
|
||||
if (!resolve(stream, updateValues, true)) return
|
||||
}
|
||||
else updateValues(stream, value, error)
|
||||
stream._state.changed = true
|
||||
|
|
@ -72,19 +64,21 @@ function updateDependency(stream, mustSync) {
|
|||
if (parents.length > 0 && parents.filter(active).length === parents.length && (mustSync || parents.filter(changed).length > 0)) {
|
||||
var failed = parents.filter(errored)
|
||||
if (failed.length > 0) updateState(stream, undefined, failed[0]._state.error)
|
||||
else {
|
||||
try {
|
||||
var value = state.derive()
|
||||
if (value === HALT) return
|
||||
updateState(stream, value, undefined)
|
||||
}
|
||||
catch (e) {
|
||||
updateState(stream, undefined, e)
|
||||
reportUncaughtError(stream, e)
|
||||
}
|
||||
}
|
||||
else resolve(stream, updateState, false)
|
||||
}
|
||||
}
|
||||
function resolve(stream, update, shouldRecover) {
|
||||
try {
|
||||
var value = shouldRecover ? stream._state.recover() : stream._state.derive()
|
||||
if (value === HALT) return false
|
||||
update(stream, value, undefined)
|
||||
}
|
||||
catch (e) {
|
||||
update(stream, undefined, e)
|
||||
reportUncaughtError(stream, e)
|
||||
}
|
||||
return true
|
||||
}
|
||||
function unwrapError(value, error) {
|
||||
if (value != null && value.constructor === createStream) {
|
||||
if (value._state.error !== undefined) error = value._state.error
|
||||
|
|
@ -97,7 +91,7 @@ function finalize(stream) {
|
|||
for (var id in stream._state.deps) stream._state.deps[id]._state.changed = false
|
||||
}
|
||||
function reportUncaughtError(stream, e) {
|
||||
if (Object.keys(stream._state.deps).length === 0) {
|
||||
if (Object.keys(stream._state.deps).length === 0 && stream._state.derive == null) {
|
||||
setTimeout(function() {
|
||||
if (Object.keys(stream._state.deps).length === 0) console.error(e)
|
||||
}, 0)
|
||||
|
|
@ -124,11 +118,19 @@ function combine(fn, streams) {
|
|||
}
|
||||
function absorb(stream, value) {
|
||||
if (value != null && value.constructor === createStream) {
|
||||
value.error.map(stream.error)
|
||||
value.map(stream)
|
||||
if (value._state.state === 0) return HALT
|
||||
if (value._state.error) throw value._state.error
|
||||
value = value._state.value
|
||||
var absorbable = value
|
||||
var update = function() {
|
||||
updateState(stream, absorbable._state.value, absorbable._state.error)
|
||||
for (var id in stream._state.deps) updateDependency(stream._state.deps[id], false)
|
||||
}
|
||||
absorbable.map(update).catch(function(e) {
|
||||
update()
|
||||
throw e
|
||||
})
|
||||
|
||||
if (absorbable._state.state === 0) return HALT
|
||||
if (absorbable._state.error) throw absorbable._state.error
|
||||
value = absorbable._state.value
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
|
@ -175,7 +177,7 @@ function reject(e) {
|
|||
}
|
||||
function merge(streams) {
|
||||
return combine(function () {
|
||||
return streams.map(function (s) {return s()})
|
||||
return streams.map(function(s) {return s()})
|
||||
}, streams)
|
||||
}
|
||||
var Stream = {stream: createStream, merge: merge, combine: combine, reject: reject, HALT: HALT}
|
||||
|
|
|
|||
80
mithril.min.js
vendored
80
mithril.min.js
vendored
|
|
@ -1,40 +1,40 @@
|
|||
new function(){function y(){function a(){0<arguments.length&&I(a,arguments[0],void 0);return a._state.value}N(a,arguments);0<arguments.length&&I(a,arguments[0],void 0);return a}function N(a,b){a.constructor=y;a._state={id:aa++,value:void 0,error:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],errorStream:void 0,endStream:void 0};a.map=ba;a.ap=ca;a.of=y;a.valueOf=O;a.toJSON=da;a.toString=O;a.run=ea;a["catch"]=fa;Object.defineProperties(a,{error:{get:function(){if(!a._state.errorStream){var b=
|
||||
function(){0<arguments.length&&I(a,void 0,arguments[0]);return a._state.error};N(b,[]);D(b,[a],P,P);a._state.errorStream=b}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var b=y();b.map(function(d){!0===d&&(Q(a),Q(b));return d});a._state.endStream=b}return a._state.endStream}}})}function I(a,b,h){E(a,b,h);for(var d in a._state.deps)R(a._state.deps[d],!1);a._state.changed=!1;for(var g in a._state.deps)a._state.deps[g]._state.changed=!1}function E(a,b,h){h=S(b,h);if(void 0!==
|
||||
h&&"function"===typeof a._state.recover)try{var d=a._state.recover();if(d===F)return;a._state.value=d;a._state.error=void 0}catch(g){a._state.value=void 0,a._state.error=g,T(a,g)}else a._state.value=b,a._state.error=h;a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function R(a,b){var h=a._state,d=h.parents;if(0<d.length&&d.filter(ga).length===d.length&&(b||0<d.filter(U).length))if(d=d.filter(V),0<d.length)E(a,void 0,d[0]._state.error);else try{var g=h.derive();g!==F&&E(a,g,void 0)}catch(p){E(a,
|
||||
void 0,p),T(a,p)}}function S(a,b){null!=a&&a.constructor===y&&(b=void 0!==a._state.error?a._state.error:S(a._state.value,a._state.error));return b}function T(a,b){0===Object.keys(a._state.deps).length&&setTimeout(function(){0===Object.keys(a._state.deps).length&&console.error(b)},0)}function ea(a){var b=y(),h=this;return D(b,[h],function(){return W(b,a(h()))},void 0)}function fa(a){var b=y(),h=this;return D(b,[h],function(){return h._state.value},function(){return W(b,a(h._state.error))})}function G(a,
|
||||
b){return D(y(),b,function(){var h=b.filter(V);if(0<h.length)throw h[0]._state.error;return a.apply(this,b.concat([b.filter(U)]))},void 0)}function W(a,b){if(null!=b&&b.constructor===y){b.error.map(a.error);b.map(a);if(0===b._state.state)return F;if(b._state.error)throw b._state.error;b=b._state.value}return b}function D(a,b,h,d){var g=a._state;g.derive=h;g.recover=d;g.parents=b.filter(ha);X(a,g.parents);R(a,!0);return a}function X(a,b){for(var h=0;h<b.length;h++)b[h]._state.deps[a._state.id]=a,X(a,
|
||||
b[h]._state.parents)}function Q(a){for(var b=0;b<a._state.parents.length;b++)delete a._state.parents[b]._state.deps[a._state.id];for(var h in a._state.deps){var b=a._state.deps[h],d=b._state.parents.indexOf(a);-1<d&&b._state.parents.splice(d,1)}a._state.state=2;a._state.deps={}}function ba(a){return G(function(b){return a(b())},[this])}function ca(a){return G(function(a,h){return a()(h())},[this,a])}function O(){return this._state.value}function da(){return JSON.stringify(this._state.value)}function ga(a){return 1===
|
||||
a._state.state}function U(a){return a._state.changed}function ha(a){return 2!==a._state.state}function V(a){return a._state.error}function u(a,b,h,d,g,p){return{tag:a,key:b,attrs:h,children:d,text:g,dom:p,domSize:void 0,state:{},events:void 0,instance:void 0}}var aa=0,P=function(){},F={},C={stream:y,merge:function(a){return G(function(){return a.map(function(a){return a()})},a)},combine:G,reject:function(a){var b=y();b.error(a);return b},HALT:F};u.normalize=function(a){return a instanceof Array?u("[",
|
||||
void 0,void 0,u.normalizeChildren(a),void 0,void 0):null!=a&&"object"!==typeof a?u("#",void 0,void 0,a,void 0,void 0):a};u.normalizeChildren=function(a){for(var b=0;b<a.length;b++)a[b]=u.normalize(a[b]);return a};var ia=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,J={},n=function(a){if("string"===typeof a&&void 0===J[a]){for(var b,h,d=[],g={};b=ia.exec(a);){var p=b[1],l=b[2];""===p&&""!==l?h=l:"#"===p?g.id=l:"."===p?d.push(l):"["===b[3][0]&&((p=b[6])&&(p=p.replace(/\\(["'])/g,
|
||||
"$1").replace(/\\\\/g,"\\")),g[b[4]]=p||!0)}0<d.length&&(g.className=d.join(" "));J[a]=function(a,b){var d=!1,k,p,m=a.className||a["class"],l;for(l in g)a[l]=g[l];void 0!==m&&(void 0!==a["class"]&&(a["class"]=void 0,a.className=m),void 0!==g.className&&(a.className=g.className+" "+m));for(l in a)if("key"!==l){d=!0;break}b instanceof Array&&1==b.length&&null!=b[0]&&"#"===b[0].tag?p=b[0].children:k=b;return u(h||"div",a.key,d?a:void 0,k,p,void 0)}}var m;null!=arguments[1]&&("object"!==typeof arguments[1]||
|
||||
void 0!==arguments[1].tag||arguments[1]instanceof Array)?d=1:(m=arguments[1],d=2);if(arguments.length===d+1)b=arguments[d]instanceof Array?arguments[d]:[arguments[d]];else for(b=[];d<arguments.length;d++)b.push(arguments[d]);return"string"===typeof a?J[a](m||{},u.normalizeChildren(b)):u(a,m&&m.key,m||{},u.normalizeChildren(b),void 0,void 0)},K=function(a){function b(a,c,e,b,d,q,g){for(;e<b;e++){var k=c[e];null!=k&&f(a,h(k,d,g),q)}}function h(a,c,e){var f=a.tag;null!=a.attrs&&n(a.attrs,a,c);if("string"===
|
||||
typeof f)switch(f){case "#":return a.dom=x.createTextNode(a.children);case "<":return d(a);case "[":var q=x.createDocumentFragment();null!=a.children&&(f=a.children,b(q,f,0,f.length,c,null,e));a.dom=q.firstChild;a.domSize=q.childNodes.length;return q;default:var g=a.tag;switch(a.tag){case "svg":e="http://www.w3.org/2000/svg";break;case "math":e="http://www.w3.org/1998/Math/MathML"}var k=(f=a.attrs)&&f.is,g=e?k?x.createElementNS(e,g,k):x.createElementNS(e,g):k?x.createElement(g,k):x.createElement(g);
|
||||
a.dom=g;if(null!=f)for(q in k=e,f)A(a,q,null,f[q],k);null!=a.text&&(""!==a.text?g.textContent=a.text:a.children=[u("#",void 0,void 0,a.text,void 0,void 0)]);null!=a.children&&(q=a.children,b(g,q,0,q.length,c,null,e),c=a.attrs,"select"===a.tag&&null!=c&&("value"in c&&A(a,"value",null,c.value,void 0),"selectedIndex"in c&&A(a,"selectedIndex",null,c.selectedIndex,void 0)));return g}else return a.state=C(a.tag),n(a.tag,a,c),a.instance=u.normalize(a.tag.view.call(a.state,a)),null!=a.instance?(c=h(a.instance,
|
||||
c,e),a.dom=a.instance.dom,a.domSize=null!=a.dom?a.instance.domSize:0,a=c):(a.domSize=0,a=ja),a}function d(a){var c={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(a.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",c=x.createElement(c);c.innerHTML=a.children;a.dom=c.firstChild;a.domSize=c.childNodes.length;a=x.createDocumentFragment();for(var e;e=c.firstChild;)a.appendChild(e);return a}function g(a,c,e,d,g,k){if(c!==e&&(null!=c||
|
||||
null!=e))if(null==c)b(a,e,0,e.length,d,g,void 0);else if(null==e)q(a,c,0,c.length,e);else{var z;a:{if(null!=c.pool&&Math.abs(c.pool.length-e.length)<=Math.abs(c.length-e.length)&&(z=e[0]&&e[0].children&&e[0].children.length||0,Math.abs((c.pool[0]&&c.pool[0].children&&c.pool[0].children.length||0)-z)<=Math.abs((c[0]&&c[0].children&&c[0].children.length||0)-z))){z=!0;break a}z=!1}z&&(c=c.concat(c.pool));if(c.length===e.length&&null!=e[0]&&null==e[0].key)for(var r=0;r<c.length;r++)c[r]===e[r]||null==
|
||||
c[r]&&null==e[r]||(null==c[r]?f(a,h(e[r],d,k),m(c,r+1,g)):null==e[r]?q(a,c,r,r+1,e):p(a,c[r],e[r],d,m(c,r+1,g),z,k),z&&c[r].tag===e[r].tag&&f(a,l(c[r]),m(c,r+1,g)));else{for(var A=r=0,v=c.length-1,B=e.length-1,u;v>=r&&B>=A;){var t=c[r],w=e[A];if(t===w)r++,A++;else if(null!=t&&null!=w&&t.key===w.key)r++,A++,p(a,t,w,d,m(c,r,g),z,k),z&&t.tag===w.tag&&f(a,l(t),g);else if(t=c[v],t===w)v--,A++;else if(null!=t&&null!=w&&t.key===w.key)p(a,t,w,d,m(c,v+1,g),z,k),f(a,l(t),m(c,r,g)),v--,A++;else break}for(;v>=
|
||||
r&&B>=A;){t=c[v];w=e[B];if(t===w)v--;else if(null!=t&&null!=w&&t.key===w.key)p(a,t,w,d,m(c,v+1,g),z,k),z&&t.tag===w.tag&&f(a,l(t),g),null!=t.dom&&(g=t.dom),v--;else{if(!u){u=c;var t=v,n={},x;for(x=0;x<t;x++){var y=u[x];null!=y&&(y=y.key,null!=y&&(n[y]=x))}u=n}null!=w&&(t=u[w.key],null!=t?(n=c[t],p(a,n,w,d,m(c,v+1,g),z,k),f(a,l(n),g),c[t].skip=!0,null!=n.dom&&(g=n.dom)):(w=h(w,d,void 0),f(a,w,g),g=w))}B--;if(B<A)break}b(a,e,A,B+1,d,g,k);q(a,c,r,v+1,e)}}}function p(a,c,e,b,k,q,m){var r=c.tag;if(r===
|
||||
e.tag){e.state=c.state;e.events=c.events;var v;var B;null!=e.attrs&&"function"===typeof e.attrs.onbeforeupdate&&(v=e.attrs.onbeforeupdate.call(e.state,e,c));"string"!==typeof e.tag&&"function"===typeof e.tag.onbeforeupdate&&(B=e.tag.onbeforeupdate.call(e.state,e,c));void 0===v&&void 0===B||v||B?v=!1:(e.dom=c.dom,e.domSize=c.domSize,e.instance=c.instance,v=!0);if(!v)if(null!=e.attrs&&y(e.attrs,e,b,q),"string"===typeof r)switch(r){case "#":c.children.toString()!==e.children.toString()&&(c.dom.nodeValue=
|
||||
e.children);e.dom=c.dom;break;case "<":c.children!==e.children?(l(c),f(a,d(e),k)):(e.dom=c.dom,e.domSize=c.domSize);break;case "[":g(a,c.children,e.children,b,k,m);c=0;b=e.children;e.dom=null;if(null!=b){for(var n=0;n<b.length;n++)a=b[n],null!=a&&null!=a.dom&&(null==e.dom&&(e.dom=a.dom),c+=a.domSize||1);1!==c&&(e.domSize=c)}break;default:a=m;k=e.dom=c.dom;switch(e.tag){case "svg":a="http://www.w3.org/2000/svg";break;case "math":a="http://www.w3.org/1998/Math/MathML"}"textarea"===e.tag&&(null==e.attrs&&
|
||||
(e.attrs={}),null!=e.text&&(e.attrs.value=e.text));q=c.attrs;m=e.attrs;r=a;if(null!=m)for(n in m)A(e,n,q&&q[n],m[n],r);if(null!=q)for(n in q)null!=m&&n in m||"key"!==n&&e.dom.removeAttribute(n);null!=c.text&&null!=e.text&&""!==e.text?c.text.toString()!==e.text.toString()&&(c.dom.firstChild.nodeValue=e.text):(null!=c.text&&(c.children=[u("#",void 0,void 0,c.text,void 0,c.dom.firstChild)]),null!=e.text&&(e.children=[u("#",void 0,void 0,e.text,void 0,void 0)]),g(k,c.children,e.children,b,null,a))}else e.instance=
|
||||
u.normalize(e.tag.view.call(e.state,e)),y(e.tag,e,b,q),null!=e.instance?(null==c.instance?f(a,h(e.instance,b,m),k):p(a,c.instance,e.instance,b,k,q,m),e.dom=e.instance.dom,e.domSize=e.instance.domSize):null!=c.instance?(z(a,c.instance,null,!1),e.dom=void 0,e.domSize=0):(e.dom=c.dom,e.domSize=c.domSize)}else z(a,c,null,!1),f(a,h(e,b,void 0),k)}function l(a){var c=a.domSize;if(null!=c||null==a.dom){var e=x.createDocumentFragment();if(0<c){for(a=a.dom;--c;)e.appendChild(a.nextSibling);e.insertBefore(a,
|
||||
e.firstChild)}return e}return a.dom}function m(a,c,e){for(;c<a.length;c++)if(null!=a[c]&&null!=a[c].dom)return a[c].dom;return e}function f(a,c,e){e&&e.parentNode?a.insertBefore(c,e):a.appendChild(c)}function q(a,c,e,b,f){for(;e<b;e++){var d=c[e];null!=d&&(d.skip?d.skip=void 0:z(a,d,f,!1))}}function z(a,c,e,b){if(!1===b){var f=0,d=0;b=function(){++d===f&&z(a,c,e,!0)};c.attrs&&c.attrs.onbeforeremove&&(f++,c.attrs.onbeforeremove.call(c.state,c,b));"string"!==typeof c.tag&&c.tag.onbeforeremove&&(f++,
|
||||
c.tag.onbeforeremove.call(c.state,c,b));if(0<f)return}k(c);if(c.dom){b=c.domSize||1;if(1<b)for(var g=c.dom;--b;)a.removeChild(g.nextSibling);null!=c.dom.parentNode&&a.removeChild(c.dom);null==e||null!=c.domSize||v(c.attrs)||"string"!==typeof c.tag||(e.pool?e.pool.push(c):e.pool=[c])}}function k(a){a.attrs&&a.attrs.onremove&&a.attrs.onremove.call(a.state,a);"string"!==typeof a.tag&&a.tag.onremove&&a.tag.onremove.call(a.state,a);if(null!=a.instance)k(a.instance);else if(a=a.children,a instanceof Array)for(var c=
|
||||
0;c<a.length;c++){var b=a[c];null!=b&&k(b)}}function A(a,c,b,f,d){var g=a.dom;if("key"!==c&&(b!==f||"value"===c||"checked"===c||"selectedIndex"===c||"selected"===c&&a.dom===x.activeElement||"object"===typeof f)&&"undefined"!==typeof f&&"oninit"!==c&&"oncreate"!==c&&"onupdate"!==c&&"onremove"!==c&&"onbeforeremove"!==c&&"onbeforeupdate"!==c){var q=c.indexOf(":");if(-1<q&&"xlink"===c.substr(0,q))g.setAttributeNS("http://www.w3.org/1999/xlink",c.slice(q+1),f);else if("o"===c[0]&&"n"===c[1]&&"function"===
|
||||
typeof f)B(a,c,f);else if("style"===c)if(a=b,a===f&&(g.cssText="",a=null),null==f)g.cssText="";else if("string"===typeof f)g.cssText=f;else{"string"===typeof a&&(g.cssText="");for(var k in f)g.style[k]=f[k];if(null!=a&&"string"!==typeof a)for(k in a)k in f||(g.style[k]="")}else if(c in g&&"href"!==c&&"list"!==c&&"form"!==c&&void 0===d){if("input"!==a.tag||"value"!==c||a.dom.value!==f||a.dom!==x.activeElement)g[c]=f}else"boolean"===typeof f?f?g.setAttribute(c,""):g.removeAttribute(c):g.setAttribute("className"===
|
||||
c?"class":c,f)}}function v(a){return null!=a&&(a.oncreate||a.onupdate||a.onbeforeremove||a.onremove)}function B(a,c,f){var b=a.dom,g=function(a){var c=f.call(b,a);"function"===typeof D&&D.call(b,a);return c};if(c in b)b[c]=g;else{var d=c.slice(2);void 0===a.events&&(a.events={});null!=a.events[c]&&b.removeEventListener(d,a.events[c],!1);a.events[c]=g;b.addEventListener(d,a.events[c],!1)}}function n(a,c,b){"function"===typeof a.oninit&&a.oninit.call(c.state,c);"function"===typeof a.oncreate&&b.push(a.oncreate.bind(c.state,
|
||||
c))}function y(a,c,b,f){f?n(a,c,b):"function"===typeof a.onupdate&&b.push(a.onupdate.bind(c.state,c))}function C(a){if(a instanceof Array){for(var c=[],b=0;b<a.length;b++)c[b]=a[b];return c}if("object"===typeof a){c={};for(b in a)c[b]=a[b];return c}return a}var x=a.document,ja=x.createDocumentFragment(),D;return{render:function(a,c){var b=[],f=x.activeElement;null==a.vnodes&&(a.vnodes=[],a.textContent="");c instanceof Array||(c=[c]);g(a,a.vnodes,u.normalizeChildren(c),b,null,void 0);a.vnodes=c;for(var d=
|
||||
0;d<b.length;d++)b[d]();x.activeElement!==f&&f.focus()},setEventCallback:function(a){return D=a}}}(window),L=function(a){function b(a,d){if(d instanceof Array)for(var l=0;l<d.length;l++)b(a+"["+l+"]",d[l]);else if("[object Object]"===Object.prototype.toString.call(d))for(l in d)b(a+"["+l+"]",d[l]);else h.push(encodeURIComponent(a)+(null!=d&&""!==d?"="+encodeURIComponent(d):""))}if("[object Object]"!==Object.prototype.toString.call(a))return"";var h=[],d;for(d in a)b(d,a[d]);return h.join("&")},M=
|
||||
function(a){function b(a,b){if(null==b)return a;for(var d=a.match(/:[^\/]+/gi)||[],g=0;g<d.length;g++){var h=d[g].slice(1);null!=b[h]&&(a=a.replace(d[g],b[h]),delete b[h])}return a}function h(a,b){var d=L(b);if(""!==d){var g=0>a.indexOf("?")?"?":"&";a+=g+d}return a}function d(a){try{return""!==a?JSON.parse(a):null}catch(b){throw Error(a);}}function g(a){return a.responseText}function p(a,b){if("function"===typeof a)if(b instanceof Array)for(var d=0;d<b.length;d++)b[d]=new a(b[d]);else return new a(b);
|
||||
return b}var l=0,m;return{xhr:function(f){var q=C.stream();void 0!==f.initialValue&&q(f.initialValue);var l="boolean"===typeof f.useBody?f.useBody:"GET"!==f.method&&"TRACE"!==f.method;"function"!==typeof f.serialize&&(f.serialize="undefined"!==typeof FormData&&f.data instanceof FormData?function(a){return a}:JSON.stringify);"function"!==typeof f.deserialize&&(f.deserialize=d);"function"!==typeof f.extract&&(f.extract=g);f.url=b(f.url,f.data);l?f.data=f.serialize(f.data):f.url=h(f.url,f.data);var k=
|
||||
new a.XMLHttpRequest;k.open(f.method,f.url,"boolean"===typeof f.async?f.async:!0,"string"===typeof f.user?f.user:void 0,"string"===typeof f.password?f.password:void 0);f.serialize===JSON.stringify&&l&&k.setRequestHeader("Content-Type","application/json; charset=utf-8");f.deserialize===d&&k.setRequestHeader("Accept","application/json, text/*");"function"===typeof f.config&&(k=f.config(k,f)||k);k.onreadystatechange=function(){if(4===k.readyState){try{var a=f.extract!==g?f.extract(k,f):f.deserialize(f.extract(k,
|
||||
f));if(200<=k.status&&300>k.status)q(p(f.type,a));else{var b=Error(k.responseText),d;for(d in a)b[d]=a[d];q.error(b)}}catch(h){q.error(h)}"function"===typeof m&&m()}};l?k.send(f.data):k.send();return q},jsonp:function(f){var d=C.stream();void 0!==f.initialValue&&d(f.initialValue);var g=f.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,k=a.document.createElement("script");a[g]=function(b){k.parentNode.removeChild(k);d(p(f.type,b));"function"===typeof m&&m();delete a[g]};k.onerror=
|
||||
function(){k.parentNode.removeChild(k);d.error(Error("JSONP request failed"));"function"===typeof m&&m();delete a[g]};null==f.data&&(f.data={});f.url=b(f.url,f.data);f.data[f.callbackKey||"callback"]=g;k.src=h(f.url,f.data);a.document.documentElement.appendChild(k);return d},setCompletionCallback:function(a){m=a}}}(window),H=function(){var a=[];return{subscribe:a.push.bind(a),unsubscribe:function(b){b=a.indexOf(b);-1<b&&a.splice(b,1)},publish:function(){for(var b=0;b<a.length;b++)a[b].apply(this,
|
||||
arguments)}}}();M.setCompletionCallback(H.publish);var Y=function(a){if(""===a||null==a)return{};"?"===a.charAt(0)&&(a=a.slice(1));a=a.split("&");for(var b={},h={},d=0;d<a.length;d++){var g=a[d].split("="),p=decodeURIComponent(g[0]),g=2===g.length?decodeURIComponent(g[1]):"",l=Number(g);""!==g&&!isNaN(l)||"NaN"===g?g=l:"true"===g?g=!0:"false"===g?g=!1:(l=new Date(g),isNaN(l.getTime())||(g=l));var l=p.split(/\]\[?|\[/),m=b;-1<p.indexOf("[")&&l.pop();for(var f=0;f<l.length;f++){var p=l[f],q=l[f+1],
|
||||
q=""==q||!isNaN(parseInt(q,10)),n=f===l.length-1;""===p&&(p=l.slice(0,f).join(),null==h[p]&&(h[p]=0),p=h[p]++);null==m[p]&&(m[p]=n?g:q?[]:{});m=m[p]}}return b},ka=function(a){function b(b){var d=a.location[b].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);"pathname"===b&&"/"!==d[0]&&(d="/"+d);return d}function h(a,b,d){var g=a.indexOf("?"),h=a.indexOf("#"),m=-1<g?g:-1<h?h:a.length;if(-1<g){var g=Y(a.slice(g+1,-1<h?h:a.length)),l;for(l in g)b[l]=g[l]}if(-1<h)for(l in b=Y(a.slice(h+1)),b)d[l]=
|
||||
b[l];return a.slice(0,m)}function d(){switch(m.charAt(0)){case "#":return b("hash").slice(m.length);case "?":return b("search").slice(m.length)+b("hash");default:return b("pathname").slice(m.length)+b("search")+b("hash")}}function g(b,d,g){var k={},l={};b=h(b,k,l);if(null!=d){for(var n in d)k[n]=d[n];b=b.replace(/:([^\/]+)/g,function(a,b){delete k[b];return d[b]})}(n=L(k))&&(b+="?"+n);(l=L(l))&&(b+="#"+l);p?(g&&g.replace?a.history.replaceState(null,null,m+b):a.history.pushState(null,null,m+b),a.onpopstate()):
|
||||
a.location.href=m+b}var p="function"===typeof a.history.pushState,l="function"===typeof setImmediate?setImmediate:setTimeout,m="#!";return{setPrefix:function(a){m=a},getPath:d,setPath:g,defineRoutes:function(b,g,n){function k(){var a=d(),k={},m=h(a,k,k);l(function(){for(var d in b){var h=new RegExp("^"+d.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(h.test(m)){m.replace(h,function(){for(var h=d.match(/:[^\/]+/g)||[],l=[].slice.call(arguments,1,-2),m=0;m<h.length;m++)k[h[m].replace(/:|\./g,
|
||||
"")]=decodeURIComponent(l[m]);g(b[d],k,a,d)});return}}n(a,k)})}p?a.onpopstate=k:"#"===m.charAt(0)&&(a.onhashchange=k);k();return k},link:function(a){a.dom.setAttribute("href",m+a.attrs.href);a.dom.onclick=function(b){b.preventDefault();b.redraw=!1;g(a.attrs.href,void 0,void 0)}}}},la=function(a){var b=0,h=null,d="function"===typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(g){var n=Date.now();!0===g||0===b||16<=n-b?(b=n,a()):null===h&&(h=d(function(){h=null;a();b=Date.now()},
|
||||
16-(n-b)))}},Z=function(a,b,h,d){d=la(d);null!=b&&b.setEventCallback(function(a){!1!==a.redraw&&h.publish()});null!=h&&(a.redraw&&h.unsubscribe(a.redraw),h.subscribe(d));return a.redraw=d};n.route=function(a,b,h){var d=ka(a);a=function(a,n,l){var m=null,f=null;l=d.defineRoutes(l,function(d,h,k,l){if("function"!==typeof d.view){"function"!==typeof d.render&&(d.render=function(a){return a});var n=function(l){m=k;f=l;b.render(a,d.render(u(l,null,h,void 0,void 0,void 0)))};"function"!==typeof d.resolve&&
|
||||
(d.resolve=function(){n(f)});k!==m?d.resolve(n,h,k,l):n(f)}else b.render(a,u(d,null,h,void 0,void 0,void 0))},function(){d.setPath(n,null,{replace:!0})});Z(a,b,h,l)};a.link=d.link;a.prefix=d.setPrefix;a.set=d.setPath;a.get=d.getPath;return a}(window,K,H);var ma={view:function(){}};n.mount=function(a,b){return function(h,d){b.unsubscribe(h.redraw);Z(h,a,b,function(){a.render(h,u(null===d?ma:d,void 0,void 0,void 0,void 0,void 0))})();null===d&&(b.unsubscribe(h.redraw),delete h.redraw)}}(K,H);n.trust=
|
||||
function(a){return u("<",void 0,void 0,a,void 0,void 0)};n.withAttr=function(a,b,h){return function(d){return b.call(h||this,a in d.currentTarget?d.currentTarget[a]:d.currentTarget.getAttribute(a))}};n.prop=C.stream;n.prop.combine=C.combine;n.prop.reject=C.reject;n.prop.merge=C.merge;n.prop.HALT=C.HALT;n.render=K.render;n.redraw=H.publish;n.request=M.xhr;n.jsonp=M.jsonp;n.version="1.0.0";"undefined"!==typeof module?module.exports=n:window.m=n};
|
||||
new function(){function y(){function a(){0<arguments.length&&H(a,arguments[0],void 0);return a._state.value}O(a,arguments);0<arguments.length&&H(a,arguments[0],void 0);return a}function O(a,b){a.constructor=y;a._state={id:ba++,value:void 0,error:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],errorStream:void 0,endStream:void 0};a.map=ca;a.ap=da;a.of=y;a.valueOf=P;a.toJSON=ea;a.toString=P;a.run=fa;a["catch"]=ga;Object.defineProperties(a,{error:{get:function(){if(!a._state.errorStream){var b=
|
||||
function(){0<arguments.length&&H(a,void 0,arguments[0]);return a._state.error};O(b,[]);D(b,[a],Q,Q);a._state.errorStream=b}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var b=y();b.map(function(e){!0===e&&(R(a),R(b));return e});a._state.endStream=b}return a._state.endStream}}})}function H(a,b,d){E(a,b,d);for(var e in a._state.deps)I(a._state.deps[e],!1);a._state.changed=!1;for(var k in a._state.deps)a._state.deps[k]._state.changed=!1}function E(a,b,d){d=S(b,d);if(void 0!==
|
||||
d&&"function"===typeof a._state.recover){if(!T(a,U,!0))return}else U(a,b,d);a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function U(a,b,d){a._state.value=b;a._state.error=d}function I(a,b){var d=a._state.parents;0<d.length&&d.filter(ha).length===d.length&&(b||0<d.filter(V).length)&&(d=d.filter(W),0<d.length?E(a,void 0,d[0]._state.error):T(a,E,!1))}function T(a,b,d){try{var e=d?a._state.recover():a._state.derive();if(e===J)return!1;b(a,e,void 0)}catch(k){b(a,void 0,k),ia(a,k)}return!0}
|
||||
function S(a,b){null!=a&&a.constructor===y&&(b=void 0!==a._state.error?a._state.error:S(a._state.value,a._state.error));return b}function ia(a,b){0===Object.keys(a._state.deps).length&&null==a._state.derive&&setTimeout(function(){0===Object.keys(a._state.deps).length&&console.error(b)},0)}function fa(a){var b=y(),d=this;return D(b,[d],function(){return X(b,a(d()))},void 0)}function ga(a){var b=y(),d=this;return D(b,[d],function(){return d._state.value},function(){return X(b,a(d._state.error))})}function F(a,
|
||||
b){return D(y(),b,function(){var d=b.filter(W);if(0<d.length)throw d[0]._state.error;return a.apply(this,b.concat([b.filter(V)]))},void 0)}function X(a,b){if(null!=b&&b.constructor===y){var d=b,e=function(){E(a,d._state.value,d._state.error);for(var b in a._state.deps)I(a._state.deps[b],!1)};d.map(e)["catch"](function(a){e();throw a;});if(0===d._state.state)return J;if(d._state.error)throw d._state.error;b=d._state.value}return b}function D(a,b,d,e){var k=a._state;k.derive=d;k.recover=e;k.parents=
|
||||
b.filter(ja);Y(a,k.parents);I(a,!0);return a}function Y(a,b){for(var d=0;d<b.length;d++)b[d]._state.deps[a._state.id]=a,Y(a,b[d]._state.parents)}function R(a){for(var b=0;b<a._state.parents.length;b++)delete a._state.parents[b]._state.deps[a._state.id];for(var d in a._state.deps){var b=a._state.deps[d],e=b._state.parents.indexOf(a);-1<e&&b._state.parents.splice(e,1)}a._state.state=2;a._state.deps={}}function ca(a){return F(function(b){return a(b())},[this])}function da(a){return F(function(a,d){return a()(d())},
|
||||
[this,a])}function P(){return this._state.value}function ea(){return JSON.stringify(this._state.value)}function ha(a){return 1===a._state.state}function V(a){return a._state.changed}function ja(a){return 2!==a._state.state}function W(a){return a._state.error}function u(a,b,d,e,k,q){return{tag:a,key:b,attrs:d,children:e,text:k,dom:q,domSize:void 0,state:{},events:void 0,instance:void 0}}var ba=0,Q=function(){},J={},C={stream:y,merge:function(a){return F(function(){return a.map(function(a){return a()})},
|
||||
a)},combine:F,reject:function(a){var b=y();b.error(a);return b},HALT:J};u.normalize=function(a){return a instanceof Array?u("[",void 0,void 0,u.normalizeChildren(a),void 0,void 0):null!=a&&"object"!==typeof a?u("#",void 0,void 0,a,void 0,void 0):a};u.normalizeChildren=function(a){for(var b=0;b<a.length;b++)a[b]=u.normalize(a[b]);return a};var ka=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,K={},n=function(a){if("string"===typeof a&&void 0===K[a]){for(var b,d,e=[],
|
||||
k={};b=ka.exec(a);){var q=b[1],l=b[2];""===q&&""!==l?d=l:"#"===q?k.id=l:"."===q?e.push(l):"["===b[3][0]&&((q=b[6])&&(q=q.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),k[b[4]]=q||!0)}0<e.length&&(k.className=e.join(" "));K[a]=function(a,b){var e=!1,h,q,m=a.className||a["class"],l;for(l in k)a[l]=k[l];void 0!==m&&(void 0!==a["class"]&&(a["class"]=void 0,a.className=m),void 0!==k.className&&(a.className=k.className+" "+m));for(l in a)if("key"!==l){e=!0;break}b instanceof Array&&1==b.length&&null!=
|
||||
b[0]&&"#"===b[0].tag?q=b[0].children:h=b;return u(d||"div",a.key,e?a:void 0,h,q,void 0)}}var m;null!=arguments[1]&&("object"!==typeof arguments[1]||void 0!==arguments[1].tag||arguments[1]instanceof Array)?e=1:(m=arguments[1],e=2);if(arguments.length===e+1)b=arguments[e]instanceof Array?arguments[e]:[arguments[e]];else for(b=[];e<arguments.length;e++)b.push(arguments[e]);return"string"===typeof a?K[a](m||{},u.normalizeChildren(b)):u(a,m&&m.key,m||{},u.normalizeChildren(b),void 0,void 0)},L=function(a){function b(a,
|
||||
c,f,b,e,p,h){for(;f<b;f++){var k=c[f];null!=k&&g(a,d(k,e,h),p)}}function d(a,c,f){var g=a.tag;null!=a.attrs&&n(a.attrs,a,c);if("string"===typeof g)switch(g){case "#":return a.dom=x.createTextNode(a.children);case "<":return e(a);case "[":var p=x.createDocumentFragment();null!=a.children&&(g=a.children,b(p,g,0,g.length,c,null,f));a.dom=p.firstChild;a.domSize=p.childNodes.length;return p;default:var h=a.tag;switch(a.tag){case "svg":f="http://www.w3.org/2000/svg";break;case "math":f="http://www.w3.org/1998/Math/MathML"}var k=
|
||||
(g=a.attrs)&&g.is,h=f?k?x.createElementNS(f,h,k):x.createElementNS(f,h):k?x.createElement(h,k):x.createElement(h);a.dom=h;if(null!=g)for(p in k=f,g)A(a,p,null,g[p],k);null!=a.text&&(""!==a.text?h.textContent=a.text:a.children=[u("#",void 0,void 0,a.text,void 0,void 0)]);null!=a.children&&(p=a.children,b(h,p,0,p.length,c,null,f),c=a.attrs,"select"===a.tag&&null!=c&&("value"in c&&A(a,"value",null,c.value,void 0),"selectedIndex"in c&&A(a,"selectedIndex",null,c.selectedIndex,void 0)));return h}else return a.state=
|
||||
C(a.tag),n(a.tag,a,c),a.instance=u.normalize(a.tag.view.call(a.state,a)),null!=a.instance?(c=d(a.instance,c,f),a.dom=a.instance.dom,a.domSize=null!=a.dom?a.instance.domSize:0,a=c):(a.domSize=0,a=la),a}function e(a){var c={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(a.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",c=x.createElement(c);c.innerHTML=a.children;a.dom=c.firstChild;a.domSize=c.childNodes.length;a=x.createDocumentFragment();
|
||||
for(var f;f=c.firstChild;)a.appendChild(f);return a}function k(a,c,f,e,h,k){if(c!==f&&(null!=c||null!=f))if(null==c)b(a,f,0,f.length,e,h,void 0);else if(null==f)p(a,c,0,c.length,f);else{var z;a:{if(null!=c.pool&&Math.abs(c.pool.length-f.length)<=Math.abs(c.length-f.length)&&(z=f[0]&&f[0].children&&f[0].children.length||0,Math.abs((c.pool[0]&&c.pool[0].children&&c.pool[0].children.length||0)-z)<=Math.abs((c[0]&&c[0].children&&c[0].children.length||0)-z))){z=!0;break a}z=!1}z&&(c=c.concat(c.pool));
|
||||
if(c.length===f.length&&null!=f[0]&&null==f[0].key)for(var r=0;r<c.length;r++)c[r]===f[r]||null==c[r]&&null==f[r]||(null==c[r]?g(a,d(f[r],e,k),m(c,r+1,h)):null==f[r]?p(a,c,r,r+1,f):q(a,c[r],f[r],e,m(c,r+1,h),z,k),z&&c[r].tag===f[r].tag&&g(a,l(c[r]),m(c,r+1,h)));else{for(var A=r=0,v=c.length-1,B=f.length-1,u;v>=r&&B>=A;){var t=c[r],w=f[A];if(t===w)r++,A++;else if(null!=t&&null!=w&&t.key===w.key)r++,A++,q(a,t,w,e,m(c,r,h),z,k),z&&t.tag===w.tag&&g(a,l(t),h);else if(t=c[v],t===w)v--,A++;else if(null!=
|
||||
t&&null!=w&&t.key===w.key)q(a,t,w,e,m(c,v+1,h),z,k),g(a,l(t),m(c,r,h)),v--,A++;else break}for(;v>=r&&B>=A;){t=c[v];w=f[B];if(t===w)v--;else if(null!=t&&null!=w&&t.key===w.key)q(a,t,w,e,m(c,v+1,h),z,k),z&&t.tag===w.tag&&g(a,l(t),h),null!=t.dom&&(h=t.dom),v--;else{if(!u){u=c;var t=v,n={},x;for(x=0;x<t;x++){var y=u[x];null!=y&&(y=y.key,null!=y&&(n[y]=x))}u=n}null!=w&&(t=u[w.key],null!=t?(n=c[t],q(a,n,w,e,m(c,v+1,h),z,k),g(a,l(n),h),c[t].skip=!0,null!=n.dom&&(h=n.dom)):(w=d(w,e,void 0),g(a,w,h),h=w))}B--;
|
||||
if(B<A)break}b(a,f,A,B+1,e,h,k);p(a,c,r,v+1,f)}}}function q(a,c,f,b,h,p,m){var r=c.tag;if(r===f.tag){f.state=c.state;f.events=c.events;var v;var B;null!=f.attrs&&"function"===typeof f.attrs.onbeforeupdate&&(v=f.attrs.onbeforeupdate.call(f.state,f,c));"string"!==typeof f.tag&&"function"===typeof f.tag.onbeforeupdate&&(B=f.tag.onbeforeupdate.call(f.state,f,c));void 0===v&&void 0===B||v||B?v=!1:(f.dom=c.dom,f.domSize=c.domSize,f.instance=c.instance,v=!0);if(!v)if(null!=f.attrs&&y(f.attrs,f,b,p),"string"===
|
||||
typeof r)switch(r){case "#":c.children.toString()!==f.children.toString()&&(c.dom.nodeValue=f.children);f.dom=c.dom;break;case "<":c.children!==f.children?(l(c),g(a,e(f),h)):(f.dom=c.dom,f.domSize=c.domSize);break;case "[":k(a,c.children,f.children,b,h,m);c=0;b=f.children;f.dom=null;if(null!=b){for(var n=0;n<b.length;n++)a=b[n],null!=a&&null!=a.dom&&(null==f.dom&&(f.dom=a.dom),c+=a.domSize||1);1!==c&&(f.domSize=c)}break;default:a=m;h=f.dom=c.dom;switch(f.tag){case "svg":a="http://www.w3.org/2000/svg";
|
||||
break;case "math":a="http://www.w3.org/1998/Math/MathML"}"textarea"===f.tag&&(null==f.attrs&&(f.attrs={}),null!=f.text&&(f.attrs.value=f.text));p=c.attrs;m=f.attrs;r=a;if(null!=m)for(n in m)A(f,n,p&&p[n],m[n],r);if(null!=p)for(n in p)null!=m&&n in m||"key"!==n&&f.dom.removeAttribute(n);null!=c.text&&null!=f.text&&""!==f.text?c.text.toString()!==f.text.toString()&&(c.dom.firstChild.nodeValue=f.text):(null!=c.text&&(c.children=[u("#",void 0,void 0,c.text,void 0,c.dom.firstChild)]),null!=f.text&&(f.children=
|
||||
[u("#",void 0,void 0,f.text,void 0,void 0)]),k(h,c.children,f.children,b,null,a))}else f.instance=u.normalize(f.tag.view.call(f.state,f)),y(f.tag,f,b,p),null!=f.instance?(null==c.instance?g(a,d(f.instance,b,m),h):q(a,c.instance,f.instance,b,h,p,m),f.dom=f.instance.dom,f.domSize=f.instance.domSize):null!=c.instance?(z(a,c.instance,null,!1),f.dom=void 0,f.domSize=0):(f.dom=c.dom,f.domSize=c.domSize)}else z(a,c,null,!1),g(a,d(f,b,void 0),h)}function l(a){var c=a.domSize;if(null!=c||null==a.dom){var f=
|
||||
x.createDocumentFragment();if(0<c){for(a=a.dom;--c;)f.appendChild(a.nextSibling);f.insertBefore(a,f.firstChild)}return f}return a.dom}function m(a,c,f){for(;c<a.length;c++)if(null!=a[c]&&null!=a[c].dom)return a[c].dom;return f}function g(a,c,f){f&&f.parentNode?a.insertBefore(c,f):a.appendChild(c)}function p(a,c,f,b,g){for(;f<b;f++){var h=c[f];null!=h&&(h.skip?h.skip=void 0:z(a,h,g,!1))}}function z(a,c,f,b){if(!1===b){var g=0,d=0;b=function(){++d===g&&z(a,c,f,!0)};c.attrs&&c.attrs.onbeforeremove&&
|
||||
(g++,c.attrs.onbeforeremove.call(c.state,c,b));"string"!==typeof c.tag&&c.tag.onbeforeremove&&(g++,c.tag.onbeforeremove.call(c.state,c,b));if(0<g)return}h(c);if(c.dom){b=c.domSize||1;if(1<b)for(var p=c.dom;--b;)a.removeChild(p.nextSibling);null!=c.dom.parentNode&&a.removeChild(c.dom);null==f||null!=c.domSize||v(c.attrs)||"string"!==typeof c.tag||(f.pool?f.pool.push(c):f.pool=[c])}}function h(a){a.attrs&&a.attrs.onremove&&a.attrs.onremove.call(a.state,a);"string"!==typeof a.tag&&a.tag.onremove&&a.tag.onremove.call(a.state,
|
||||
a);if(null!=a.instance)h(a.instance);else if(a=a.children,a instanceof Array)for(var c=0;c<a.length;c++){var b=a[c];null!=b&&h(b)}}function A(a,c,b,g,h){var d=a.dom;if("key"!==c&&(b!==g||"value"===c||"checked"===c||"selectedIndex"===c||"selected"===c&&a.dom===x.activeElement||"object"===typeof g)&&"undefined"!==typeof g&&"oninit"!==c&&"oncreate"!==c&&"onupdate"!==c&&"onremove"!==c&&"onbeforeremove"!==c&&"onbeforeupdate"!==c){var p=c.indexOf(":");if(-1<p&&"xlink"===c.substr(0,p))d.setAttributeNS("http://www.w3.org/1999/xlink",
|
||||
c.slice(p+1),g);else if("o"===c[0]&&"n"===c[1]&&"function"===typeof g)B(a,c,g);else if("style"===c)if(a=b,a===g&&(d.cssText="",a=null),null==g)d.cssText="";else if("string"===typeof g)d.cssText=g;else{"string"===typeof a&&(d.cssText="");for(var e in g)d.style[e]=g[e];if(null!=a&&"string"!==typeof a)for(e in a)e in g||(d.style[e]="")}else if(c in d&&"href"!==c&&"list"!==c&&"form"!==c&&void 0===h){if("input"!==a.tag||"value"!==c||a.dom.value!==g||a.dom!==x.activeElement)d[c]=g}else"boolean"===typeof g?
|
||||
g?d.setAttribute(c,""):d.removeAttribute(c):d.setAttribute("className"===c?"class":c,g)}}function v(a){return null!=a&&(a.oncreate||a.onupdate||a.onbeforeremove||a.onremove)}function B(a,c,g){var b=a.dom,d=function(a){var c=g.call(b,a);"function"===typeof D&&D.call(b,a);return c};if(c in b)b[c]=d;else{var h=c.slice(2);void 0===a.events&&(a.events={});null!=a.events[c]&&b.removeEventListener(h,a.events[c],!1);a.events[c]=d;b.addEventListener(h,a.events[c],!1)}}function n(a,c,b){"function"===typeof a.oninit&&
|
||||
a.oninit.call(c.state,c);"function"===typeof a.oncreate&&b.push(a.oncreate.bind(c.state,c))}function y(a,c,b,g){g?n(a,c,b):"function"===typeof a.onupdate&&b.push(a.onupdate.bind(c.state,c))}function C(a){if(a instanceof Array){for(var c=[],b=0;b<a.length;b++)c[b]=a[b];return c}if("object"===typeof a){c={};for(b in a)c[b]=a[b];return c}return a}var x=a.document,la=x.createDocumentFragment(),D;return{render:function(a,c){var b=[],g=x.activeElement;null==a.vnodes&&(a.vnodes=[],a.textContent="");c instanceof
|
||||
Array||(c=[c]);k(a,a.vnodes,u.normalizeChildren(c),b,null,void 0);a.vnodes=c;for(var d=0;d<b.length;d++)b[d]();x.activeElement!==g&&g.focus()},setEventCallback:function(a){return D=a}}}(window),M=function(a){function b(a,e){if(e instanceof Array)for(var l=0;l<e.length;l++)b(a+"["+l+"]",e[l]);else if("[object Object]"===Object.prototype.toString.call(e))for(l in e)b(a+"["+l+"]",e[l]);else d.push(encodeURIComponent(a)+(null!=e&&""!==e?"="+encodeURIComponent(e):""))}if("[object Object]"!==Object.prototype.toString.call(a))return"";
|
||||
var d=[],e;for(e in a)b(e,a[e]);return d.join("&")},N=function(a){function b(a,b){if(null==b)return a;for(var d=a.match(/:[^\/]+/gi)||[],h=0;h<d.length;h++){var e=d[h].slice(1);null!=b[e]&&(a=a.replace(d[h],b[e]),delete b[e])}return a}function d(a,b){var d=M(b);if(""!==d){var h=0>a.indexOf("?")?"?":"&";a+=h+d}return a}function e(a){try{return""!==a?JSON.parse(a):null}catch(b){throw Error(a);}}function k(a){return a.responseText}function q(a,b){if("function"===typeof a)if(b instanceof Array)for(var d=
|
||||
0;d<b.length;d++)b[d]=new a(b[d]);else return new a(b);return b}var l=0,m;return{xhr:function(g){var p=C.stream();void 0!==g.initialValue&&p(g.initialValue);var l="boolean"===typeof g.useBody?g.useBody:"GET"!==g.method&&"TRACE"!==g.method;"function"!==typeof g.serialize&&(g.serialize="undefined"!==typeof FormData&&g.data instanceof FormData?function(a){return a}:JSON.stringify);"function"!==typeof g.deserialize&&(g.deserialize=e);"function"!==typeof g.extract&&(g.extract=k);g.url=b(g.url,g.data);
|
||||
l?g.data=g.serialize(g.data):g.url=d(g.url,g.data);var h=new a.XMLHttpRequest;h.open(g.method,g.url,"boolean"===typeof g.async?g.async:!0,"string"===typeof g.user?g.user:void 0,"string"===typeof g.password?g.password:void 0);g.serialize===JSON.stringify&&l&&h.setRequestHeader("Content-Type","application/json; charset=utf-8");g.deserialize===e&&h.setRequestHeader("Accept","application/json, text/*");"function"===typeof g.config&&(h=g.config(h,g)||h);h.onreadystatechange=function(){if(4===h.readyState){try{var a=
|
||||
g.extract!==k?g.extract(h,g):g.deserialize(g.extract(h,g));if(200<=h.status&&300>h.status)p(q(g.type,a));else{var b=Error(h.responseText),d;for(d in a)b[d]=a[d];p.error(b)}}catch(e){p.error(e)}"function"===typeof m&&m()}};l?h.send(g.data):h.send();return p},jsonp:function(g){var e=C.stream();void 0!==g.initialValue&&e(g.initialValue);var k=g.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,h=a.document.createElement("script");a[k]=function(b){h.parentNode.removeChild(h);e(q(g.type,
|
||||
b));"function"===typeof m&&m();delete a[k]};h.onerror=function(){h.parentNode.removeChild(h);e.error(Error("JSONP request failed"));"function"===typeof m&&m();delete a[k]};null==g.data&&(g.data={});g.url=b(g.url,g.data);g.data[g.callbackKey||"callback"]=k;h.src=d(g.url,g.data);a.document.documentElement.appendChild(h);return e},setCompletionCallback:function(a){m=a}}}(window),G=function(){var a=[];return{subscribe:a.push.bind(a),unsubscribe:function(b){b=a.indexOf(b);-1<b&&a.splice(b,1)},publish:function(){for(var b=
|
||||
0;b<a.length;b++)a[b].apply(this,arguments)}}}();N.setCompletionCallback(G.publish);var Z=function(a){if(""===a||null==a)return{};"?"===a.charAt(0)&&(a=a.slice(1));a=a.split("&");for(var b={},d={},e=0;e<a.length;e++){var k=a[e].split("="),q=decodeURIComponent(k[0]),k=2===k.length?decodeURIComponent(k[1]):"",l=Number(k);""!==k&&!isNaN(l)||"NaN"===k?k=l:"true"===k?k=!0:"false"===k?k=!1:(l=new Date(k),isNaN(l.getTime())||(k=l));var l=q.split(/\]\[?|\[/),m=b;-1<q.indexOf("[")&&l.pop();for(var g=0;g<l.length;g++){var q=
|
||||
l[g],p=l[g+1],p=""==p||!isNaN(parseInt(p,10)),n=g===l.length-1;""===q&&(q=l.slice(0,g).join(),null==d[q]&&(d[q]=0),q=d[q]++);null==m[q]&&(m[q]=n?k:p?[]:{});m=m[q]}}return b},ma=function(a){function b(b){var d=a.location[b].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);"pathname"===b&&"/"!==d[0]&&(d="/"+d);return d}function d(a,b,d){var e=a.indexOf("?"),k=a.indexOf("#"),m=-1<e?e:-1<k?k:a.length;if(-1<e){var e=Z(a.slice(e+1,-1<k?k:a.length)),l;for(l in e)b[l]=e[l]}if(-1<k)for(l in b=Z(a.slice(k+
|
||||
1)),b)d[l]=b[l];return a.slice(0,m)}function e(){switch(m.charAt(0)){case "#":return b("hash").slice(m.length);case "?":return b("search").slice(m.length)+b("hash");default:return b("pathname").slice(m.length)+b("search")+b("hash")}}function k(b,e,k){var h={},l={};b=d(b,h,l);if(null!=e){for(var n in e)h[n]=e[n];b=b.replace(/:([^\/]+)/g,function(a,b){delete h[b];return e[b]})}(n=M(h))&&(b+="?"+n);(l=M(l))&&(b+="#"+l);q?(k&&k.replace?a.history.replaceState(null,null,m+b):a.history.pushState(null,null,
|
||||
m+b),a.onpopstate()):a.location.href=m+b}var q="function"===typeof a.history.pushState,l="function"===typeof setImmediate?setImmediate:setTimeout,m="#!";return{setPrefix:function(a){m=a},getPath:e,setPath:k,defineRoutes:function(b,k,n){function h(){var a=e(),h={},m=d(a,h,h);l(function(){for(var d in b){var e=new RegExp("^"+d.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(e.test(m)){m.replace(e,function(){for(var e=d.match(/:[^\/]+/g)||[],l=[].slice.call(arguments,1,-2),
|
||||
m=0;m<e.length;m++)h[e[m].replace(/:|\./g,"")]=decodeURIComponent(l[m]);k(b[d],h,a,d)});return}}n(a,h)})}q?a.onpopstate=h:"#"===m.charAt(0)&&(a.onhashchange=h);h();return h},link:function(a){a.dom.setAttribute("href",m+a.attrs.href);a.dom.onclick=function(b){b.preventDefault();b.redraw=!1;k(a.attrs.href,void 0,void 0)}}}},na=function(a){var b=0,d=null,e="function"===typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(k){var n=Date.now();!0===k||0===b||16<=n-b?(b=n,a()):null===
|
||||
d&&(d=e(function(){d=null;a();b=Date.now()},16-(n-b)))}},aa=function(a,b,d,e){e=na(e);null!=b&&b.setEventCallback(function(a){!1!==a.redraw&&d.publish()});null!=d&&(a.redraw&&d.unsubscribe(a.redraw),d.subscribe(e));return a.redraw=e};n.route=function(a,b,d){var e=ma(a);a=function(a,n,l){var m=null,g=null;l=e.defineRoutes(l,function(d,e,h,l){if("function"!==typeof d.view){"function"!==typeof d.render&&(d.render=function(a){return a});var n=function(l){m=h;g=l;b.render(a,d.render(u(l,null,e,void 0,
|
||||
void 0,void 0)))};"function"!==typeof d.resolve&&(d.resolve=function(){n(g)});h!==m?d.resolve(n,e,h,l):n(g)}else b.render(a,u(d,null,e,void 0,void 0,void 0))},function(){e.setPath(n,null,{replace:!0})});aa(a,b,d,l)};a.link=e.link;a.prefix=e.setPrefix;a.set=e.setPath;a.get=e.getPath;return a}(window,L,G);var oa={view:function(){}};n.mount=function(a,b){return function(d,e){b.unsubscribe(d.redraw);aa(d,a,b,function(){a.render(d,u(null===e?oa:e,void 0,void 0,void 0,void 0,void 0))})();null===e&&(b.unsubscribe(d.redraw),
|
||||
delete d.redraw)}}(L,G);n.trust=function(a){return u("<",void 0,void 0,a,void 0,void 0)};n.withAttr=function(a,b,d){return function(e){return b.call(d||this,a in e.currentTarget?e.currentTarget[a]:e.currentTarget.getAttribute(a))}};n.prop=C.stream;n.prop.combine=C.combine;n.prop.reject=C.reject;n.prop.merge=C.merge;n.prop.HALT=C.HALT;n.render=L.render;n.redraw=G.publish;n.request=N.xhr;n.jsonp=N.jsonp;n.version="1.0.0";"undefined"!==typeof module?module.exports=n:window.m=n};
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
//"use strict"
|
||||
"use strict"
|
||||
|
||||
var guid = 0, noop = function() {}, HALT = {}
|
||||
function createStream() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue