43 lines
No EOL
22 KiB
JavaScript
43 lines
No EOL
22 KiB
JavaScript
(function(){function z(b,d,e,f,h,m){return{tag:b,key:d,attrs:e,children:f,text:h,dom:m,domSize:void 0,state:void 0,_state:void 0,events:void 0,instance:void 0,skip:!1}}function B(b){var d,e=arguments[1],f=2;if(null==b||"string"!==typeof b&&"function"!==typeof b&&"function"!==typeof b.view)throw Error("The selector must be either a string or a component.");if("string"===typeof b&&!(d=M[b])){var h="div";for(var m=[],k={};d=P.exec(b);){var r=d[1],n=d[2];""===r&&""!==n?h=n:"#"===r?k.id=n:"."===r?m.push(n):
|
|
"["===d[3][0]&&((r=d[6])&&(r=r.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===d[4]?m.push(r):k[d[4]]=r||!0)}0<m.length&&(k.className=m.join(" "));d=M[b]={tag:h,attrs:k}}if(null==e)e={};else if("object"!==typeof e||null!=e.tag||Array.isArray(e))e={},f=1;if(arguments.length===f+1)h=arguments[f],Array.isArray(h)||(h=[h]);else for(h=[];f<arguments.length;)h.push(arguments[f++]);f=z.normalizeChildren(h);if("string"===typeof b){h=!1;var l,t,m=e.className||e["class"],a;for(a in d.attrs)N.call(d.attrs,
|
|
a)&&(e[a]=d.attrs[a]);void 0!==m&&(void 0!==e["class"]&&(e["class"]=void 0,e.className=m),null!=d.attrs.className&&(e.className=d.attrs.className+" "+m));for(a in e)if(N.call(e,a)&&"key"!==a){h=!0;break}Array.isArray(f)&&1===f.length&&null!=f[0]&&"#"===f[0].tag?t=f[0].children:l=f;return z(d.tag,e.key,h?e:void 0,l,t)}return z(b,e.key,e,f)}function Q(b){var d=0,e=null,f="function"===typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(){var h=Date.now();0===d||16<=h-d?(d=h,
|
|
b()):null===e&&(e=f(function(){e=null;b();d=Date.now()},16-(h-d)))}}z.normalize=function(b){return Array.isArray(b)?z("[",void 0,void 0,z.normalizeChildren(b),void 0,void 0):null!=b&&"object"!==typeof b?z("#",void 0,void 0,!1===b?"":b,void 0,void 0):b};z.normalizeChildren=function(b){for(var d=0;d<b.length;d++)b[d]=z.normalize(b[d]);return b};var P=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,M={},N={}.hasOwnProperty;B.trust=function(b){null==b&&(b="");return z("<",
|
|
void 0,void 0,b,void 0,void 0)};B.fragment=function(b,d){return z("[",b.key,b,z.normalizeChildren(d),void 0,void 0)};var x=function(b){function d(b,a){return function v(d){var k;try{if(!a||null==d||"object"!==typeof d&&"function"!==typeof d||"function"!==typeof(k=d.then))l(function(){a||0!==b.length||console.error("Possible unhandled promise rejection:",d);for(var e=0;e<b.length;e++)b[e](d);h.length=0;m.length=0;n.state=a;n.retry=function(){v(d)}});else{if(d===f)throw new TypeError("Promise can't be resolved w/ itself");
|
|
e(k.bind(d))}}catch(R){r(R)}}}function e(b){function a(a){return function(b){0<d++||a(b)}}var d=0,e=a(r);try{b(a(k),e)}catch(D){e(D)}}if(!(this instanceof x))throw Error("Promise must be called with `new`");if("function"!==typeof b)throw new TypeError("executor must be a function");var f=this,h=[],m=[],k=d(h,!0),r=d(m,!1),n=f._instance={resolvers:h,rejectors:m},l="function"===typeof setImmediate?setImmediate:setTimeout;e(b)};x.prototype.then=function(b,d){function e(b,d,e,k){d.push(function(a){if("function"!==
|
|
typeof b)e(a);else try{h(b(a))}catch(A){m&&m(A)}});"function"===typeof f.retry&&k===f.state&&f.retry()}var f=this._instance,h,m,k=new x(function(b,d){h=b;m=d});e(b,f.resolvers,h,!0);e(d,f.rejectors,m,!1);return k};x.prototype["catch"]=function(b){return this.then(null,b)};x.resolve=function(b){return b instanceof x?b:new x(function(d){d(b)})};x.reject=function(b){return new x(function(d,e){e(b)})};x.all=function(b){return new x(function(d,e){var f=b.length,h=0,m=[];if(0===b.length)d([]);else for(var k=
|
|
0;k<b.length;k++)(function(k){function n(b){h++;m[k]=b;h===f&&d(m)}null==b[k]||"object"!==typeof b[k]&&"function"!==typeof b[k]||"function"!==typeof b[k].then?n(b[k]):b[k].then(n,e)})(k)})};x.race=function(b){return new x(function(d,e){for(var f=0;f<b.length;f++)b[f].then(d,e)})};"undefined"!==typeof window?("undefined"===typeof window.Promise&&(window.Promise=x),x=window.Promise):"undefined"!==typeof global&&("undefined"===typeof global.Promise&&(global.Promise=x),x=global.Promise);var G=function(b){function d(b,
|
|
f){if(Array.isArray(f))for(var h=0;h<f.length;h++)d(b+"["+h+"]",f[h]);else if("[object Object]"===Object.prototype.toString.call(f))for(h in f)d(b+"["+h+"]",f[h]);else e.push(encodeURIComponent(b)+(null!=f&&""!==f?"="+encodeURIComponent(f):""))}if("[object Object]"!==Object.prototype.toString.call(b))return"";var e=[],f;for(f in b)d(f,b[f]);return e.join("&")},S=/^file:\/\//i,K=function(b,d){function e(){function a(){0===--b&&"function"===typeof t&&t()}var b=0;return function D(d){var e=d.then;d.then=
|
|
function(){b++;var h=e.apply(d,arguments);h.then(a,function(d){a();if(0===b)throw d;});return D(h)};return d}}function f(a,b){if("string"===typeof a){var d=a;a=b||{};null==a.url&&(a.url=d)}return a}function h(a,b){if(null==b)return a;for(var d=a.match(/:[^\/]+/gi)||[],e=0;e<d.length;e++){var h=d[e].slice(1);null!=b[h]&&(a=a.replace(d[e],b[h]))}return a}function m(a,b){var d=G(b);if(""!==d){var e=0>a.indexOf("?")?"?":"&";a+=e+d}return a}function k(a){try{return""!==a?JSON.parse(a):null}catch(A){throw Error(a);
|
|
}}function r(a){return a.responseText}function n(a,b){if("function"===typeof a)if(Array.isArray(b))for(var d=0;d<b.length;d++)b[d]=new a(b[d]);else return new a(b);return b}var l=0,t;return{request:function(a,l){var t=e();a=f(a,l);var A=new d(function(d,e){null==a.method&&(a.method="GET");a.method=a.method.toUpperCase();var f="GET"===a.method||"TRACE"===a.method?!1:"boolean"===typeof a.useBody?a.useBody:!0;"function"!==typeof a.serialize&&(a.serialize="undefined"!==typeof FormData&&a.data instanceof
|
|
FormData?function(g){return g}:JSON.stringify);"function"!==typeof a.deserialize&&(a.deserialize=k);"function"!==typeof a.extract&&(a.extract=r);a.url=h(a.url,a.data);f?a.data=a.serialize(a.data):a.url=m(a.url,a.data);var l=new b.XMLHttpRequest,t=!1,A=l.abort;l.abort=function(){t=!0;A.call(l)};l.open(a.method,a.url,"boolean"===typeof a.async?a.async:!0,"string"===typeof a.user?a.user:void 0,"string"===typeof a.password?a.password:void 0);a.serialize===JSON.stringify&&f&&l.setRequestHeader("Content-Type",
|
|
"application/json; charset=utf-8");a.deserialize===k&&l.setRequestHeader("Accept","application/json, text/*");a.withCredentials&&(l.withCredentials=a.withCredentials);for(var v in a.headers)({}).hasOwnProperty.call(a.headers,v)&&l.setRequestHeader(v,a.headers[v]);"function"===typeof a.config&&(l=a.config(l,a)||l);l.onreadystatechange=function(){if(!t&&4===l.readyState)try{var g=a.extract!==r?a.extract(l,a):a.deserialize(a.extract(l,a));if(200<=l.status&&300>l.status||304===l.status||S.test(a.url))d(n(a.type,
|
|
g));else{var c=Error(l.responseText),p;for(p in g)c[p]=g[p];e(c)}}catch(u){e(u)}};f&&null!=a.data?l.send(a.data):l.send()});return!0===a.background?A:t(A)},jsonp:function(a,k){var t=e();a=f(a,k);var r=new d(function(d,e){var f=a.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,k=b.document.createElement("script");b[f]=function(e){k.parentNode.removeChild(k);d(n(a.type,e));delete b[f]};k.onerror=function(){k.parentNode.removeChild(k);e(Error("JSONP request failed"));delete b[f]};null==
|
|
a.data&&(a.data={});a.url=h(a.url,a.data);a.data[a.callbackKey||"callback"]=f;k.src=m(a.url,a.data);b.document.documentElement.appendChild(k)});return!0===a.background?r:t(r)},setCompletionCallback:function(a){t=a}}}(window,x),O=function(b){function d(g,c,p,a,b,d,h){for(;p<a;p++){var u=c[p];null!=u&&e(g,u,b,h,d)}}function e(g,c,p,a,b){var u=c.tag;if("string"===typeof u)switch(c.state={},null!=c.attrs&&B(c.attrs,c,p),u){case "#":return c.dom=C.createTextNode(c.children),l(g,c.dom,b),c.dom;case "<":return f(g,
|
|
c,b);case "[":var k=C.createDocumentFragment();null!=c.children&&(u=c.children,d(k,u,0,u.length,p,null,a));c.dom=k.firstChild;c.domSize=k.childNodes.length;l(g,k,b);return k;default:var q=c.tag;switch(c.tag){case "svg":a="http://www.w3.org/2000/svg";break;case "math":a="http://www.w3.org/1998/Math/MathML"}var n=(u=c.attrs)&&u.is,q=a?n?C.createElementNS(a,q,{is:n}):C.createElementNS(a,q):n?C.createElement(q,{is:n}):C.createElement(q);c.dom=q;if(null!=u)for(k in n=a,u)D(c,k,null,u[k],n);l(g,q,b);null!=
|
|
c.attrs&&null!=c.attrs.contenteditable?t(c):(null!=c.text&&(""!==c.text?q.textContent=c.text:c.children=[z("#",void 0,void 0,c.text,void 0,void 0)]),null!=c.children&&(g=c.children,d(q,g,0,g.length,p,null,a),g=c.attrs,"select"===c.tag&&null!=g&&("value"in g&&D(c,"value",null,g.value,void 0),"selectedIndex"in g&&D(c,"selectedIndex",null,g.selectedIndex,void 0))));return q}else return h(c,p),null!=c.instance?(p=e(g,c.instance,p,a,b),c.dom=c.instance.dom,c.domSize=null!=c.dom?c.instance.domSize:0,l(g,
|
|
p,b),c=p):(c.domSize=0,c=J),c}function f(g,c,p){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=C.createElement(a);a.innerHTML=c.children;c.dom=a.firstChild;c.domSize=a.childNodes.length;c=C.createDocumentFragment();for(var b;b=a.firstChild;)c.appendChild(b);l(g,c,p);return c}function h(g,c){if("function"===typeof g.tag.view){g.state=Object.create(g.tag);var a=g.state.view;
|
|
if(null!=a.$$reentrantLock$$)return J;a.$$reentrantLock$$=!0}else{g.state=void 0;a=g.tag;if(null!=a.$$reentrantLock$$)return J;a.$$reentrantLock$$=!0;g.state=null!=g.tag.prototype&&"function"===typeof g.tag.prototype.view?new g.tag(g):g.tag(g)}g._state=g.state;null!=g.attrs&&B(g.attrs,g,c);B(g._state,g,c);g.instance=z.normalize(g._state.view.call(g.state,g));if(g.instance===g)throw Error("A view cannot return the vnode it received as argument");a.$$reentrantLock$$=null}function m(g,c,p,b,h,f,m){var q,
|
|
u;if(c!==p&&(null!=c||null!=p))if(null==c)d(g,p,0,p.length,h,f,void 0);else if(null==p)a(c,0,c.length,p);else{if(c.length===p.length){var t=!1;for(q=0;q<p.length;q++)if(null!=p[q]&&null!=c[q]){t=null==p[q].key&&null==c[q].key;break}if(t){for(q=0;q<c.length;q++)c[q]!==p[q]&&(null==c[q]&&null!=p[q]?e(g,p[q],h,m,n(c,q+1,f)):null==p[q]?a(c,q,q+1,p):k(g,c[q],p[q],h,n(c,q+1,f),b,m));return}}if(!b)a:{if(null!=c.pool&&Math.abs(c.pool.length-p.length)<=Math.abs(c.length-p.length)&&(b=p[0]&&p[0].children&&
|
|
p[0].children.length||0,Math.abs((c.pool[0]&&c.pool[0].children&&c.pool[0].children.length||0)-b)<=Math.abs((c[0]&&c[0].children&&c[0].children.length||0)-b))){b=!0;break a}b=!1}if(b){var A=c.pool;c=c.concat(c.pool)}var y=u=0;q=c.length-1;for(t=p.length-1;q>=u&&t>=y;){var w=c[u];var v=p[y];if(w!==v||b)if(null==w)u++;else if(null==v)y++;else if(w.key===v.key){var E=null!=A&&u>=c.length-A.length||null==A&&b;u++;y++;k(g,w,v,h,n(c,u,f),E,m);b&&w.tag===v.tag&&l(g,r(w),f)}else if(w=c[q],w!==v||b)if(null==
|
|
w)q--;else if(null==v)y++;else if(w.key===v.key)E=null!=A&&q>=c.length-A.length||null==A&&b,k(g,w,v,h,n(c,q+1,f),E,m),(b||y<t)&&l(g,r(w),n(c,u,f)),q--,y++;else break;else q--,y++;else u++,y++}for(;q>=u&&t>=y;){w=c[q];v=p[t];if(w!==v||b)if(null==w)q--;else{if(null!=v)if(w.key===v.key)E=null!=A&&q>=c.length-A.length||null==A&&b,k(g,w,v,h,n(c,q+1,f),E,m),b&&w.tag===v.tag&&l(g,r(w),f),null!=w.dom&&(f=w.dom),q--;else{if(!D){var D=c;E=q;w={};var F;for(F=0;F<E;F++){var x=D[F];null!=x&&(x=x.key,null!=x&&
|
|
(w[x]=F))}D=w}null!=v&&(E=D[v.key],null!=E?(w=c[E],k(g,w,v,h,n(c,q+1,f),b,m),l(g,r(w),f),c[E].skip=!0,null!=w.dom&&(f=w.dom)):f=e(g,v,h,void 0,f))}t--}else q--,t--;if(t<y)break}d(g,p,y,t+1,h,f,m);a(c,u,q+1,p)}}function k(g,c,a,b,d,l,n){var p=c.tag;if(p===a.tag){a.state=c.state;a._state=c._state;a.events=c.events;var u;if(u=!l){var w,v;null!=a.attrs&&"function"===typeof a.attrs.onbeforeupdate&&(w=a.attrs.onbeforeupdate.call(a.state,a,c));"string"!==typeof a.tag&&"function"===typeof a._state.onbeforeupdate&&
|
|
(v=a._state.onbeforeupdate.call(a.state,a,c));void 0===w&&void 0===v||w||v?u=!1:(a.dom=c.dom,a.domSize=c.domSize,a.instance=c.instance,u=!0)}if(!u)if("string"===typeof p)switch(null!=a.attrs&&(l?(a.state={},B(a.attrs,a,b)):I(a.attrs,a,b)),p){case "#":c.children.toString()!==a.children.toString()&&(c.dom.nodeValue=a.children);a.dom=c.dom;break;case "<":c.children!==a.children?(r(c),f(g,a,d)):(a.dom=c.dom,a.domSize=c.domSize);break;case "[":m(g,c.children,a.children,l,b,d,n);c=0;b=a.children;a.dom=
|
|
null;if(null!=b){for(l=0;l<b.length;l++){var y=b[l];null!=y&&null!=y.dom&&(null==a.dom&&(a.dom=y.dom),c+=y.domSize||1)}1!==c&&(a.domSize=c)}break;default:g=n;d=a.dom=c.dom;switch(a.tag){case "svg":g="http://www.w3.org/2000/svg";break;case "math":g="http://www.w3.org/1998/Math/MathML"}"textarea"===a.tag&&(null==a.attrs&&(a.attrs={}),null!=a.text&&(a.attrs.value=a.text,a.text=void 0));n=c.attrs;p=a.attrs;u=g;if(null!=p)for(y in p)D(a,y,n&&n[y],p[y],u);if(null!=n)for(y in n)null!=p&&y in p||("className"===
|
|
y&&(y="class"),"o"!==y[0]||"n"!==y[1]||F(y)?"key"!==y&&a.dom.removeAttribute(y):x(a,y,void 0));null!=a.attrs&&null!=a.attrs.contenteditable?t(a):null!=c.text&&null!=a.text&&""!==a.text?c.text.toString()!==a.text.toString()&&(c.dom.firstChild.nodeValue=a.text):(null!=c.text&&(c.children=[z("#",void 0,void 0,c.text,void 0,c.dom.firstChild)]),null!=a.text&&(a.children=[z("#",void 0,void 0,a.text,void 0,void 0)]),m(d,c.children,a.children,l,b,null,g))}else{if(l)h(a,b);else{a.instance=z.normalize(a._state.view.call(a.state,
|
|
a));if(a.instance===a)throw Error("A view cannot return the vnode it received as argument");null!=a.attrs&&I(a.attrs,a,b);I(a._state,a,b)}null!=a.instance?(null==c.instance?e(g,a.instance,b,n,d):k(g,c.instance,a.instance,b,d,l,n),a.dom=a.instance.dom,a.domSize=a.instance.domSize):null!=c.instance?(A(c.instance,null),a.dom=void 0,a.domSize=0):(a.dom=c.dom,a.domSize=c.domSize)}}else A(c,null),e(g,a,b,n,d)}function r(a){var c=a.domSize;if(null!=c||null==a.dom){var b=C.createDocumentFragment();if(0<c){for(a=
|
|
a.dom;--c;)b.appendChild(a.nextSibling);b.insertBefore(a,b.firstChild)}return b}return a.dom}function n(a,c,b){for(;c<a.length;c++)if(null!=a[c]&&null!=a[c].dom)return a[c].dom;return b}function l(a,c,b){b&&b.parentNode?a.insertBefore(c,b):a.appendChild(c)}function t(a){var c=a.children;if(null!=c&&1===c.length&&"<"===c[0].tag)c=c[0].children,a.dom.innerHTML!==c&&(a.dom.innerHTML=c);else if(null!=a.text||null!=c&&0!==c.length)throw Error("Child node of a contenteditable must be trusted");}function a(a,
|
|
c,b,d){for(;c<b;c++){var g=a[c];null!=g&&(g.skip?g.skip=!1:A(g,d))}}function A(a,c){function b(){if(++d===g&&(v(a),a.dom)){var b=a.domSize||1;if(1<b)for(var e=a.dom;--b;){var f=e.nextSibling,h=f.parentNode;null!=h&&h.removeChild(f)}b=a.dom;e=b.parentNode;null!=e&&e.removeChild(b);if(b=null!=c&&null==a.domSize)b=a.attrs,b=!(null!=b&&(b.oncreate||b.onupdate||b.onbeforeremove||b.onremove));b&&"string"===typeof a.tag&&(c.pool?c.pool.push(a):c.pool=[a])}}var g=1,d=0;if(a.attrs&&"function"===typeof a.attrs.onbeforeremove){var e=
|
|
a.attrs.onbeforeremove.call(a.state,a);null!=e&&"function"===typeof e.then&&(g++,e.then(b,b))}"string"!==typeof a.tag&&"function"===typeof a._state.onbeforeremove&&(e=a._state.onbeforeremove.call(a.state,a),null!=e&&"function"===typeof e.then&&(g++,e.then(b,b)));b()}function v(a){a.attrs&&"function"===typeof a.attrs.onremove&&a.attrs.onremove.call(a.state,a);"string"!==typeof a.tag&&"function"===typeof a._state.onremove&&a._state.onremove.call(a.state,a);if(null!=a.instance)v(a.instance);else if(a=
|
|
a.children,Array.isArray(a))for(var c=0;c<a.length;c++){var b=a[c];null!=b&&v(b)}}function D(a,c,b,d,e){var g=a.dom;if("key"!==c&&"is"!==c&&(b!==d||"value"===c||"checked"===c||"selectedIndex"===c||"selected"===c&&a.dom===C.activeElement||"object"===typeof d)&&"undefined"!==typeof d&&!F(c)){var f=c.indexOf(":");if(-1<f&&"xlink"===c.substr(0,f))g.setAttributeNS("http://www.w3.org/1999/xlink",c.slice(f+1),d);else if("o"===c[0]&&"n"===c[1]&&"function"===typeof d)x(a,c,d);else if("style"===c)if(a=b,a===
|
|
d&&(g.style.cssText="",a=null),null==d)g.style.cssText="";else if("string"===typeof d)g.style.cssText=d;else{"string"===typeof a&&(g.style.cssText="");for(var h in d)g.style[h]=d[h];if(null!=a&&"string"!==typeof a)for(h in a)h in d||(g.style[h]="")}else c in g&&"href"!==c&&"list"!==c&&"form"!==c&&"width"!==c&&"height"!==c&&void 0===e&&!(a.attrs.is||-1<a.tag.indexOf("-"))?"input"===a.tag&&"value"===c&&a.dom.value==d&&a.dom===C.activeElement||"select"===a.tag&&"value"===c&&a.dom.value==d&&a.dom===C.activeElement||
|
|
"option"===a.tag&&"value"===c&&null!=b&&a.dom.value==d||("input"===a.tag&&"type"===c?g.setAttribute(c,d):g[c]=d):"boolean"===typeof d?d?g.setAttribute(c,""):g.removeAttribute(c):g.setAttribute("className"===c?"class":c,d)}}function F(a){return"oninit"===a||"oncreate"===a||"onupdate"===a||"onremove"===a||"onbeforeremove"===a||"onbeforeupdate"===a}function x(a,b,d){var c=a.dom,g="function"!==typeof G?d:function(a){var b=d.call(c,a);G.call(c,a);return b};if(b in c)c[b]="function"===typeof d?g:null;else{var e=
|
|
b.slice(2);void 0===a.events&&(a.events={});a.events[b]!==g&&(null!=a.events[b]&&c.removeEventListener(e,a.events[b],!1),"function"===typeof d&&(a.events[b]=g,c.addEventListener(e,a.events[b],!1)))}}function B(a,b,d){"function"===typeof a.oninit&&a.oninit.call(b.state,b);"function"===typeof a.oncreate&&d.push(a.oncreate.bind(b.state,b))}function I(a,b,d){"function"===typeof a.onupdate&&d.push(a.onupdate.bind(b.state,b))}var C=b.document,J=C.createDocumentFragment(),G;return{render:function(a,b){if(!a)throw Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");
|
|
var c=[],d=C.activeElement;null==a.vnodes&&(a.textContent="");Array.isArray(b)||(b=[b]);m(a,a.vnodes,z.normalizeChildren(b),!1,c,null,void 0);a.vnodes=b;for(var e=0;e<c.length;e++)c[e]();C.activeElement!==d&&d.focus()},setEventCallback:function(a){return G=a}}},H=function(b){function d(b){b=f.indexOf(b);-1<b&&f.splice(b,2)}function e(){for(var b=1;b<f.length;b+=2)f[b]()}b=O(b);b.setEventCallback(function(b){!1!==b.redraw&&e()});var f=[];return{subscribe:function(b,e){d(b);f.push(b,Q(e))},unsubscribe:d,
|
|
redraw:e,render:b.render}}(window);K.setCompletionCallback(H.redraw);B.mount=function(b){return function(d,e){if(null===e)b.render(d,[]),b.unsubscribe(d);else{if(null==e.view&&"function"!==typeof e)throw Error("m.mount(element, component) expects a component, not a vnode");b.subscribe(d,function(){b.render(d,z(e))});b.redraw()}}}(H);var T=x,L=function(b){if(""===b||null==b)return{};"?"===b.charAt(0)&&(b=b.slice(1));b=b.split("&");for(var d={},e={},f=0;f<b.length;f++){var h=b[f].split("=");var m=decodeURIComponent(h[0]);
|
|
var k=2===h.length?decodeURIComponent(h[1]):"";"true"===k?k=!0:"false"===k&&(k=!1);h=m.split(/\]\[?|\[/);var r=d;-1<m.indexOf("[")&&h.pop();for(var n=0;n<h.length;n++){m=h[n];var l=h[n+1],l=""==l||!isNaN(parseInt(l,10)),t=n===h.length-1;""===m&&(m=h.slice(0,n).join(),null==e[m]&&(e[m]=0),m=e[m]++);null==r[m]&&(r[m]=t?k:l?[]:{});r=r[m]}}return d},U=function(b){function d(d){var e=b.location[d].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);"pathname"===d&&"/"!==e[0]&&(e="/"+e);return e}function e(b){return function(){null==
|
|
k&&(k=m(function(){k=null;b()}))}}function f(b,d,e){var a=b.indexOf("?"),f=b.indexOf("#"),h=-1<a?a:-1<f?f:b.length;if(-1<a){var a=L(b.slice(a+1,-1<f?f:b.length)),k;for(k in a)d[k]=a[k]}if(-1<f)for(k in d=L(b.slice(f+1)),d)e[k]=d[k];return b.slice(0,h)}var h="function"===typeof b.history.pushState,m="function"===typeof setImmediate?setImmediate:setTimeout,k,r={prefix:"#!",getPath:function(){switch(r.prefix.charAt(0)){case "#":return d("hash").slice(r.prefix.length);case "?":return d("search").slice(r.prefix.length)+
|
|
d("hash");default:return d("pathname").slice(r.prefix.length)+d("search")+d("hash")}},setPath:function(d,e,k){var a={},l={};d=f(d,a,l);if(null!=e){for(var m in e)a[m]=e[m];d=d.replace(/:([^\/]+)/g,function(b,d){delete a[d];return e[d]})}(m=G(a))&&(d+="?"+m);(l=G(l))&&(d+="#"+l);h?(l=k?k.state:null,m=k?k.title:null,b.onpopstate(),k&&k.replace?b.history.replaceState(l,m,r.prefix+d):b.history.pushState(l,m,r.prefix+d)):b.location.href=r.prefix+d},defineRoutes:function(d,k,m){function a(){var a=r.getPath(),
|
|
e={},h=f(a,e,e),l=b.history.state;if(null!=l)for(var n in l)e[n]=l[n];for(var t in d)if(l=new RegExp("^"+t.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$"),l.test(h)){h.replace(l,function(){for(var b=t.match(/:[^\/]+/g)||[],f=[].slice.call(arguments,1,-2),h=0;h<b.length;h++)e[b[h].replace(/:|\./g,"")]=decodeURIComponent(f[h]);k(d[t],e,a,t)});return}m(a,e)}h?b.onpopstate=e(a):"#"===r.prefix.charAt(0)&&(b.onhashchange=a);a()}};return r};B.route=function(b,d){var e=U(b),f=function(b){return b},
|
|
h,m,k,r,n,l=function(b,a,l){if(null==b)throw Error("Ensure the DOM element that was passed to `m.route` is not undefined");var t=function(){null!=h&&d.render(b,h(z(m,k.key,k)))},x=function(b){if(b!==a)e.setPath(a,null,{replace:!0});else throw Error("Could not resolve default route "+a);};e.defineRoutes(l,function(a,b,d){var e=n=function(a,l){e===n&&(m=null==l||"function"!==typeof l.view&&"function"!==typeof l?"div":l,k=b,r=d,n=null,h=(a.render||f).bind(a),t())};a.view||"function"===typeof a?e({},
|
|
a):a.onmatch?T.resolve(a.onmatch(b,d)).then(function(b){e(a,b)},x):e(a,"div")},x);d.subscribe(b,t)};l.set=function(b,a,d){null!=n&&(d={replace:!0});n=null;e.setPath(b,a,d)};l.get=function(){return r};l.prefix=function(b){e.prefix=b};l.link=function(b){b.dom.setAttribute("href",e.prefix+b.attrs.href);b.dom.onclick=function(a){a.ctrlKey||a.metaKey||a.shiftKey||2===a.which||(a.preventDefault(),a.redraw=!1,a=this.getAttribute("href"),0===a.indexOf(e.prefix)&&(a=a.slice(e.prefix.length)),l.set(a,void 0,
|
|
void 0))}};l.param=function(b){return"undefined"!==typeof k&&"undefined"!==typeof b?k[b]:k};return l}(window,H);B.withAttr=function(b,d,e){return function(f){d.call(e||this,b in f.currentTarget?f.currentTarget[b]:f.currentTarget.getAttribute(b))}};var V=O(window);B.render=V.render;B.redraw=H.redraw;B.request=K.request;B.jsonp=K.jsonp;B.parseQueryString=L;B.buildQueryString=G;B.version="1.1.1";B.vnode=z;"undefined"!==typeof module?module.exports=B:window.m=B})(); |