Compiled circular view error catch
This commit is contained in:
parent
f2f8bf825e
commit
df04dacf2d
2 changed files with 24 additions and 24 deletions
|
|
@ -166,6 +166,8 @@ var renderService = function($window) {
|
|||
initLifecycle(vnode.tag, vnode, hooks)
|
||||
vnode.instance = Vnode.normalize(vnode.tag.view.call(vnode.state, vnode))
|
||||
if (vnode.instance != null) {
|
||||
if(vnode.instance === vnode)
|
||||
throw Error("A component view mustn't return the vnode that was supplied to it.")
|
||||
var element = createNode(vnode.instance, hooks, ns)
|
||||
vnode.dom = vnode.instance.dom
|
||||
vnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0
|
||||
|
|
@ -184,7 +186,6 @@ var renderService = function($window) {
|
|||
else {
|
||||
var recycling = isRecyclable(old, vnodes)
|
||||
if (recycling) old = old.concat(old.pool)
|
||||
|
||||
if (old.length === vnodes.length && vnodes[0] != null && vnodes[0].key == null) {
|
||||
for (var i = 0; i < old.length; i++) {
|
||||
if (old[i] === vnodes[i] || old[i] == null && vnodes[i] == null) continue
|
||||
|
|
@ -575,7 +576,6 @@ var renderService = function($window) {
|
|||
function render(dom, vnodes) {
|
||||
var hooks = []
|
||||
var active = $doc.activeElement
|
||||
|
||||
// First time rendering into a node clears it out
|
||||
if (dom.vnodes == null) dom.textContent = ""
|
||||
if (!(vnodes instanceof Array)) vnodes = [vnodes]
|
||||
|
|
|
|||
44
mithril.min.js
vendored
44
mithril.min.js
vendored
|
|
@ -3,28 +3,28 @@ n[e[4]]=h||!0)}0<g.length&&(n.className=g.join(" "));F[d]=function(d,e){var c=!1
|
|||
arguments[1]instanceof Array)?g=1:(l=arguments[1],g=2);if(arguments.length===g+1)e=arguments[g]instanceof Array?arguments[g]:[arguments[g]];else for(e=[];g<arguments.length;g++)e.push(arguments[g]);return"string"===typeof d?F[d](l||{},t.normalizeChildren(e)):t(d,l&&l.key,l||{},t.normalizeChildren(e),void 0,void 0)}t.normalize=function(d){return d instanceof Array?t("[",void 0,void 0,t.normalizeChildren(d),void 0,void 0):null!=d&&"object"!==typeof d?t("#",void 0,void 0,d,void 0,void 0):d};t.normalizeChildren=
|
||||
function(d){for(var e=0;e<d.length;e++)d[e]=t.normalize(d[e]);return d};var O=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,F={};x.trust=function(d){return t("<",void 0,void 0,d,void 0,void 0)};x.fragment=function(d,e){return t("[",d.key,d,t.normalizeChildren(e),void 0,void 0)};var H=function(d){function e(b,a,f,d,c,e,p){for(;f<d;f++){var r=a[f];null!=r&&w(b,q(r,c,p),e)}}function q(b,a,f){var d=b.tag;null!=b.attrs&&x(b.attrs,b,a);if("string"===typeof d)switch(d){case "#":return b.dom=
|
||||
y.createTextNode(b.children);case "<":return g(b);case "[":var c=y.createDocumentFragment();null!=b.children&&(d=b.children,e(c,d,0,d.length,a,null,f));b.dom=c.firstChild;b.domSize=c.childNodes.length;return c;default:var h=b.tag;switch(b.tag){case "svg":f="http://www.w3.org/2000/svg";break;case "math":f="http://www.w3.org/1998/Math/MathML"}var p=(d=b.attrs)&&d.is,h=f?p?y.createElementNS(f,h,{is:p}):y.createElementNS(f,h):p?y.createElement(h,{is:p}):y.createElement(h);b.dom=h;if(null!=d)for(c in p=
|
||||
f,d)u(b,c,null,d[c],p);null!=b.text&&(""!==b.text?h.textContent=b.text:b.children=[t("#",void 0,void 0,b.text,void 0,void 0)]);null!=b.children&&(c=b.children,e(h,c,0,c.length,a,null,f),a=b.attrs,"select"===b.tag&&null!=a&&("value"in a&&u(b,"value",null,a.value,void 0),"selectedIndex"in a&&u(b,"selectedIndex",null,a.selectedIndex,void 0)));return h}else return b.state||(b.state={}),P(b.state,b.tag),x(b.tag,b,a),b.instance=t.normalize(b.tag.view.call(b.state,b)),null!=b.instance?(a=q(b.instance,a,
|
||||
f),b.dom=b.instance.dom,b.domSize=null!=b.dom?b.instance.domSize:0,b=a):(b.domSize=0,b=C),b}function g(b){var a={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(b.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",a=y.createElement(a);a.innerHTML=b.children;b.dom=a.firstChild;b.domSize=a.childNodes.length;b=y.createDocumentFragment();for(var f;f=a.firstChild;)b.appendChild(f);return b}function n(b,a,f,d,c,u){if(a!==f&&(null!=a||null!=
|
||||
f))if(null==a)e(b,f,0,f.length,d,c,void 0);else if(null==f)z(b,a,0,a.length,f);else{var p;a:{if(null!=a.pool&&Math.abs(a.pool.length-f.length)<=Math.abs(a.length-f.length)&&(p=f[0]&&f[0].children&&f[0].children.length||0,Math.abs((a.pool[0]&&a.pool[0].children&&a.pool[0].children.length||0)-p)<=Math.abs((a[0]&&a[0].children&&a[0].children.length||0)-p))){p=!0;break a}p=!1}p&&(a=a.concat(a.pool));if(a.length===f.length&&null!=f[0]&&null==f[0].key)for(var r=0;r<a.length;r++)a[r]===f[r]||null==a[r]&&
|
||||
null==f[r]||(null==a[r]?w(b,q(f[r],d,u),l(a,r+1,c)):null==f[r]?z(b,a,r,r+1,f):h(b,a[r],f[r],d,l(a,r+1,c),p,u),p&&a[r].tag===f[r].tag&&w(b,m(a[r]),l(a,r+1,c)));else{for(var B=r=0,g=a.length-1,A=f.length-1,n;g>=r&&A>=B;){var k=a[r],v=f[B];if(k===v)r++,B++;else if(null!=k&&null!=v&&k.key===v.key)r++,B++,h(b,k,v,d,l(a,r,c),p,u),p&&k.tag===v.tag&&w(b,m(k),c);else if(k=a[g],k===v)g--,B++;else if(null!=k&&null!=v&&k.key===v.key)h(b,k,v,d,l(a,g+1,c),p,u),B<A&&w(b,m(k),l(a,r,c)),g--,B++;else break}for(;g>=
|
||||
r&&A>=B;){k=a[g];v=f[A];if(k===v)g--;else if(null!=k&&null!=v&&k.key===v.key)h(b,k,v,d,l(a,g+1,c),p,u),p&&k.tag===v.tag&&w(b,m(k),c),null!=k.dom&&(c=k.dom),g--;else{if(!n){n=a;var k=g,t={},y;for(y=0;y<k;y++){var x=n[y];null!=x&&(x=x.key,null!=x&&(t[x]=y))}n=t}null!=v&&(k=n[v.key],null!=k?(t=a[k],h(b,t,v,d,l(a,g+1,c),p,u),w(b,m(t),c),a[k].skip=!0,null!=t.dom&&(c=t.dom)):(v=q(v,d,void 0),w(b,v,c),c=v))}A--;if(A<B)break}e(b,f,B,A+1,d,c,u);z(b,a,r,g+1,f)}}}function h(b,a,f,c,d,e,p){var r=a.tag;if(r===
|
||||
f.tag){f.state=a.state;f.events=a.events;var k;var z;null!=f.attrs&&"function"===typeof f.attrs.onbeforeupdate&&(k=f.attrs.onbeforeupdate.call(f.state,f,a));"string"!==typeof f.tag&&"function"===typeof f.tag.onbeforeupdate&&(z=f.tag.onbeforeupdate.call(f.state,f,a));void 0===k&&void 0===z||k||z?k=!1:(f.dom=a.dom,f.domSize=a.domSize,f.instance=a.instance,k=!0);if(!k)if(null!=f.attrs&&I(f.attrs,f,c,e),"string"===typeof r)switch(r){case "#":a.children.toString()!==f.children.toString()&&(a.dom.nodeValue=
|
||||
f.children);f.dom=a.dom;break;case "<":a.children!==f.children?(m(a),w(b,g(f),d)):(f.dom=a.dom,f.domSize=a.domSize);break;case "[":n(b,a.children,f.children,c,d,p);a=0;c=f.children;f.dom=null;if(null!=c){for(var l=0;l<c.length;l++)b=c[l],null!=b&&null!=b.dom&&(null==f.dom&&(f.dom=b.dom),a+=b.domSize||1);1!==a&&(f.domSize=a)}break;default:b=p;d=f.dom=a.dom;switch(f.tag){case "svg":b="http://www.w3.org/2000/svg";break;case "math":b="http://www.w3.org/1998/Math/MathML"}"textarea"===f.tag&&(null==f.attrs&&
|
||||
(f.attrs={}),null!=f.text&&(f.attrs.value=f.text));e=a.attrs;p=f.attrs;r=b;if(null!=p)for(l in p)u(f,l,e&&e[l],p[l],r);if(null!=e)for(l in e)null!=p&&l in p||("o"!==l[0]||"n"!==l[1]||v(l)?"key"!==l&&f.dom.removeAttribute(l):K(f,l,void 0));null!=a.text&&null!=f.text&&""!==f.text?a.text.toString()!==f.text.toString()&&(a.dom.firstChild.nodeValue=f.text):(null!=a.text&&(a.children=[t("#",void 0,void 0,a.text,void 0,a.dom.firstChild)]),null!=f.text&&(f.children=[t("#",void 0,void 0,f.text,void 0,void 0)]),
|
||||
n(d,a.children,f.children,c,null,b))}else f.instance=t.normalize(f.tag.view.call(f.state,f)),I(f.tag,f,c,e),null!=f.instance?(null==a.instance?w(b,q(f.instance,c,p),d):h(b,a.instance,f.instance,c,d,e,p),f.dom=f.instance.dom,f.domSize=f.instance.domSize):null!=a.instance?(A(b,a.instance,null),f.dom=void 0,f.domSize=0):(f.dom=a.dom,f.domSize=a.domSize)}else A(b,a,null),w(b,q(f,c,void 0),d)}function m(b){var a=b.domSize;if(null!=a||null==b.dom){var f=y.createDocumentFragment();if(0<a){for(b=b.dom;--a;)f.appendChild(b.nextSibling);
|
||||
f.insertBefore(b,f.firstChild)}return f}return b.dom}function l(b,a,f){for(;a<b.length;a++)if(null!=b[a]&&null!=b[a].dom)return b[a].dom;return f}function w(b,a,f){f&&f.parentNode?b.insertBefore(a,f):b.appendChild(a)}function z(b,a,f,c,d){for(;f<c;f++){var e=a[f];null!=e&&(e.skip?e.skip=!1:A(b,e,d))}}function c(b){var a=!1;return function(){a||(a=!0,b())}}function A(b,a,f){function d(){if(++g===e&&(k(a),a.dom)){var p=a.domSize||1;if(1<p)for(var c=a.dom;--p;)b.removeChild(c.nextSibling);null!=a.dom.parentNode&&
|
||||
b.removeChild(a.dom);if(p=null!=f&&null==a.domSize)p=a.attrs,p=!(null!=p&&(p.oncreate||p.onupdate||p.onbeforeremove||p.onremove));p&&"string"===typeof a.tag&&(f.pool?f.pool.push(a):f.pool=[a])}}var e=1,g=0;a.attrs&&a.attrs.onbeforeremove&&(e++,a.attrs.onbeforeremove.call(a.state,a,c(d)));"string"!==typeof a.tag&&a.tag.onbeforeremove&&(e++,a.tag.onbeforeremove.call(a.state,a,c(d)));d()}function k(b){b.attrs&&b.attrs.onremove&&b.attrs.onremove.call(b.state,b);"string"!==typeof b.tag&&b.tag.onremove&&
|
||||
b.tag.onremove.call(b.state,b);if(null!=b.instance)k(b.instance);else if(b=b.children,b instanceof Array)for(var a=0;a<b.length;a++){var f=b[a];null!=f&&k(f)}}function u(b,a,f,c,d){var e=b.dom;if("key"!==a&&(f!==c||"value"===a||"checked"===a||"selectedIndex"===a||"selected"===a&&b.dom===y.activeElement||"object"===typeof c)&&"undefined"!==typeof c&&!v(a)){var p=a.indexOf(":");if(-1<p&&"xlink"===a.substr(0,p))e.setAttributeNS("http://www.w3.org/1999/xlink",a.slice(p+1),c);else if("o"===a[0]&&"n"===
|
||||
a[1]&&"function"===typeof c)K(b,a,c);else if("style"===a)if(b=f,b===c&&(e.style.cssText="",b=null),null==c)e.style.cssText="";else if("string"===typeof c)e.style.cssText=c;else{"string"===typeof b&&(e.style.cssText="");for(var r in c)e.style[r]=c[r];if(null!=b&&"string"!==typeof b)for(r in b)r in c||(e.style[r]="")}else if(a in e&&"href"!==a&&"list"!==a&&"form"!==a&&void 0===d){if("input"!==b.tag||"value"!==a||b.dom.value!==c||b.dom!==y.activeElement)e[a]=c}else"boolean"===typeof c?c?e.setAttribute(a,
|
||||
""):e.removeAttribute(a):e.setAttribute("className"===a?"class":a,c)}}function v(b){return"oninit"===b||"oncreate"===b||"onupdate"===b||"onremove"===b||"onbeforeremove"===b||"onbeforeupdate"===b}function K(b,a,c){var d=b.dom,e=function(a){var b=c.call(d,a);"function"===typeof G&&G.call(d,a);return b};if(a in d)d[a]=e;else{var k=a.slice(2);void 0===b.events&&(b.events={});null!=b.events[a]&&d.removeEventListener(k,b.events[a],!1);"function"===typeof c&&(b.events[a]=e,d.addEventListener(k,b.events[a],
|
||||
!1))}}function x(b,a,c){"function"===typeof b.oninit&&b.oninit.call(a.state,a);"function"===typeof b.oncreate&&c.push(b.oncreate.bind(a.state,a))}function I(b,a,c,d){d?x(b,a,c):"function"===typeof b.onupdate&&c.push(b.onupdate.bind(a.state,a))}function P(b,a){Object.keys(a).forEach(function(c){b[c]=a[c]})}var y=d.document,C=y.createDocumentFragment(),G;return{render:function(b,a){var c=[],d=y.activeElement;null==b.vnodes&&(b.textContent="");a instanceof Array||(a=[a]);n(b,b.vnodes,t.normalizeChildren(a),
|
||||
c,null,void 0);b.vnodes=a;for(var e=0;e<c.length;e++)c[e]();y.activeElement!==d&&d.focus()},setEventCallback:function(b){return G=b}}}(window),E=function(d){function e(d,g){if(g instanceof Array)for(var m=0;m<g.length;m++)e(d+"["+m+"]",g[m]);else if("[object Object]"===Object.prototype.toString.call(g))for(m in g)e(d+"["+m+"]",g[m]);else q.push(encodeURIComponent(d)+(null!=g&&""!==g?"="+encodeURIComponent(g):""))}if("[object Object]"!==Object.prototype.toString.call(d))return"";var q=[],g;for(g in d)e(g,
|
||||
d[g]);return q.join("&")},L=function(d){function e(){function a(){0<arguments.length&&arguments[0]!==D&&g(a,arguments[0],void 0);return a._state.value}q(a,arguments);0<arguments.length&&arguments[0]!==D&&g(a,arguments[0],void 0);return a}function q(a,b){a.constructor=e;a._state={id:H++,value:void 0,error:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],errorStream:void 0,endStream:void 0};a.map=I;a.ap=C;a.of=e;a.valueOf=y;a.toJSON=F;a.toString=y;a.run=c;a["catch"]=A;Object.defineProperties(a,
|
||||
{error:{get:function(){if(!a._state.errorStream){var b=function(){0<arguments.length&&arguments[0]!==D&&g(a,void 0,arguments[0]);return a._state.error};q(b,[]);v(b,[a],E,E);a._state.errorStream=b}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var b=e();b.map(function(c){!0===c&&(x(a),x(b));return c});a._state.endStream=b}return a._state.endStream}}})}function g(a,b,c){n(a,b,c);for(var d in a._state.deps)m(a._state.deps[d],!1);a._state.changed=!1;for(var f in a._state.deps)a._state.deps[f]._state.changed=
|
||||
!1}function n(a,b,c){c=w(b,c);if(void 0!==c&&"function"===typeof a._state.recover){if(!l(a,h,!0))return}else h(a,b,c);a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function h(a,b,c){a._state.value=b;a._state.error=c}function m(a,c){var d=a._state.parents;0<d.length&&d.filter(G).length===d.length&&(c||0<d.filter(b).length)&&(d=d.filter(f),0<d.length?n(a,void 0,d[0]._state.error):l(a,n,!1))}function l(a,b,c){try{var d=c?a._state.recover():a._state.derive();if(d===D)return!1;b(a,d,void 0)}catch(f){b(a,
|
||||
void 0,null!=f.__error?f.__error:f),null==f.__error&&z(a,f)}return!0}function w(a,b){null!=a&&a.constructor===e&&(b=void 0!==a._state.error?a._state.error:w(a._state.value,a._state.error));return b}function z(a,b){0===Object.keys(a._state.deps).length&&setTimeout(function(){0===Object.keys(a._state.deps).length&&d(b)},0)}function c(a){var b=e(),c=this;return v(b,[c],function(){return u(b,a(c()))},void 0)}function A(a){var b=e(),c=this;return v(b,[c],function(){return c._state.value},function(){return u(b,
|
||||
a(c._state.error))})}function k(a,c){return v(e(),c,function(){var d=c.filter(f);if(0<d.length)throw{__error:d[0]._state.error};return a.apply(this,c.concat([c.filter(b)]))},void 0)}function u(a,b){if(null!=b&&b.constructor===e){var c=b,d=function(){n(a,c._state.value,c._state.error);for(var b in a._state.deps)m(a._state.deps[b],!1)};c.map(d)["catch"](function(a){d();throw{__error:a};});if(0===c._state.state)return D;if(c._state.error)throw{__error:c._state.error};b=c._state.value}return b}function v(b,
|
||||
c,d,f){var e=b._state;e.derive=d;e.recover=f;e.parents=c.filter(a);t(b,e.parents);m(b,!0);return b}function t(a,b){for(var c=0;c<b.length;c++)b[c]._state.deps[a._state.id]=a,t(a,b[c]._state.parents)}function x(a){for(var b=0;b<a._state.parents.length;b++)delete a._state.parents[b]._state.deps[a._state.id];for(var c in a._state.deps){var b=a._state.deps[c],d=b._state.parents.indexOf(a);-1<d&&b._state.parents.splice(d,1)}a._state.state=2;a._state.deps={}}function I(a){return k(function(b){return a(b())},
|
||||
f,d)u(b,c,null,d[c],p);null!=b.text&&(""!==b.text?h.textContent=b.text:b.children=[t("#",void 0,void 0,b.text,void 0,void 0)]);null!=b.children&&(c=b.children,e(h,c,0,c.length,a,null,f),a=b.attrs,"select"===b.tag&&null!=a&&("value"in a&&u(b,"value",null,a.value,void 0),"selectedIndex"in a&&u(b,"selectedIndex",null,a.selectedIndex,void 0)));return h}else{b.state||(b.state={});P(b.state,b.tag);x(b.tag,b,a);b.instance=t.normalize(b.tag.view.call(b.state,b));if(null!=b.instance){if(b.instance===b)throw Error("A component view mustn't return the vnode that was supplied to it.");
|
||||
a=q(b.instance,a,f);b.dom=b.instance.dom;b.domSize=null!=b.dom?b.instance.domSize:0;b=a}else b.domSize=0,b=C;return b}}function g(b){var a={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(b.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",a=y.createElement(a);a.innerHTML=b.children;b.dom=a.firstChild;b.domSize=a.childNodes.length;b=y.createDocumentFragment();for(var f;f=a.firstChild;)b.appendChild(f);return b}function n(b,a,f,d,
|
||||
c,u){if(a!==f&&(null!=a||null!=f))if(null==a)e(b,f,0,f.length,d,c,void 0);else if(null==f)z(b,a,0,a.length,f);else{var p;a:{if(null!=a.pool&&Math.abs(a.pool.length-f.length)<=Math.abs(a.length-f.length)&&(p=f[0]&&f[0].children&&f[0].children.length||0,Math.abs((a.pool[0]&&a.pool[0].children&&a.pool[0].children.length||0)-p)<=Math.abs((a[0]&&a[0].children&&a[0].children.length||0)-p))){p=!0;break a}p=!1}p&&(a=a.concat(a.pool));if(a.length===f.length&&null!=f[0]&&null==f[0].key)for(var r=0;r<a.length;r++)a[r]===
|
||||
f[r]||null==a[r]&&null==f[r]||(null==a[r]?w(b,q(f[r],d,u),l(a,r+1,c)):null==f[r]?z(b,a,r,r+1,f):h(b,a[r],f[r],d,l(a,r+1,c),p,u),p&&a[r].tag===f[r].tag&&w(b,m(a[r]),l(a,r+1,c)));else{for(var B=r=0,g=a.length-1,A=f.length-1,n;g>=r&&A>=B;){var k=a[r],v=f[B];if(k===v)r++,B++;else if(null!=k&&null!=v&&k.key===v.key)r++,B++,h(b,k,v,d,l(a,r,c),p,u),p&&k.tag===v.tag&&w(b,m(k),c);else if(k=a[g],k===v)g--,B++;else if(null!=k&&null!=v&&k.key===v.key)h(b,k,v,d,l(a,g+1,c),p,u),B<A&&w(b,m(k),l(a,r,c)),g--,B++;
|
||||
else break}for(;g>=r&&A>=B;){k=a[g];v=f[A];if(k===v)g--;else if(null!=k&&null!=v&&k.key===v.key)h(b,k,v,d,l(a,g+1,c),p,u),p&&k.tag===v.tag&&w(b,m(k),c),null!=k.dom&&(c=k.dom),g--;else{if(!n){n=a;var k=g,t={},y;for(y=0;y<k;y++){var x=n[y];null!=x&&(x=x.key,null!=x&&(t[x]=y))}n=t}null!=v&&(k=n[v.key],null!=k?(t=a[k],h(b,t,v,d,l(a,g+1,c),p,u),w(b,m(t),c),a[k].skip=!0,null!=t.dom&&(c=t.dom)):(v=q(v,d,void 0),w(b,v,c),c=v))}A--;if(A<B)break}e(b,f,B,A+1,d,c,u);z(b,a,r,g+1,f)}}}function h(b,a,f,c,d,e,p){var r=
|
||||
a.tag;if(r===f.tag){f.state=a.state;f.events=a.events;var k;var z;null!=f.attrs&&"function"===typeof f.attrs.onbeforeupdate&&(k=f.attrs.onbeforeupdate.call(f.state,f,a));"string"!==typeof f.tag&&"function"===typeof f.tag.onbeforeupdate&&(z=f.tag.onbeforeupdate.call(f.state,f,a));void 0===k&&void 0===z||k||z?k=!1:(f.dom=a.dom,f.domSize=a.domSize,f.instance=a.instance,k=!0);if(!k)if(null!=f.attrs&&I(f.attrs,f,c,e),"string"===typeof r)switch(r){case "#":a.children.toString()!==f.children.toString()&&
|
||||
(a.dom.nodeValue=f.children);f.dom=a.dom;break;case "<":a.children!==f.children?(m(a),w(b,g(f),d)):(f.dom=a.dom,f.domSize=a.domSize);break;case "[":n(b,a.children,f.children,c,d,p);a=0;c=f.children;f.dom=null;if(null!=c){for(var l=0;l<c.length;l++)b=c[l],null!=b&&null!=b.dom&&(null==f.dom&&(f.dom=b.dom),a+=b.domSize||1);1!==a&&(f.domSize=a)}break;default:b=p;d=f.dom=a.dom;switch(f.tag){case "svg":b="http://www.w3.org/2000/svg";break;case "math":b="http://www.w3.org/1998/Math/MathML"}"textarea"===
|
||||
f.tag&&(null==f.attrs&&(f.attrs={}),null!=f.text&&(f.attrs.value=f.text));e=a.attrs;p=f.attrs;r=b;if(null!=p)for(l in p)u(f,l,e&&e[l],p[l],r);if(null!=e)for(l in e)null!=p&&l in p||("o"!==l[0]||"n"!==l[1]||v(l)?"key"!==l&&f.dom.removeAttribute(l):K(f,l,void 0));null!=a.text&&null!=f.text&&""!==f.text?a.text.toString()!==f.text.toString()&&(a.dom.firstChild.nodeValue=f.text):(null!=a.text&&(a.children=[t("#",void 0,void 0,a.text,void 0,a.dom.firstChild)]),null!=f.text&&(f.children=[t("#",void 0,void 0,
|
||||
f.text,void 0,void 0)]),n(d,a.children,f.children,c,null,b))}else f.instance=t.normalize(f.tag.view.call(f.state,f)),I(f.tag,f,c,e),null!=f.instance?(null==a.instance?w(b,q(f.instance,c,p),d):h(b,a.instance,f.instance,c,d,e,p),f.dom=f.instance.dom,f.domSize=f.instance.domSize):null!=a.instance?(A(b,a.instance,null),f.dom=void 0,f.domSize=0):(f.dom=a.dom,f.domSize=a.domSize)}else A(b,a,null),w(b,q(f,c,void 0),d)}function m(b){var a=b.domSize;if(null!=a||null==b.dom){var f=y.createDocumentFragment();
|
||||
if(0<a){for(b=b.dom;--a;)f.appendChild(b.nextSibling);f.insertBefore(b,f.firstChild)}return f}return b.dom}function l(b,a,f){for(;a<b.length;a++)if(null!=b[a]&&null!=b[a].dom)return b[a].dom;return f}function w(b,a,f){f&&f.parentNode?b.insertBefore(a,f):b.appendChild(a)}function z(b,a,f,c,d){for(;f<c;f++){var e=a[f];null!=e&&(e.skip?e.skip=!1:A(b,e,d))}}function c(b){var a=!1;return function(){a||(a=!0,b())}}function A(b,a,f){function d(){if(++g===e&&(k(a),a.dom)){var p=a.domSize||1;if(1<p)for(var c=
|
||||
a.dom;--p;)b.removeChild(c.nextSibling);null!=a.dom.parentNode&&b.removeChild(a.dom);if(p=null!=f&&null==a.domSize)p=a.attrs,p=!(null!=p&&(p.oncreate||p.onupdate||p.onbeforeremove||p.onremove));p&&"string"===typeof a.tag&&(f.pool?f.pool.push(a):f.pool=[a])}}var e=1,g=0;a.attrs&&a.attrs.onbeforeremove&&(e++,a.attrs.onbeforeremove.call(a.state,a,c(d)));"string"!==typeof a.tag&&a.tag.onbeforeremove&&(e++,a.tag.onbeforeremove.call(a.state,a,c(d)));d()}function k(b){b.attrs&&b.attrs.onremove&&b.attrs.onremove.call(b.state,
|
||||
b);"string"!==typeof b.tag&&b.tag.onremove&&b.tag.onremove.call(b.state,b);if(null!=b.instance)k(b.instance);else if(b=b.children,b instanceof Array)for(var a=0;a<b.length;a++){var f=b[a];null!=f&&k(f)}}function u(b,a,f,c,d){var e=b.dom;if("key"!==a&&(f!==c||"value"===a||"checked"===a||"selectedIndex"===a||"selected"===a&&b.dom===y.activeElement||"object"===typeof c)&&"undefined"!==typeof c&&!v(a)){var p=a.indexOf(":");if(-1<p&&"xlink"===a.substr(0,p))e.setAttributeNS("http://www.w3.org/1999/xlink",
|
||||
a.slice(p+1),c);else if("o"===a[0]&&"n"===a[1]&&"function"===typeof c)K(b,a,c);else if("style"===a)if(b=f,b===c&&(e.style.cssText="",b=null),null==c)e.style.cssText="";else if("string"===typeof c)e.style.cssText=c;else{"string"===typeof b&&(e.style.cssText="");for(var r in c)e.style[r]=c[r];if(null!=b&&"string"!==typeof b)for(r in b)r in c||(e.style[r]="")}else if(a in e&&"href"!==a&&"list"!==a&&"form"!==a&&void 0===d){if("input"!==b.tag||"value"!==a||b.dom.value!==c||b.dom!==y.activeElement)e[a]=
|
||||
c}else"boolean"===typeof c?c?e.setAttribute(a,""):e.removeAttribute(a):e.setAttribute("className"===a?"class":a,c)}}function v(b){return"oninit"===b||"oncreate"===b||"onupdate"===b||"onremove"===b||"onbeforeremove"===b||"onbeforeupdate"===b}function K(b,a,c){var d=b.dom,e=function(a){var b=c.call(d,a);"function"===typeof G&&G.call(d,a);return b};if(a in d)d[a]=e;else{var k=a.slice(2);void 0===b.events&&(b.events={});null!=b.events[a]&&d.removeEventListener(k,b.events[a],!1);"function"===typeof c&&
|
||||
(b.events[a]=e,d.addEventListener(k,b.events[a],!1))}}function x(b,a,c){"function"===typeof b.oninit&&b.oninit.call(a.state,a);"function"===typeof b.oncreate&&c.push(b.oncreate.bind(a.state,a))}function I(b,a,c,d){d?x(b,a,c):"function"===typeof b.onupdate&&c.push(b.onupdate.bind(a.state,a))}function P(b,a){Object.keys(a).forEach(function(c){b[c]=a[c]})}var y=d.document,C=y.createDocumentFragment(),G;return{render:function(b,a){var c=[],d=y.activeElement;null==b.vnodes&&(b.textContent="");a instanceof
|
||||
Array||(a=[a]);n(b,b.vnodes,t.normalizeChildren(a),c,null,void 0);b.vnodes=a;for(var e=0;e<c.length;e++)c[e]();y.activeElement!==d&&d.focus()},setEventCallback:function(b){return G=b}}}(window),E=function(d){function e(d,g){if(g instanceof Array)for(var m=0;m<g.length;m++)e(d+"["+m+"]",g[m]);else if("[object Object]"===Object.prototype.toString.call(g))for(m in g)e(d+"["+m+"]",g[m]);else q.push(encodeURIComponent(d)+(null!=g&&""!==g?"="+encodeURIComponent(g):""))}if("[object Object]"!==Object.prototype.toString.call(d))return"";
|
||||
var q=[],g;for(g in d)e(g,d[g]);return q.join("&")},L=function(d){function e(){function a(){0<arguments.length&&arguments[0]!==D&&g(a,arguments[0],void 0);return a._state.value}q(a,arguments);0<arguments.length&&arguments[0]!==D&&g(a,arguments[0],void 0);return a}function q(a,b){a.constructor=e;a._state={id:H++,value:void 0,error:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],errorStream:void 0,endStream:void 0};a.map=I;a.ap=C;a.of=e;a.valueOf=y;a.toJSON=F;a.toString=y;a.run=c;a["catch"]=
|
||||
A;Object.defineProperties(a,{error:{get:function(){if(!a._state.errorStream){var b=function(){0<arguments.length&&arguments[0]!==D&&g(a,void 0,arguments[0]);return a._state.error};q(b,[]);v(b,[a],E,E);a._state.errorStream=b}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var b=e();b.map(function(c){!0===c&&(x(a),x(b));return c});a._state.endStream=b}return a._state.endStream}}})}function g(a,b,c){n(a,b,c);for(var d in a._state.deps)m(a._state.deps[d],!1);a._state.changed=
|
||||
!1;for(var f in a._state.deps)a._state.deps[f]._state.changed=!1}function n(a,b,c){c=w(b,c);if(void 0!==c&&"function"===typeof a._state.recover){if(!l(a,h,!0))return}else h(a,b,c);a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function h(a,b,c){a._state.value=b;a._state.error=c}function m(a,c){var d=a._state.parents;0<d.length&&d.filter(G).length===d.length&&(c||0<d.filter(b).length)&&(d=d.filter(f),0<d.length?n(a,void 0,d[0]._state.error):l(a,n,!1))}function l(a,b,c){try{var d=c?a._state.recover():
|
||||
a._state.derive();if(d===D)return!1;b(a,d,void 0)}catch(f){b(a,void 0,null!=f.__error?f.__error:f),null==f.__error&&z(a,f)}return!0}function w(a,b){null!=a&&a.constructor===e&&(b=void 0!==a._state.error?a._state.error:w(a._state.value,a._state.error));return b}function z(a,b){0===Object.keys(a._state.deps).length&&setTimeout(function(){0===Object.keys(a._state.deps).length&&d(b)},0)}function c(a){var b=e(),c=this;return v(b,[c],function(){return u(b,a(c()))},void 0)}function A(a){var b=e(),c=this;
|
||||
return v(b,[c],function(){return c._state.value},function(){return u(b,a(c._state.error))})}function k(a,c){return v(e(),c,function(){var d=c.filter(f);if(0<d.length)throw{__error:d[0]._state.error};return a.apply(this,c.concat([c.filter(b)]))},void 0)}function u(a,b){if(null!=b&&b.constructor===e){var c=b,d=function(){n(a,c._state.value,c._state.error);for(var b in a._state.deps)m(a._state.deps[b],!1)};c.map(d)["catch"](function(a){d();throw{__error:a};});if(0===c._state.state)return D;if(c._state.error)throw{__error:c._state.error};
|
||||
b=c._state.value}return b}function v(b,c,d,f){var e=b._state;e.derive=d;e.recover=f;e.parents=c.filter(a);t(b,e.parents);m(b,!0);return b}function t(a,b){for(var c=0;c<b.length;c++)b[c]._state.deps[a._state.id]=a,t(a,b[c]._state.parents)}function x(a){for(var b=0;b<a._state.parents.length;b++)delete a._state.parents[b]._state.deps[a._state.id];for(var c in a._state.deps){var b=a._state.deps[c],d=b._state.parents.indexOf(a);-1<d&&b._state.parents.splice(d,1)}a._state.state=2;a._state.deps={}}function I(a){return k(function(b){return a(b())},
|
||||
[this])}function C(a){return k(function(a,b){return a()(b())},[this,a])}function y(){return this._state.value}function F(){return null!=this._state.value&&"function"===typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function G(a){return 1===a._state.state}function b(a){return a._state.changed}function a(a){return 2!==a._state.state}function f(a){return a._state.error}var H=0,E=function(){},D={};e.merge=function(a){return k(function(){return a.map(function(a){return a()})},
|
||||
a)};e.combine=k;e.reject=function(a){var b=e();b.error(a);return b};e.HALT=D;return e},J=function(d,e){function q(c,d){if(null==d)return c;for(var e=c.match(/:[^\/]+/gi)||[],g=0;g<e.length;g++){var h=e[g].slice(1);null!=d[h]&&(c=c.replace(e[g],d[h]),delete d[h])}return c}function g(c,d){var e=E(d);if(""!==e){var g=0>c.indexOf("?")?"?":"&";c+=g+e}return c}function n(c){try{return""!==c?JSON.parse(c):null}catch(d){throw Error(c);}}function h(c){return c.responseText}function m(c,d){if("function"===
|
||||
typeof c)if(d instanceof Array)for(var e=0;e<d.length;e++)d[e]=new c(d[e]);else return new c(d);return d}var l=L(e),w=0,z;return{request:function(c){var e=l();void 0!==c.initialValue&&e(c.initialValue);var k="boolean"===typeof c.useBody?c.useBody:"GET"!==c.method&&"TRACE"!==c.method;"function"!==typeof c.serialize&&(c.serialize="undefined"!==typeof FormData&&c.data instanceof FormData?function(c){return c}:JSON.stringify);"function"!==typeof c.deserialize&&(c.deserialize=n);"function"!==typeof c.extract&&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue