Merge remote-tracking branch 'origin/rewrite' into rewrite
This commit is contained in:
commit
201bdc702a
2 changed files with 54 additions and 49 deletions
21
mithril.js
21
mithril.js
|
|
@ -1,5 +1,6 @@
|
|||
new function() {
|
||||
|
||||
var log = console.error.bind(console)
|
||||
var Stream = function(log) {
|
||||
var guid = 0, noop = function() {}, HALT = {}
|
||||
function createStream() {
|
||||
|
|
@ -183,7 +184,7 @@ var Stream = function(log) {
|
|||
}, streams)
|
||||
}
|
||||
return {stream: createStream, merge: merge, combine: combine, reject: reject, HALT: HALT}
|
||||
}(console.error.bind(console))
|
||||
}(log)
|
||||
function Vnode(tag, key, attrs, children, text, dom) {
|
||||
return {tag: tag, key: key, attrs: attrs, children: children, text: text, dom: dom, domSize: undefined, state: {}, events: undefined, instance: undefined}
|
||||
}
|
||||
|
|
@ -664,7 +665,8 @@ var renderService = function($window) {
|
|||
if (old != null) {
|
||||
for (var key in old) {
|
||||
if (attrs == null || !(key in attrs)) {
|
||||
if (key !== "key") vnode.dom.removeAttribute(key)
|
||||
if (key[0] === "o" && key[1] === "n" && !isLifecycleMethod(key)) updateEvent(vnode, key, undefined)
|
||||
else if (key !== "key") vnode.dom.removeAttribute(key)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -711,8 +713,10 @@ var renderService = function($window) {
|
|||
var eventName = key.slice(2)
|
||||
if (vnode.events === undefined) vnode.events = {}
|
||||
if (vnode.events[key] != null) element.removeEventListener(eventName, vnode.events[key], false)
|
||||
vnode.events[key] = callback
|
||||
element.addEventListener(eventName, vnode.events[key], false)
|
||||
if (typeof value === "function") {
|
||||
vnode.events[key] = callback
|
||||
element.addEventListener(eventName, vnode.events[key], false)
|
||||
}
|
||||
}
|
||||
}
|
||||
//lifecycle
|
||||
|
|
@ -784,13 +788,14 @@ var buildQueryString = function(object) {
|
|||
else args.push(encodeURIComponent(key) + (value != null && value !== "" ? "=" + encodeURIComponent(value) : ""))
|
||||
}
|
||||
}
|
||||
var requestService = function($window) {
|
||||
var requestService = function($window, log) {
|
||||
var Stream1 = Stream(log)
|
||||
var callbackCount = 0
|
||||
var oncompletion
|
||||
function setCompletionCallback(callback) {oncompletion = callback}
|
||||
|
||||
function xhr(args) {
|
||||
var stream = Stream.stream()
|
||||
var stream = Stream1.stream()
|
||||
if (args.initialValue !== undefined) stream(args.initialValue)
|
||||
|
||||
var useBody = typeof args.useBody === "boolean" ? args.useBody : args.method !== "GET" && args.method !== "TRACE"
|
||||
|
|
@ -841,7 +846,7 @@ var requestService = function($window) {
|
|||
return stream
|
||||
}
|
||||
function jsonp(args) {
|
||||
var stream = Stream.stream()
|
||||
var stream = Stream1.stream()
|
||||
if (args.initialValue !== undefined) stream(args.initialValue)
|
||||
|
||||
var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++
|
||||
|
|
@ -904,7 +909,7 @@ var requestService = function($window) {
|
|||
}
|
||||
|
||||
return {xhr: xhr, jsonp: jsonp, setCompletionCallback: setCompletionCallback}
|
||||
}(window)
|
||||
}(window, log)
|
||||
var redrawService = function() {
|
||||
var callbacks = []
|
||||
function unsubscribe(callback) {
|
||||
|
|
|
|||
82
mithril.min.js
vendored
82
mithril.min.js
vendored
|
|
@ -1,41 +1,41 @@
|
|||
new function(){function y(){function a(){0<arguments.length&&arguments[0]!==D&&I(a,arguments[0],void 0);return a._state.value}O(a,arguments);0<arguments.length&&arguments[0]!==D&&I(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&&arguments[0]!==D&&I(a,void 0,arguments[0]);return a._state.error};O(b,[]);E(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 I(a,b,d){F(a,b,d);for(var e in a._state.deps)J(a._state.deps[e],!1);a._state.changed=!1;for(var k in a._state.deps)a._state.deps[k]._state.changed=!1}function F(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 J(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?F(a,void 0,d[0]._state.error):T(a,F,!1))}function T(a,b,d){try{var e=d?a._state.recover():a._state.derive();if(e===D)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 E(b,[d],function(){return X(b,a(d()))},void 0)}function ga(a){var b=y(),d=this;return E(b,[d],function(){return d._state.value},function(){return X(b,a(d._state.error))})}
|
||||
function G(a,b){return E(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(){F(a,d._state.value,d._state.error);for(var b in a._state.deps)J(a._state.deps[b],!1)};d.map(e)["catch"](function(a){e();throw a;});if(0===d._state.state)return D;if(d._state.error)throw d._state.error;b=d._state.value}return b}function E(a,b,d,e){var k=a._state;k.derive=d;k.recover=
|
||||
e;k.parents=b.filter(ja);Y(a,k.parents);J(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 G(function(b){return a(b())},[this])}function da(a){return G(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(){},D={},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:D};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(null==a||"string"!==typeof a&&!a.view)throw Error("The selector must be either a string or a component.");
|
||||
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,{is:k}):x.createElementNS(f,h):k?x.createElement(h,{is: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=D),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),A<B&&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.style.cssText="",a=null),null==g)d.style.cssText="";else if("string"===typeof g)d.style.cssText=g;else{"string"===typeof a&&(d.style.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 E&&E.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,D=x.createDocumentFragment(),E;return{render:function(a,c){var b=[],g=x.activeElement;null==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 E=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),
|
||||
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)}}}();N.setCompletionCallback(H.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},la=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)}}}},ma=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=ma(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=la(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,H);var na={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?na:e,void 0,void 0,void 0,void 0,void 0))})();null===e&&(b.unsubscribe(d.redraw),delete d.redraw)}}(L,H);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=H.publish;n.request=N.xhr;n.jsonp=N.jsonp;n.version="1.0.0";"undefined"!==typeof module?module.exports=n:window.m=n};
|
||||
new function(){function w(b,e,p,f,k,h){return{tag:b,key:e,attrs:p,children:f,text:k,dom:h,domSize:void 0,state:{},events:void 0,instance:void 0}}var u=console.error.bind(console),B=function(b){function e(){function a(){0<arguments.length&&arguments[0]!==D&&f(a,arguments[0],void 0);return a._state.value}p(a,arguments);0<arguments.length&&arguments[0]!==D&&f(a,arguments[0],void 0);return a}function p(a,c){a.constructor=e;a._state={id:N++,value:void 0,error:void 0,state:0,derive:void 0,recover:void 0,
|
||||
deps:{},parents:[],errorStream:void 0,endStream:void 0};a.map=F;a.ap=u;a.of=e;a.valueOf=q;a.toJSON=B;a.toString=q;a.run=g;a["catch"]=l;Object.defineProperties(a,{error:{get:function(){if(!a._state.errorStream){var c=function(){0<arguments.length&&arguments[0]!==D&&f(a,void 0,arguments[0]);return a._state.error};p(c,[]);A(c,[a],K,K);a._state.errorStream=c}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var c=e();c.map(function(d){!0===d&&(v(a),v(c));return d});a._state.endStream=
|
||||
c}return a._state.endStream}}})}function f(a,c,d){k(a,c,d);for(var g in a._state.deps)n(a._state.deps[g],!1);a._state.changed=!1;for(var b in a._state.deps)a._state.deps[b]._state.changed=!1}function k(a,c,d){d=r(c,d);if(void 0!==d&&"function"===typeof a._state.recover){if(!t(a,h,!0))return}else h(a,c,d);a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function h(a,c,d){a._state.value=c;a._state.error=d}function n(a,g){var b=a._state.parents;0<b.length&&b.filter(E).length===b.length&&(g||
|
||||
0<b.filter(c).length)&&(b=b.filter(d),0<b.length?k(a,void 0,b[0]._state.error):t(a,k,!1))}function t(a,c,d){try{var g=d?a._state.recover():a._state.derive();if(g===D)return!1;c(a,g,void 0)}catch(b){c(a,void 0,null!=b.__error?b.__error:b),null==b.__error&&x(a,b)}return!0}function r(a,c){null!=a&&a.constructor===e&&(c=void 0!==a._state.error?a._state.error:r(a._state.value,a._state.error));return c}function x(a,c){0===Object.keys(a._state.deps).length&&setTimeout(function(){0===Object.keys(a._state.deps).length&&
|
||||
b(c)},0)}function g(a){var c=e(),d=this;return A(c,[d],function(){return m(c,a(d()))},void 0)}function l(a){var c=e(),d=this;return A(c,[d],function(){return d._state.value},function(){return m(c,a(d._state.error))})}function z(a,g){return A(e(),g,function(){var b=g.filter(d);if(0<b.length)throw{__error:b[0]._state.error};return a.apply(this,g.concat([g.filter(c)]))},void 0)}function m(a,c){if(null!=c&&c.constructor===e){var d=c,g=function(){k(a,d._state.value,d._state.error);for(var c in a._state.deps)n(a._state.deps[c],
|
||||
!1)};d.map(g)["catch"](function(a){g();throw{__error:a};});if(0===d._state.state)return D;if(d._state.error)throw{__error:d._state.error};c=d._state.value}return c}function A(c,d,g,b){var e=c._state;e.derive=g;e.recover=b;e.parents=d.filter(a);w(c,e.parents);n(c,!0);return c}function w(a,c){for(var d=0;d<c.length;d++)c[d]._state.deps[a._state.id]=a,w(a,c[d]._state.parents)}function v(a){for(var c=0;c<a._state.parents.length;c++)delete a._state.parents[c]._state.deps[a._state.id];for(var d in a._state.deps){var c=
|
||||
a._state.deps[d],g=c._state.parents.indexOf(a);-1<g&&c._state.parents.splice(g,1)}a._state.state=2;a._state.deps={}}function F(a){return z(function(c){return a(c())},[this])}function u(a){return z(function(a,c){return a()(c())},[this,a])}function q(){return this._state.value}function B(){return null!=this._state.value&&"function"===typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function E(a){return 1===a._state.state}function c(a){return a._state.changed}function a(a){return 2!==
|
||||
a._state.state}function d(a){return a._state.error}var N=0,K=function(){},D={};return{stream:e,merge:function(a){return z(function(){return a.map(function(a){return a()})},a)},combine:z,reject:function(a){var c=e();c.error(a);return c},HALT:D}}(u);w.normalize=function(b){return b instanceof Array?w("[",void 0,void 0,w.normalizeChildren(b),void 0,void 0):null!=b&&"object"!==typeof b?w("#",void 0,void 0,b,void 0,void 0):b};w.normalizeChildren=function(b){for(var e=0;e<b.length;e++)b[e]=w.normalize(b[e]);
|
||||
return b};var O=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,H={},v=function(b){if(null==b||"string"!==typeof b&&!b.view)throw Error("The selector must be either a string or a component.");if("string"===typeof b&&void 0===H[b]){for(var e,p,f=[],k={};e=O.exec(b);){var h=e[1],n=e[2];""===h&&""!==n?p=n:"#"===h?k.id=n:"."===h?f.push(n):"["===e[3][0]&&((h=e[6])&&(h=h.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),k[e[4]]=h||!0)}0<f.length&&(k.className=f.join(" "));
|
||||
H[b]=function(b,e){var g=!1,f,h,m=b.className||b["class"],n;for(n in k)b[n]=k[n];void 0!==m&&(void 0!==b["class"]&&(b["class"]=void 0,b.className=m),void 0!==k.className&&(b.className=k.className+" "+m));for(n in b)if("key"!==n){g=!0;break}e instanceof Array&&1==e.length&&null!=e[0]&&"#"===e[0].tag?h=e[0].children:f=e;return w(p||"div",b.key,g?b:void 0,f,h,void 0)}}var t;null!=arguments[1]&&("object"!==typeof arguments[1]||void 0!==arguments[1].tag||arguments[1]instanceof Array)?f=1:(t=arguments[1],
|
||||
f=2);if(arguments.length===f+1)e=arguments[f]instanceof Array?arguments[f]:[arguments[f]];else for(e=[];f<arguments.length;f++)e.push(arguments[f]);return"string"===typeof b?H[b](t||{},w.normalizeChildren(e)):w(b,t&&t.key,t||{},w.normalizeChildren(e),void 0,void 0)},I=function(b){function e(c,a,d,b,g,e,f){for(;d<b;d++){var h=a[d];null!=h&&r(c,p(h,g,f),e)}}function p(c,a,d){var b=c.tag;null!=c.attrs&&C(c.attrs,c,a);if("string"===typeof b)switch(b){case "#":return c.dom=q.createTextNode(c.children);
|
||||
case "<":return f(c);case "[":var g=q.createDocumentFragment();null!=c.children&&(b=c.children,e(g,b,0,b.length,a,null,d));c.dom=g.firstChild;c.domSize=g.childNodes.length;return g;default:var h=c.tag;switch(c.tag){case "svg":d="http://www.w3.org/2000/svg";break;case "math":d="http://www.w3.org/1998/Math/MathML"}var r=(b=c.attrs)&&b.is,h=d?r?q.createElementNS(d,h,{is:r}):q.createElementNS(d,h):r?q.createElement(h,{is:r}):q.createElement(h);c.dom=h;if(null!=b)for(g in r=d,b)z(c,g,null,b[g],r);null!=
|
||||
c.text&&(""!==c.text?h.textContent=c.text:c.children=[w("#",void 0,void 0,c.text,void 0,void 0)]);null!=c.children&&(g=c.children,e(h,g,0,g.length,a,null,d),a=c.attrs,"select"===c.tag&&null!=a&&("value"in a&&z(c,"value",null,a.value,void 0),"selectedIndex"in a&&z(c,"selectedIndex",null,a.selectedIndex,void 0)));return h}else return c.state=u(c.tag),C(c.tag,c,a),c.instance=w.normalize(c.tag.view.call(c.state,c)),null!=c.instance?(a=p(c.instance,a,d),c.dom=c.instance.dom,c.domSize=null!=c.dom?c.instance.domSize:
|
||||
0,c=a):(c.domSize=0,c=B),c}function f(c){var a={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(c.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",a=q.createElement(a);a.innerHTML=c.children;c.dom=a.firstChild;c.domSize=a.childNodes.length;c=q.createDocumentFragment();for(var d;d=a.firstChild;)c.appendChild(d);return c}function k(c,a,d,b,g,f){if(a!==d&&(null!=a||null!=d))if(null==a)e(c,d,0,d.length,b,g,void 0);else if(null==d)x(c,
|
||||
a,0,a.length,d);else{var m;a:{if(null!=a.pool&&Math.abs(a.pool.length-d.length)<=Math.abs(a.length-d.length)&&(m=d[0]&&d[0].children&&d[0].children.length||0,Math.abs((a.pool[0]&&a.pool[0].children&&a.pool[0].children.length||0)-m)<=Math.abs((a[0]&&a[0].children&&a[0].children.length||0)-m))){m=!0;break a}m=!1}m&&(a=a.concat(a.pool));if(a.length===d.length&&null!=d[0]&&null==d[0].key)for(var l=0;l<a.length;l++)a[l]===d[l]||null==a[l]&&null==d[l]||(null==a[l]?r(c,p(d[l],b,f),t(a,l+1,g)):null==d[l]?
|
||||
x(c,a,l,l+1,d):h(c,a[l],d[l],b,t(a,l+1,g),m,f),m&&a[l].tag===d[l].tag&&r(c,n(a[l]),t(a,l+1,g)));else{for(var k=l=0,z=a.length-1,A=d.length-1,w;z>=l&&A>=k;){var y=a[l],q=d[k];if(y===q)l++,k++;else if(null!=y&&null!=q&&y.key===q.key)l++,k++,h(c,y,q,b,t(a,l,g),m,f),m&&y.tag===q.tag&&r(c,n(y),g);else if(y=a[z],y===q)z--,k++;else if(null!=y&&null!=q&&y.key===q.key)h(c,y,q,b,t(a,z+1,g),m,f),k<A&&r(c,n(y),t(a,l,g)),z--,k++;else break}for(;z>=l&&A>=k;){y=a[z];q=d[A];if(y===q)z--;else if(null!=y&&null!=q&&
|
||||
y.key===q.key)h(c,y,q,b,t(a,z+1,g),m,f),m&&y.tag===q.tag&&r(c,n(y),g),null!=y.dom&&(g=y.dom),z--;else{if(!w){w=a;var y=z,v={},u;for(u=0;u<y;u++){var C=w[u];null!=C&&(C=C.key,null!=C&&(v[C]=u))}w=v}null!=q&&(y=w[q.key],null!=y?(v=a[y],h(c,v,q,b,t(a,z+1,g),m,f),r(c,n(v),g),a[y].skip=!0,null!=v.dom&&(g=v.dom)):(q=p(q,b,void 0),r(c,q,g),g=q))}A--;if(A<k)break}e(c,d,k,A+1,b,g,f);x(c,a,l,z+1,d)}}}function h(c,a,d,b,e,l,x){var q=a.tag;if(q===d.tag){d.state=a.state;d.events=a.events;var A;var t;null!=d.attrs&&
|
||||
"function"===typeof d.attrs.onbeforeupdate&&(A=d.attrs.onbeforeupdate.call(d.state,d,a));"string"!==typeof d.tag&&"function"===typeof d.tag.onbeforeupdate&&(t=d.tag.onbeforeupdate.call(d.state,d,a));void 0===A&&void 0===t||A||t?A=!1:(d.dom=a.dom,d.domSize=a.domSize,d.instance=a.instance,A=!0);if(!A)if(null!=d.attrs&&F(d.attrs,d,b,l),"string"===typeof q)switch(q){case "#":a.children.toString()!==d.children.toString()&&(a.dom.nodeValue=d.children);d.dom=a.dom;break;case "<":a.children!==d.children?
|
||||
(n(a),r(c,f(d),e)):(d.dom=a.dom,d.domSize=a.domSize);break;case "[":k(c,a.children,d.children,b,e,x);a=0;b=d.children;d.dom=null;if(null!=b){for(var u=0;u<b.length;u++)c=b[u],null!=c&&null!=c.dom&&(null==d.dom&&(d.dom=c.dom),a+=c.domSize||1);1!==a&&(d.domSize=a)}break;default:c=x;e=d.dom=a.dom;switch(d.tag){case "svg":c="http://www.w3.org/2000/svg";break;case "math":c="http://www.w3.org/1998/Math/MathML"}"textarea"===d.tag&&(null==d.attrs&&(d.attrs={}),null!=d.text&&(d.attrs.value=d.text));l=a.attrs;
|
||||
x=d.attrs;q=c;if(null!=x)for(u in x)z(d,u,l&&l[u],x[u],q);if(null!=l)for(u in l)null!=x&&u in x||("o"!==u[0]||"n"!==u[1]||m(u)?"key"!==u&&d.dom.removeAttribute(u):v(d,u,void 0));null!=a.text&&null!=d.text&&""!==d.text?a.text.toString()!==d.text.toString()&&(a.dom.firstChild.nodeValue=d.text):(null!=a.text&&(a.children=[w("#",void 0,void 0,a.text,void 0,a.dom.firstChild)]),null!=d.text&&(d.children=[w("#",void 0,void 0,d.text,void 0,void 0)]),k(e,a.children,d.children,b,null,c))}else d.instance=w.normalize(d.tag.view.call(d.state,
|
||||
d)),F(d.tag,d,b,l),null!=d.instance?(null==a.instance?r(c,p(d.instance,b,x),e):h(c,a.instance,d.instance,b,e,l,x),d.dom=d.instance.dom,d.domSize=d.instance.domSize):null!=a.instance?(g(c,a.instance,null,!1),d.dom=void 0,d.domSize=0):(d.dom=a.dom,d.domSize=a.domSize)}else g(c,a,null,!1),r(c,p(d,b,void 0),e)}function n(c){var a=c.domSize;if(null!=a||null==c.dom){var d=q.createDocumentFragment();if(0<a){for(c=c.dom;--a;)d.appendChild(c.nextSibling);d.insertBefore(c,d.firstChild)}return d}return c.dom}
|
||||
function t(c,a,d){for(;a<c.length;a++)if(null!=c[a]&&null!=c[a].dom)return c[a].dom;return d}function r(c,a,d){d&&d.parentNode?c.insertBefore(a,d):c.appendChild(a)}function x(c,a,d,b,e){for(;d<b;d++){var l=a[d];null!=l&&(l.skip?l.skip=void 0:g(c,l,e,!1))}}function g(c,a,d,b){if(!1===b){var e=0,m=0;b=function(){++m===e&&g(c,a,d,!0)};a.attrs&&a.attrs.onbeforeremove&&(e++,a.attrs.onbeforeremove.call(a.state,a,b));"string"!==typeof a.tag&&a.tag.onbeforeremove&&(e++,a.tag.onbeforeremove.call(a.state,a,
|
||||
b));if(0<e)return}l(a);if(a.dom){b=a.domSize||1;if(1<b)for(var f=a.dom;--b;)c.removeChild(f.nextSibling);null!=a.dom.parentNode&&c.removeChild(a.dom);null==d||null!=a.domSize||A(a.attrs)||"string"!==typeof a.tag||(d.pool?d.pool.push(a):d.pool=[a])}}function l(c){c.attrs&&c.attrs.onremove&&c.attrs.onremove.call(c.state,c);"string"!==typeof c.tag&&c.tag.onremove&&c.tag.onremove.call(c.state,c);if(null!=c.instance)l(c.instance);else if(c=c.children,c instanceof Array)for(var a=0;a<c.length;a++){var d=
|
||||
c[a];null!=d&&l(d)}}function z(c,a,d,b,g){var e=c.dom;if("key"!==a&&(d!==b||"value"===a||"checked"===a||"selectedIndex"===a||"selected"===a&&c.dom===q.activeElement||"object"===typeof b)&&"undefined"!==typeof b&&!m(a)){var l=a.indexOf(":");if(-1<l&&"xlink"===a.substr(0,l))e.setAttributeNS("http://www.w3.org/1999/xlink",a.slice(l+1),b);else if("o"===a[0]&&"n"===a[1]&&"function"===typeof b)v(c,a,b);else if("style"===a)if(c=d,c===b&&(e.style.cssText="",c=null),null==b)e.style.cssText="";else if("string"===
|
||||
typeof b)e.style.cssText=b;else{"string"===typeof c&&(e.style.cssText="");for(var f in b)e.style[f]=b[f];if(null!=c&&"string"!==typeof c)for(f in c)f in b||(e.style[f]="")}else if(a in e&&"href"!==a&&"list"!==a&&"form"!==a&&void 0===g){if("input"!==c.tag||"value"!==a||c.dom.value!==b||c.dom!==q.activeElement)e[a]=b}else"boolean"===typeof b?b?e.setAttribute(a,""):e.removeAttribute(a):e.setAttribute("className"===a?"class":a,b)}}function m(c){return"oninit"===c||"oncreate"===c||"onupdate"===c||"onremove"===
|
||||
c||"onbeforeremove"===c||"onbeforeupdate"===c}function A(c){return null!=c&&(c.oncreate||c.onupdate||c.onbeforeremove||c.onremove)}function v(c,a,d){var b=c.dom,g=function(a){var c=d.call(b,a);"function"===typeof E&&E.call(b,a);return c};if(a in b)b[a]=g;else{var e=a.slice(2);void 0===c.events&&(c.events={});null!=c.events[a]&&b.removeEventListener(e,c.events[a],!1);"function"===typeof d&&(c.events[a]=g,b.addEventListener(e,c.events[a],!1))}}function C(c,a,d){"function"===typeof c.oninit&&c.oninit.call(a.state,
|
||||
a);"function"===typeof c.oncreate&&d.push(c.oncreate.bind(a.state,a))}function F(c,a,d,b){b?C(c,a,d):"function"===typeof c.onupdate&&d.push(c.onupdate.bind(a.state,a))}function u(c){if(c instanceof Array){for(var a=[],d=0;d<c.length;d++)a[d]=c[d];return a}if("object"===typeof c){a={};for(d in c)a[d]=c[d];return a}return c}var q=b.document,B=q.createDocumentFragment(),E;return{render:function(c,a){var d=[],b=q.activeElement;null==c.vnodes&&(c.textContent="");a instanceof Array||(a=[a]);k(c,c.vnodes,
|
||||
w.normalizeChildren(a),d,null,void 0);c.vnodes=a;for(var g=0;g<d.length;g++)d[g]();q.activeElement!==b&&b.focus()},setEventCallback:function(c){return E=c}}}(window),J=function(b){function e(b,f){if(f instanceof Array)for(var n=0;n<f.length;n++)e(b+"["+n+"]",f[n]);else if("[object Object]"===Object.prototype.toString.call(f))for(n in f)e(b+"["+n+"]",f[n]);else p.push(encodeURIComponent(b)+(null!=f&&""!==f?"="+encodeURIComponent(f):""))}if("[object Object]"!==Object.prototype.toString.call(b))return"";
|
||||
var p=[],f;for(f in b)e(f,b[f]);return p.join("&")},u=function(b,e){function p(b,e){if(null==e)return b;for(var f=b.match(/:[^\/]+/gi)||[],m=0;m<f.length;m++){var r=f[m].slice(1);null!=e[r]&&(b=b.replace(f[m],e[r]),delete e[r])}return b}function f(b,e){var f=J(e);if(""!==f){var m=0>b.indexOf("?")?"?":"&";b+=m+f}return b}function k(b){try{return""!==b?JSON.parse(b):null}catch(e){throw Error(b);}}function h(b){return b.responseText}function n(b,e){if("function"===typeof b)if(e instanceof Array)for(var f=
|
||||
0;f<e.length;f++)e[f]=new b(e[f]);else return new b(e);return e}var t=B(e),r=0,x;return{xhr:function(g){var e=t.stream();void 0!==g.initialValue&&e(g.initialValue);var r="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(b){return b}:JSON.stringify);"function"!==typeof g.deserialize&&(g.deserialize=k);"function"!==typeof g.extract&&(g.extract=h);g.url=p(g.url,g.data);
|
||||
r?g.data=g.serialize(g.data):g.url=f(g.url,g.data);var m=new b.XMLHttpRequest;m.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&&r&&m.setRequestHeader("Content-Type","application/json; charset=utf-8");g.deserialize===k&&m.setRequestHeader("Accept","application/json, text/*");"function"===typeof g.config&&(m=g.config(m,g)||m);m.onreadystatechange=function(){if(4===m.readyState){try{var b=
|
||||
g.extract!==h?g.extract(m,g):g.deserialize(g.extract(m,g));if(200<=m.status&&300>m.status)e(n(g.type,b));else{var f=Error(m.responseText),r;for(r in b)f[r]=b[r];e.error(f)}}catch(k){e.error(k)}"function"===typeof x&&x()}};r?m.send(g.data):m.send();return e},jsonp:function(e){var l=t.stream();void 0!==e.initialValue&&l(e.initialValue);var k=e.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+r++,m=b.document.createElement("script");b[k]=function(f){m.parentNode.removeChild(m);l(n(e.type,
|
||||
f));"function"===typeof x&&x();delete b[k]};m.onerror=function(){m.parentNode.removeChild(m);l.error(Error("JSONP request failed"));"function"===typeof x&&x();delete b[k]};null==e.data&&(e.data={});e.url=p(e.url,e.data);e.data[e.callbackKey||"callback"]=k;m.src=f(e.url,e.data);b.document.documentElement.appendChild(m);return l},setCompletionCallback:function(b){x=b}}}(window,u),G=function(){var b=[];return{subscribe:b.push.bind(b),unsubscribe:function(e){e=b.indexOf(e);-1<e&&b.splice(e,1)},publish:function(){for(var e=
|
||||
0;e<b.length;e++)b[e].apply(this,arguments)}}}();u.setCompletionCallback(G.publish);var L=function(b){if(""===b||null==b)return{};"?"===b.charAt(0)&&(b=b.slice(1));b=b.split("&");for(var e={},p={},f=0;f<b.length;f++){var k=b[f].split("="),h=decodeURIComponent(k[0]),k=2===k.length?decodeURIComponent(k[1]):"",n=Number(k);""!==k&&!isNaN(n)||"NaN"===k?k=n:"true"===k?k=!0:"false"===k?k=!1:(n=new Date(k),isNaN(n.getTime())||(k=n));var n=h.split(/\]\[?|\[/),t=e;-1<h.indexOf("[")&&n.pop();for(var r=0;r<n.length;r++){var h=
|
||||
n[r],x=n[r+1],x=""==x||!isNaN(parseInt(x,10)),g=r===n.length-1;""===h&&(h=n.slice(0,r).join(),null==p[h]&&(p[h]=0),h=p[h]++);null==t[h]&&(t[h]=g?k:x?[]:{});t=t[h]}}return e},P=function(b){function e(e){var f=b.location[e].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);"pathname"===e&&"/"!==f[0]&&(f="/"+f);return f}function p(b,e,g){var f=b.indexOf("?"),k=b.indexOf("#"),m=-1<f?f:-1<k?k:b.length;if(-1<f){var f=L(b.slice(f+1,-1<k?k:b.length)),h;for(h in f)e[h]=f[h]}if(-1<k)for(h in e=L(b.slice(k+
|
||||
1)),e)g[h]=e[h];return b.slice(0,m)}function f(){switch(t.charAt(0)){case "#":return e("hash").slice(t.length);case "?":return e("search").slice(t.length)+e("hash");default:return e("pathname").slice(t.length)+e("search")+e("hash")}}function k(e,f,g){var k={},n={};e=p(e,k,n);if(null!=f){for(var m in f)k[m]=f[m];e=e.replace(/:([^\/]+)/g,function(b,e){delete k[e];return f[e]})}(m=J(k))&&(e+="?"+m);(n=J(n))&&(e+="#"+n);h?(g&&g.replace?b.history.replaceState(null,null,t+e):b.history.pushState(null,null,
|
||||
t+e),b.onpopstate()):b.location.href=t+e}var h="function"===typeof b.history.pushState,n="function"===typeof setImmediate?setImmediate:setTimeout,t="#!";return{setPrefix:function(b){t=b},getPath:f,setPath:k,defineRoutes:function(e,k,g){function l(){var b=f(),m={},h=p(b,m,m);n(function(){for(var f in e){var l=new RegExp("^"+f.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(l.test(h)){h.replace(l,function(){for(var g=f.match(/:[^\/]+/g)||[],h=[].slice.call(arguments,1,-2),
|
||||
l=0;l<g.length;l++)m[g[l].replace(/:|\./g,"")]=decodeURIComponent(h[l]);k(e[f],m,b,f)});return}}g(b,m)})}h?b.onpopstate=l:"#"===t.charAt(0)&&(b.onhashchange=l);l();return l},link:function(b){b.dom.setAttribute("href",t+b.attrs.href);b.dom.onclick=function(e){e.preventDefault();e.redraw=!1;k(b.attrs.href,void 0,void 0)}}}},Q=function(b){var e=0,p=null,f="function"===typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(k){var h=Date.now();!0===k||0===e||16<=h-e?(e=h,b()):null===
|
||||
p&&(p=f(function(){p=null;b();e=Date.now()},16-(h-e)))}},M=function(b,e,p,f){f=Q(f);null!=e&&e.setEventCallback(function(b){!1!==b.redraw&&p.publish()});null!=p&&(b.redraw&&p.unsubscribe(b.redraw),p.subscribe(f));return b.redraw=f};v.route=function(b,e,p){var f=P(b);b=function(b,h,n){var t=null,r=null;n=f.defineRoutes(n,function(f,g,l,h){if("function"!==typeof f.view){"function"!==typeof f.render&&(f.render=function(b){return b});var m=function(h){t=l;r=h;e.render(b,f.render(w(h,null,g,void 0,void 0,
|
||||
void 0)))};"function"!==typeof f.resolve&&(f.resolve=function(){m(r)});l!==t?f.resolve(m,g,l,h):m(r)}else e.render(b,w(f,null,g,void 0,void 0,void 0))},function(){f.setPath(h,null,{replace:!0})});M(b,e,p,n)};b.link=f.link;b.prefix=f.setPrefix;b.set=f.setPath;b.get=f.getPath;return b}(window,I,G);var R={view:function(){}};v.mount=function(b,e){return function(p,f){e.unsubscribe(p.redraw);M(p,b,e,function(){b.render(p,w(null===f?R:f,void 0,void 0,void 0,void 0,void 0))})();null===f&&(e.unsubscribe(p.redraw),
|
||||
delete p.redraw)}}(I,G);v.trust=function(b){return w("<",void 0,void 0,b,void 0,void 0)};v.withAttr=function(b,e,p){return function(f){return e.call(p||this,b in f.currentTarget?f.currentTarget[b]:f.currentTarget.getAttribute(b))}};v.prop=B.stream;v.prop.combine=B.combine;v.prop.reject=B.reject;v.prop.merge=B.merge;v.prop.HALT=B.HALT;v.render=I.render;v.redraw=G.publish;v.request=u.xhr;v.jsonp=u.jsonp;v.version="1.0.0";"undefined"!==typeof module?module.exports=v:window.m=v};
|
||||
Loading…
Add table
Add a link
Reference in a new issue