forked from MithrilJS/mithril.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mithril.min.js
1 lines (1 loc) · 26 KB
/
mithril.min.js
1
!function(){"use strict";function e(e,t,n,r,o,i){return{tag:e,key:t,attrs:n,children:r,text:o,dom:i,domSize:void 0,state:void 0,events:void 0,instance:void 0}}e.normalize=function(t){return Array.isArray(t)?e("[",void 0,void 0,e.normalizeChildren(t),void 0,void 0):null==t||"boolean"==typeof t?null:"object"==typeof t?t:e("#",void 0,void 0,String(t),void 0,void 0)},e.normalizeChildren=function(t){for(var n=[],r=0;r<t.length;r++)n[r]=e.normalize(t[r]);return n};var t=function(){var t,n=arguments[this],r=this+1;if(null==n?n={}:("object"!=typeof n||null!=n.tag||Array.isArray(n))&&(n={},r=this),arguments.length===r+1)t=arguments[r],Array.isArray(t)||(t=[t]);else for(t=[];r<arguments.length;)t.push(arguments[r++]);return e("",n.key,n,t)},n=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,r={},o={}.hasOwnProperty;function i(e){for(var t in e)if(o.call(e,t))return!1;return!0}function l(l){if(null==l||"string"!=typeof l&&"function"!=typeof l&&"function"!=typeof l.view)throw Error("The selector must be either a string or a component.");var a=t.apply(1,arguments);return"string"==typeof l&&(a.children=e.normalizeChildren(a.children),"["!==l)?function(t,n){var r=n.attrs,l=e.normalizeChildren(n.children),a=o.call(r,"class"),u=a?r.class:r.className;if(n.tag=t.tag,n.attrs=null,n.children=void 0,!i(t.attrs)&&!i(r)){var s={};for(var c in r)o.call(r,c)&&(s[c]=r[c]);r=s}for(var c in t.attrs)o.call(t.attrs,c)&&"className"!==c&&!o.call(r,c)&&(r[c]=t.attrs[c]);for(var c in null==u&&null==t.attrs.className||(r.className=null!=u?null!=t.attrs.className?String(t.attrs.className)+" "+String(u):u:null!=t.attrs.className?t.attrs.className:null),a&&(r.class=null),r)if(o.call(r,c)&&"key"!==c){n.attrs=r;break}return Array.isArray(l)&&1===l.length&&null!=l[0]&&"#"===l[0].tag?n.text=l[0].children:n.children=l,n}(r[l]||function(e){for(var t,o="div",i=[],l={};t=n.exec(e);){var a=t[1],u=t[2];if(""===a&&""!==u)o=u;else if("#"===a)l.id=u;else if("."===a)i.push(u);else if("["===t[3][0]){var s=t[6];s&&(s=s.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?i.push(s):l[t[4]]=""===s?s:s||!0}}return i.length>0&&(l.className=i.join(" ")),r[e]={tag:o,attrs:l}}(l),a):(a.tag=l,a)}l.trust=function(t){return null==t&&(t=""),e("<",void 0,void 0,t,void 0,void 0)},l.fragment=function(){var n=t.apply(0,arguments);return n.tag="[",n.children=e.normalizeChildren(n.children),n};var a=function(){return l.apply(this,arguments)};if(a.m=l,a.trust=l.trust,a.fragment=l.fragment,(u=function(e){if(!(this instanceof u))throw new Error("Promise must be called with `new`");if("function"!=typeof e)throw new TypeError("executor must be a function");var t=this,n=[],r=[],o=s(n,!0),i=s(r,!1),l=t._instance={resolvers:n,rejectors:r},a="function"==typeof setImmediate?setImmediate:setTimeout;function s(e,o){return function u(s){var f;try{if(!o||null==s||"object"!=typeof s&&"function"!=typeof s||"function"!=typeof(f=s.then))a(function(){o||0!==e.length||console.error("Possible unhandled promise rejection:",s);for(var t=0;t<e.length;t++)e[t](s);n.length=0,r.length=0,l.state=o,l.retry=function(){u(s)}});else{if(s===t)throw new TypeError("Promise can't be resolved w/ itself");c(f.bind(s))}}catch(e){i(e)}}}function c(e){var t=0;function n(e){return function(n){t++>0||e(n)}}var r=n(i);try{e(n(o),r)}catch(e){r(e)}}c(e)}).prototype.then=function(e,t){var n,r,o=this._instance;function i(e,t,i,l){t.push(function(t){if("function"!=typeof e)i(t);else try{n(e(t))}catch(e){r&&r(e)}}),"function"==typeof o.retry&&l===o.state&&o.retry()}var l=new u(function(e,t){n=e,r=t});return i(e,o.resolvers,n,!0),i(t,o.rejectors,r,!1),l},u.prototype.catch=function(e){return this.then(null,e)},u.prototype.finally=function(e){return this.then(function(t){return u.resolve(e()).then(function(){return t})},function(t){return u.resolve(e()).then(function(){return u.reject(t)})})},u.resolve=function(e){return e instanceof u?e:new u(function(t){t(e)})},u.reject=function(e){return new u(function(t,n){n(e)})},u.all=function(e){return new u(function(t,n){var r=e.length,o=0,i=[];if(0===e.length)t([]);else for(var l=0;l<e.length;l++)!function(l){function a(e){o++,i[l]=e,o===r&&t(i)}null==e[l]||"object"!=typeof e[l]&&"function"!=typeof e[l]||"function"!=typeof e[l].then?a(e[l]):e[l].then(a,n)}(l)})},u.race=function(e){return new u(function(t,n){for(var r=0;r<e.length;r++)e[r].then(t,n)})},"undefined"!=typeof window){void 0===window.Promise?window.Promise=u:window.Promise.prototype.finally||(window.Promise.prototype.finally=u.prototype.finally);var u=window.Promise}else if("undefined"!=typeof global){void 0===global.Promise?global.Promise=u:global.Promise.prototype.finally||(global.Promise.prototype.finally=u.prototype.finally);u=global.Promise}var s=function(e){if("[object Object]"!==Object.prototype.toString.call(e))return"";var t=[];for(var n in e)r(n,e[n]);return t.join("&");function r(e,n){if(Array.isArray(n))for(var o=0;o<n.length;o++)r(e+"["+o+"]",n[o]);else if("[object Object]"===Object.prototype.toString.call(n))for(var o in n)r(e+"["+o+"]",n[o]);else t.push(encodeURIComponent(e)+(null!=n&&""!==n?"="+encodeURIComponent(n):""))}},c=Object.assign||function(e,t){t&&Object.keys(t).forEach(function(n){e[n]=t[n]})},f=function(e,t){if(/:([^\/\.-]+)(\.{3})?:/.test(e))throw new SyntaxError("Template parameter names *must* be separated");if(null==t)return e;var n=e.indexOf("?"),r=e.indexOf("#"),o=r<0?e.length:r,i=n<0?o:n,l=e.slice(0,i),a={};c(a,t);var u=l.replace(/:([^\/\.-]+)(\.{3})?/g,function(e,n,r){return delete a[n],null==t[n]?e:r?t[n]:encodeURIComponent(String(t[n]))}),f=u.indexOf("?"),d=u.indexOf("#"),h=d<0?u.length:d,p=f<0?h:f,v=u.slice(0,p);n>=0&&(v+=e.slice(n,o)),f>=0&&(v+=(n<0?"?":"&")+u.slice(f,h));var m=s(a);return m&&(v+=(n<0&&f<0?"?":"&")+m),r>=0&&(v+=e.slice(r)),d>=0&&(v+=(r<0?"":"&")+u.slice(d)),v},d=function(e,t){var n,r=0;function o(e){return new t(e)}function i(e){return function(r,i){"string"!=typeof r?(i=r,r=r.url):null==i&&(i={});var l=new t(function(t,n){e(f(r,i.params),i,function(e){if("function"==typeof i.type)if(Array.isArray(e))for(var n=0;n<e.length;n++)e[n]=new i.type(e[n]);else e=new i.type(e);t(e)},n)});if(!0===i.background)return l;var a=0;function u(){0==--a&&"function"==typeof n&&n()}return function e(t){var n=t.then;return t.constructor=o,t.then=function(){a++;var r=n.apply(t,arguments);return r.then(u,function(e){if(u(),0===a)throw e}),e(r)},t}(l)}}function l(e,t){for(var n in e.headers)if({}.hasOwnProperty.call(e.headers,n)&&t.test(n))return!0;return!1}return o.prototype=t.prototype,o.__proto__=t,{request:i(function(t,n,r,o){var i,a=null!=n.method?n.method.toUpperCase():"GET",u=n.body,s=!(null!=n.serialize&&n.serialize!==JSON.serialize||u instanceof e.FormData),c=n.responseType||("function"==typeof n.extract?"":"json"),f=new e.XMLHttpRequest,d=!1,h=f,p=f.abort;for(var v in f.abort=function(){d=!0,p.call(this)},f.open(a,t,!1!==n.async,"string"==typeof n.user?n.user:void 0,"string"==typeof n.password?n.password:void 0),s&&null!=u&&!l(n,/^content-type0$/i)&&f.setRequestHeader("Content-Type","application/json; charset=utf-8"),"function"==typeof n.deserialize||l(n,/^accept$/i)||f.setRequestHeader("Accept","application/json, text/*"),n.withCredentials&&(f.withCredentials=n.withCredentials),n.timeout&&(f.timeout=n.timeout),f.responseType=c,n.headers)({}).hasOwnProperty.call(n.headers,v)&&f.setRequestHeader(v,n.headers[v]);f.onreadystatechange=function(e){if(!d&&4===e.target.readyState)try{var i,l=e.target.status>=200&&e.target.status<300||304===e.target.status||/^file:\/\//i.test(t),a=e.target.response;if("json"===c?e.target.responseType||"function"==typeof n.extract||(a=JSON.parse(e.target.responseText)):c&&"text"!==c||null==a&&(a=e.target.responseText),"function"==typeof n.extract?(a=n.extract(e.target,n),l=!0):"function"==typeof n.deserialize&&(a=n.deserialize(a)),l)r(a);else{try{i=e.target.responseText}catch(e){i=a}var u=new Error(i);u.code=e.target.status,u.response=a,o(u)}}catch(e){o(e)}},"function"==typeof n.config&&(f=n.config(f,n,t)||f)!==h&&(i=f.abort,f.abort=function(){d=!0,i.call(this)}),null==u?f.send():"function"==typeof n.serialize?f.send(n.serialize(u)):u instanceof e.FormData?f.send(u):f.send(JSON.stringify(u))}),jsonp:i(function(t,n,o,i){var l=n.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+r++,a=e.document.createElement("script");e[l]=function(t){delete e[l],a.parentNode.removeChild(a),o(t)},a.onerror=function(){delete e[l],a.parentNode.removeChild(a),i(new Error("JSONP request failed"))},a.src=t+(t.indexOf("?")<0?"?":"&")+encodeURIComponent(n.callbackKey||"callback")+"="+encodeURIComponent(l),e.document.documentElement.appendChild(a)}),setCompletionCallback:function(e){n=e}}}(window,u),h=function(t){var n,r=t.document,o={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};function i(e){return e.attrs&&e.attrs.xmlns||o[e.tag]}function l(e,t){if(e.state!==t)throw new Error("`vnode.state` must not be modified")}function a(e){var t=e.state;try{return this.apply(t,arguments)}finally{l(e,t)}}function u(){try{return r.activeElement}catch(e){return null}}function s(e,t){for(var n=1;n<e.length;n++)if((null!=e[n]&&null!=e[n].key)!==t)throw new TypeError("Vnodes must either always have keys or never have keys!")}function c(e,t,n,r,o){t.length&&(s(t,null!=t[0]&&null!=t[0].key),f(e,t,0,t.length,n,r,o))}function f(e,t,n,r,o,i,l){for(var a=n;a<r;a++){var u=t[a];null!=u&&d(e,u,o,l,i)}}function d(t,n,o,l,u){var s=n.tag;if("string"==typeof s)switch(n.state={},null!=n.attrs&&R(n.attrs,n,o),s){case"#":!function(e,t,n){t.dom=r.createTextNode(t.children),x(e,t.dom,n)}(t,n,u);break;case"<":p(t,n,l,u);break;case"[":!function(e,t,n,o,i){var l=r.createDocumentFragment();if(null!=t.children){var a=t.children;c(l,a,n,null,o)}t.dom=l.firstChild,t.domSize=l.childNodes.length,x(e,l,i)}(t,n,o,l,u);break;default:!function(t,n,o,l,a){var u=n.tag,s=n.attrs,f=s&&s.is,d=(l=i(n)||l)?f?r.createElementNS(l,u,{is:f}):r.createElementNS(l,u):f?r.createElement(u,{is:f}):r.createElement(u);n.dom=d,null!=s&&function(e,t,n){for(var r in t)C(e,r,null,t[r],n)}(n,s,l);if(x(t,d,a),!k(n)&&(null!=n.text&&(""!==n.text?d.textContent=n.text:n.children=[e("#",void 0,void 0,n.text,void 0,void 0)]),null!=n.children)){var h=n.children;c(d,h,o,null,l),"select"===n.tag&&null!=s&&function(e,t){if("value"in t)if(null===t.value)-1!==e.dom.selectedIndex&&(e.dom.value=null);else{var n=""+t.value;e.dom.value===n&&-1!==e.dom.selectedIndex||(e.dom.value=n)}"selectedIndex"in t&&C(e,"selectedIndex",null,t.selectedIndex,void 0)}(n,s)}}(t,n,o,l,u)}else!function(t,n,r,o,i){(function(t,n){var r;if("function"==typeof t.tag.view){if(t.state=Object.create(t.tag),null!=(r=t.state.view).$$reentrantLock$$)return;r.$$reentrantLock$$=!0}else{if(t.state=void 0,null!=(r=t.tag).$$reentrantLock$$)return;r.$$reentrantLock$$=!0,t.state=null!=t.tag.prototype&&"function"==typeof t.tag.prototype.view?new t.tag(t):t.tag(t)}if(R(t.state,t,n),null!=t.attrs&&R(t.attrs,t,n),t.instance=e.normalize(a.call(t.state.view,t)),t.instance===t)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null})(n,r),null!=n.instance?(d(t,n.instance,r,o,i),n.dom=n.instance.dom,n.domSize=null!=n.dom?n.instance.domSize:0):n.domSize=0}(t,n,o,l,u)}var h={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"};function p(e,t,n,o){var i=t.children.match(/^\s*?<(\w+)/im)||[],l=r.createElement(h[i[1]]||"div");"http://www.w3.org/2000/svg"===n?(l.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+t.children+"</svg>",l=l.firstChild):l.innerHTML=t.children,t.dom=l.firstChild,t.domSize=l.childNodes.length;for(var a,u=r.createDocumentFragment();a=l.firstChild;)u.appendChild(a);x(e,u,o)}function v(e,t,n,r,o,i){if(t!==n&&(null!=t||null!=n))if(null==t||0===t.length)c(e,n,r,o,i);else if(null==n||0===n.length)S(t,0,t.length);else{var l=null!=t[0]&&null!=t[0].key,a=null!=n[0]&&null!=n[0].key,u=0,h=0;if(s(n,a),!l)for(;h<t.length&&null==t[h];)h++;if(!a)for(;u<n.length&&null==n[u];)u++;if(null===a&&null==l)return;if(l!==a)S(t,h,t.length),f(e,n,u,n.length,r,o,i);else if(a){for(var p,v,k,C,j,z=t.length-1,A=n.length-1;z>=h&&A>=u&&(k=t[z],C=n[A],k.key===C.key);)k!==C&&m(e,k,C,r,o,i),null!=C.dom&&(o=C.dom),z--,A--;for(;z>=h&&A>=u&&(p=t[h],v=n[u],p.key===v.key);)h++,u++,p!==v&&m(e,p,v,r,b(t,h,o),i);for(;z>=h&&A>=u&&u!==A&&p.key===C.key&&k.key===v.key;)j=b(t,h,o),x(e,w(k),j),k!==v&&m(e,k,v,r,j,i),++u<=--A&&x(e,w(p),o),p!==C&&m(e,p,C,r,o,i),null!=C.dom&&(o=C.dom),h++,k=t[--z],C=n[A],p=t[h],v=n[u];for(;z>=h&&A>=u&&k.key===C.key;)k!==C&&m(e,k,C,r,o,i),null!=C.dom&&(o=C.dom),A--,k=t[--z],C=n[A];if(u>A)S(t,h,z+1);else if(h>z)f(e,n,u,A+1,r,o,i);else{var O,N,P=o,$=A-u+1,T=new Array($),I=0,R=0,L=2147483647,M=0;for(R=0;R<$;R++)T[R]=-1;for(R=A;R>=u;R--){null==O&&(O=y(t,h,z+1));var U=O[(C=n[R]).key];null!=U&&(L=U<L?U:-1,T[R-u]=U,k=t[U],t[U]=null,k!==C&&m(e,k,C,r,o,i),null!=C.dom&&(o=C.dom),M++)}if(o=P,M!==z-h+1&&S(t,h,z+1),0===M)f(e,n,u,A+1,r,o,i);else if(-1===L)for(I=(N=function(e){for(var t=[0],n=0,r=0,o=0,i=g.length=e.length,o=0;o<i;o++)g[o]=e[o];for(var o=0;o<i;++o)if(-1!==e[o]){var l=t[t.length-1];if(e[l]<e[o])g[o]=l,t.push(o);else{for(n=0,r=t.length-1;n<r;){var a=(n>>>1)+(r>>>1)+(n&r&1);e[t[a]]<e[o]?n=a+1:r=a}e[o]<e[t[n]]&&(n>0&&(g[o]=t[n-1]),t[n]=o)}}n=t.length,r=t[n-1];for(;n-- >0;)t[n]=r,r=g[r];return g.length=0,t}(T)).length-1,R=A;R>=u;R--)v=n[R],-1===T[R-u]?d(e,v,r,i,o):N[I]===R-u?I--:x(e,w(v),o),null!=v.dom&&(o=n[R].dom);else for(R=A;R>=u;R--)v=n[R],-1===T[R-u]&&d(e,v,r,i,o),null!=v.dom&&(o=n[R].dom)}}else{var D=t.length<n.length?t.length:n.length;for(u=u<h?u:h;u<D;u++)(p=t[u])===(v=n[u])||null==p&&null==v||(null==p?d(e,v,r,i,b(t,u+1,o)):null==v?E(p):m(e,p,v,r,b(t,u+1,o),i));t.length>D&&S(t,u,t.length),n.length>D&&f(e,n,u,n.length,r,o,i)}}}function m(t,n,r,o,l,u){var s=n.tag;if(s===r.tag){if(r.state=n.state,r.events=n.events,function(e,t){do{if(null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate){var n=a.call(e.attrs.onbeforeupdate,e,t);if(void 0!==n&&!n)break}if("string"!=typeof e.tag&&"function"==typeof e.state.onbeforeupdate){var n=a.call(e.state.onbeforeupdate,e,t);if(void 0!==n&&!n)break}return!1}while(0);return e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,e.attrs=t.attrs,e.children=t.children,e.text=t.text,!0}(r,n))return;if("string"==typeof s)switch(null!=r.attrs&&L(r.attrs,r,o),s){case"#":!function(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children);t.dom=e.dom}(n,r);break;case"<":!function(e,t,n,r,o){t.children!==n.children?(w(t),p(e,n,r,o)):(n.dom=t.dom,n.domSize=t.domSize)}(t,n,r,u,l);break;case"[":!function(e,t,n,r,o,i){v(e,t.children,n.children,r,o,i);var l=0,a=n.children;if(n.dom=null,null!=a){for(var u=0;u<a.length;u++){var s=a[u];null!=s&&null!=s.dom&&(null==n.dom&&(n.dom=s.dom),l+=s.domSize||1)}1!==l&&(n.domSize=l)}}(t,n,r,o,l,u);break;default:!function(t,n,r,o){var l=n.dom=t.dom;o=i(n)||o,"textarea"===n.tag&&(null==n.attrs&&(n.attrs={}),null!=n.text&&(n.attrs.value=n.text,n.text=void 0));(function(e,t,n,r){if(null!=n)for(var o in n)C(e,o,t&&t[o],n[o],r);var i;if(null!=t)for(var o in t)null==(i=t[o])||null!=n&&null!=n[o]||j(e,o,i,r)})(n,t.attrs,n.attrs,o),k(n)||(null!=t.text&&null!=n.text&&""!==n.text?t.text.toString()!==n.text.toString()&&(t.dom.firstChild.nodeValue=n.text):(null!=t.text&&(t.children=[e("#",void 0,void 0,t.text,void 0,t.dom.firstChild)]),null!=n.text&&(n.children=[e("#",void 0,void 0,n.text,void 0,void 0)]),v(l,t.children,n.children,r,null,o)))}(n,r,o,u)}else!function(t,n,r,o,i,l){if(r.instance=e.normalize(a.call(r.state.view,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");L(r.state,r,o),null!=r.attrs&&L(r.attrs,r,o);null!=r.instance?(null==n.instance?d(t,r.instance,o,l,i):m(t,n.instance,r.instance,o,i,l),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=n.instance?(E(n.instance),r.dom=void 0,r.domSize=0):(r.dom=n.dom,r.domSize=n.domSize)}(t,n,r,o,l,u)}else E(n),d(t,r,o,u,l)}function y(e,t,n){for(var r=Object.create(null);t<n;t++){var o=e[t];if(null!=o){var i=o.key;null!=i&&(r[i]=t)}}return r}var g=[];function w(e){var t=e.domSize;if(null!=t||null==e.dom){var n=r.createDocumentFragment();if(t>0){for(var o=e.dom;--t;)n.appendChild(o.nextSibling);n.insertBefore(o,n.firstChild)}return n}return e.dom}function b(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function x(e,t,n){null!=n?e.insertBefore(t,n):e.appendChild(t)}function k(e){if(null!=e.attrs&&(null!=e.attrs.contenteditable||null!=e.attrs.contentEditable)){var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=e.text||null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted")}}function S(e,t,n){for(var r=t;r<n;r++){var o=e[r];null!=o&&E(o)}}function E(e){var t,n=1,r=0,o=e.state;"string"!=typeof e.tag&&"function"==typeof e.state.onbeforeremove&&(null!=(t=a.call(e.state.onbeforeremove,e))&&"function"==typeof t.then&&(n++,t.then(i,i)));e.attrs&&"function"==typeof e.attrs.onbeforeremove&&(null!=(t=a.call(e.attrs.onbeforeremove,e))&&"function"==typeof t.then&&(n++,t.then(i,i)));function i(){if(++r===n&&(l(e,o),function e(t){"string"!=typeof t.tag&&"function"==typeof t.state.onremove&&a.call(t.state.onremove,t);t.attrs&&"function"==typeof t.attrs.onremove&&a.call(t.attrs.onremove,t);if("string"!=typeof t.tag)null!=t.instance&&e(t.instance);else{var n=t.children;if(Array.isArray(n))for(var r=0;r<n.length;r++){var o=n[r];null!=o&&e(o)}}}(e),e.dom)){for(var t=e.dom.parentNode,i=e.domSize||1;--i;)t.removeChild(e.dom.nextSibling);t.removeChild(e.dom)}}i()}function C(e,t,n,o,i){if("key"!==t&&"is"!==t&&null!=o&&!z(t)&&(n!==o||function(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===u()||"option"===e.tag&&e.dom.parentNode===r.activeElement}(e,t)||"object"==typeof o)){if("o"===t[0]&&"n"===t[1])return I(e,t,o);if("xlink:"===t.slice(0,6))e.dom.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(6),o);else if("style"===t)$(e.dom,n,o);else if(A(e,t,i)){if("value"===t){if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===""+o&&e.dom===u())return;if("select"===e.tag&&null!==n&&e.dom.value===""+o)return;if("option"===e.tag&&null!==n&&e.dom.value===""+o)return}"input"===e.tag&&"type"===t?e.dom.setAttribute(t,o):e.dom[t]=o}else"boolean"==typeof o?o?e.dom.setAttribute(t,""):e.dom.removeAttribute(t):e.dom.setAttribute("className"===t?"class":t,o)}}function j(e,t,n,r){if("key"!==t&&"is"!==t&&null!=n&&!z(t))if("o"!==t[0]||"n"!==t[1]||z(t))if("style"===t)$(e.dom,n,null);else if(!A(e,t,r)||"className"===t||"value"===t&&("option"===e.tag||"select"===e.tag&&-1===e.dom.selectedIndex&&e.dom===u())||"input"===e.tag&&"type"===t){var o=t.indexOf(":");-1!==o&&(t=t.slice(o+1)),!1!==n&&e.dom.removeAttribute("className"===t?"class":t)}else e.dom[t]=null;else I(e,t,void 0)}function z(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function A(e,t,n){return void 0===n&&(e.tag.indexOf("-")>-1||null!=e.attrs&&e.attrs.is||"href"!==t&&"list"!==t&&"form"!==t&&"width"!==t&&"height"!==t)&&t in e.dom}var O=/[A-Z]/g;function N(e){return"-"+e.toLowerCase()}function P(e){return"-"===e[0]&&"-"===e[1]?e:"cssFloat"===e?"float":e.replace(O,N)}function $(e,t,n){if(t===n);else if(null==n)e.style.cssText="";else if("object"!=typeof n)e.style.cssText=n;else if(null==t||"object"!=typeof t)for(var r in e.style.cssText="",n){null!=(o=n[r])&&e.style.setProperty(P(r),String(o))}else{for(var r in n){var o;null!=(o=n[r])&&(o=String(o))!==String(t[r])&&e.style.setProperty(P(r),o)}for(var r in t)null!=t[r]&&null==n[r]&&e.style.removeProperty(P(r))}}function T(){}function I(e,t,n){if(null!=e.events){if(e.events[t]===n)return;null==n||"function"!=typeof n&&"object"!=typeof n?(null!=e.events[t]&&e.dom.removeEventListener(t.slice(2),e.events,!1),e.events[t]=void 0):(null==e.events[t]&&e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=n)}else null==n||"function"!=typeof n&&"object"!=typeof n||(e.events=new T,e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=n)}function R(e,t,n){"function"==typeof e.oninit&&a.call(e.oninit,t),"function"==typeof e.oncreate&&n.push(a.bind(e.oncreate,t))}function L(e,t,n){"function"==typeof e.onupdate&&n.push(a.bind(e.onupdate,t))}return T.prototype=Object.create(null),T.prototype.handleEvent=function(e){var t,r=this["on"+e.type];"function"==typeof r?t=r.call(e.currentTarget,e):"function"==typeof r.handleEvent&&r.handleEvent(e),!1===e.redraw?e.redraw=void 0:"function"==typeof n&&n(),!1===t&&(e.preventDefault(),e.stopPropagation())},{render:function(t,n){if(!t)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var r=[],o=u(),i=t.namespaceURI;null==t.vnodes&&(t.textContent=""),n=e.normalizeChildren(Array.isArray(n)?n:[n]),v(t,t.vnodes,n,r,null,"http://www.w3.org/1999/xhtml"===i?void 0:i),t.vnodes=n,null!=o&&u()!==o&&"function"==typeof o.focus&&o.focus();for(var l=0;l<r.length;l++)r[l]()},setRedraw:function(e){return n=e}}};var p=function(e,t){var n=h(e),r=[],o=!1;function i(e){for(var t=0;t<r.length;t++){var o=r[t];if(o.k===e){r.splice(t,1),n.render(o.k,[]),"function"==typeof o.r&&o.r();break}}}function l(){if(o)throw new Error("Nested m.redraw.sync() call");o=!0;for(var e=0;e<r.length;e++)try{t=r[e],i=void 0,(i=t.c(t))!==t&&n.render(t.k,i)}catch(e){"undefined"!=typeof console&&console.error(e)}var t,i;o=!1}var a=(t||function(e){var t=null;return function(){null===t&&(t=requestAnimationFrame(function(){t=null,e()}))}})(l);return a.sync=l,n.setRedraw(a),{subscribe:function(e,t,o){var l={k:e,c:t,r:o};i(e),r.push(l);var a=l.c(l);a!==l&&n.render(l.k,a)},unsubscribe:i,redraw:a,render:n.render}}(window);d.setCompletionCallback(p.redraw);var v;a.mount=(v=p,function(t,n){if(null===n)v.unsubscribe(t);else{if(null==n.view&&"function"!=typeof n)throw new Error("m.mount(element, component) expects a component, not a vnode");v.subscribe(t,function(){return e(n)})}});var m=u,y=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},o=0;o<t.length;o++){var i=t[o].split("="),l=decodeURIComponent(i[0]),a=2===i.length?decodeURIComponent(i[1]):"";"true"===a?a=!0:"false"===a&&(a=!1);var u=l.split(/\]\[?|\[/),s=r;l.indexOf("[")>-1&&u.pop();for(var c=0;c<u.length;c++){var f=u[c],d=u[c+1],h=""==d||!isNaN(parseInt(d,10)),p=c===u.length-1;if(""===f)null==n[l=u.slice(0,c).join()]&&(n[l]=Array.isArray(s)?s.length:0),f=n[l]++;p?s[f]=a:null==s[f]&&(s[f]=h?[]:{}),s=s[f]}}return r},g=function(e){var t=e.indexOf("?"),n=e.indexOf("#"),r=n<0?e.length:n,o=t<0?r:t,i=e.slice(0,o).replace(/\/{2,}/g,"/");return i?("/"!==i[0]&&(i="/"+i),i.length>1&&"/"===i[i.length-1]&&(i=i.slice(0,-1))):i="/",{path:i,params:t<0?{}:y(e.slice(t+1,r))}},w={};a.route=function(t,n){var r,o,i,l,a=function(e){var t,n="function"==typeof setImmediate?setImmediate:setTimeout,r="function"==typeof e.history.pushState;return{prefix:"#!",getPath:function(){var t=e.location.hash;return"#"!==this.prefix[0]&&(t=e.location.search+t,"?"!==this.prefix[0]&&"/"!==(t=e.location.pathname+t)[0]&&(t="/"+t)),t.concat().replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent).slice(this.prefix.length)},setPath:function(n,r,o){if(n=f(n,r),null!=t){t();var i=o?o.state:null,l=o?o.title:null;o&&o.replace?e.history.replaceState(i,l,this.prefix+n):e.history.pushState(i,l,this.prefix+n)}else e.location.href=this.prefix+n},defineRoutes:function(o,i,l,a,u){var s,f,d=this,h=Object.keys(o).map(function(e){if("/"!==e[0])throw new SyntaxError("Routes must start with a `/`");if(/:([^\/\.-]+)(\.{3})?:/.test(e))throw new SyntaxError("Route parameter names must be separated with either `/`, `.`, or `-`");return{route:e,component:o[e],check:(t=e,n=g(t),r=Object.keys(n.params),i=[],l=new RegExp("^"+n.path.replace(/:([^\/.-]+)(\.{3}|\.(?!\.)|-)?|[\\^$*+.()|\[\]{}]/g,function(e,t,n){return null==t?"\\"+e:(i.push({k:t,r:"..."===n}),"..."===n?"(.*)":"."===n?"([^/]+)\\.":"([^/]+)"+(n||""))})+"$"),function(e){for(var t=0;t<r.length;t++)if(n.params[r[t]]!==e.params[r[t]])return!1;if(!i.length)return l.test(e.path);var o=l.exec(e.path);if(null==o)return!1;for(t=0;t<i.length;t++)e.params[i[t].k]=i[t].r?o[t+1]:decodeURIComponent(o[t+1]);return!0})};var t,n,r,i,l});if(t=null,null!=a){var p=g(a);if(!h.some(function(e){return e.check(p)}))throw new ReferenceError("Default route doesn't match any known routes")}function v(){var t=d.getPath(),n=g(t);c(n.params,e.history.state);for(var r=0;r<h.length;r++)if(h[r].check(n))return void i(h[r].component,n.params,t,h[r].route);l(t,n.params)}r?(s=function(){e.removeEventListener("popstate",t,!1)},e.addEventListener("popstate",t=function(){f||(f=n(function(){f=null,v()}))},!1)):"#"===this.prefix[0]&&(s=function(){e.removeEventListener("hashchange",v,!1)},e.addEventListener("hashchange",v,!1)),u(s),v()}}}(t),u=w,s=function(t,s,c){if(null==t)throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined");var f=!1,d=function(e){if(e===s)throw new Error("Could not resolve default route "+s);a.setPath(s,null,{replace:!0})};function h(){if(f=!0,w!==u){var t=e(r,o.key,o);return u&&(t=u.render(t)),t}}a.defineRoutes(c,function(e,t,a,s){var c=l=function(e,s){c===l&&(r=null==s||"function"!=typeof s.view&&"function"!=typeof s?"div":s,o=t,i=a,l=null,u=e.render?e:null,f?n.redraw():(f=!0,n.redraw.sync()))};e.view||"function"==typeof e?c({},e):e.onmatch?m.resolve(e.onmatch(t,a,s)).then(function(t){c(e,t)},function(){d(a)}):c(e,"div")},d,s,function(e){n.subscribe(t,function(e){return e.c=h,e},e)})};s.set=function(e,t,n){null!=l&&((n=n||{}).replace=!0),l=null,a.setPath(e,t,n)},s.get=function(){return i},s.prefix=function(e){a.prefix=e};var d=function(e,t){t.dom.setAttribute("href",a.prefix+t.attrs.href),t.dom.onclick=function(t){if(!(t.ctrlKey||t.metaKey||t.shiftKey||2===t.which)){t.preventDefault(),t.redraw=!1;var n=this.getAttribute("href");0===n.indexOf(a.prefix)&&(n=n.slice(a.prefix.length)),s.set(n,void 0,e)}}};return s.link=function(e){return null==e.tag?d.bind(d,e):d({},e)},s.param=function(e){return void 0!==o&&void 0!==e?o[e]:o},s}(window,p);var b=h(window);a.render=b.render,a.redraw=p.redraw,a.request=d.request,a.jsonp=d.jsonp,a.parseQueryString=y,a.buildQueryString=s,a.parsePathname=g,a.buildPathname=f,a.version="2.0.0-rc.7",a.vnode=e,a.PromisePolyfill=u,"undefined"!=typeof module?module.exports=a:window.m=a}();