bugfix
authorDaniel Abrecht <webmaster@danielabrecht.ch>
Mon, 26 Jan 2015 13:53:25 +0000 (14:53 +0100)
committerDaniel Abrecht <webmaster@danielabrecht.ch>
Mon, 26 Jan 2015 13:53:25 +0000 (14:53 +0100)
MVSync.js
MVSync.min.js

index 60ed54a..ff13d56 100644 (file)
--- a/MVSync.js
+++ b/MVSync.js
@@ -311,7 +311,15 @@ function Template(template){
           setup(e.children[i]);
     }
 
-    function syncLists(contentDatas,b,e,t){
+    function syncLists(contentDatas,orig,e,t){
+      var b = [];
+      for(var i=0;i<orig.length;i++){
+        if(!(orig[i] instanceof Object))
+          continue;
+        if(b.indexOf(orig[i])!=-1)
+          continue;
+        b.push(orig[i]);
+      }
       var a = contentDatas.subScopes;
       var d = contentDatas.subScopeInfos;
       for(var i=a.length;i--;){ // remove elements / objects
index 88a53a9..ef36390 100644 (file)
@@ -1,12 +1,11 @@
-(function(){function v(){Object.observe(n,function(c){c.forEach(function(c){"add"==c.type&&C(c.name)})})}function D(c){function h(h){function q(a){a.forEach(function(a){r(a.name)})}function w(a){try{return(new Function("v","return v."+a+";"))(h)}catch(g){return null}}function r(a){if(a in k)for(var g in k[a])(function(){var b=k[a][g],e=null;b.a&&(e=w(b.a));var f=null;switch(b.type){case "getter":var d=y[a+b.a]=l[b.which]=y[a+b.a]||l[b.which]||{};p[b.which]&&(d.k=p[b.which]);var c=function(a){for(d.i=
-a;d.b.length;){var e=d.b.pop();(new Function("s","n","v","s[n]"+b.a+"=v;")).call(h,h,e,a)}};d.b=d.b||[];d.b.length||(f=e(),f instanceof Function?f(c):c(f));d.b.push(b.which);break;case "setter":f=z[a+b.a]=p[b.which]=z[a+b.a]||p[b.which]||{};(l[b.which]||l[b.which]||{}).k=f;f.d=e;break;case "value":f=e;a in l&&l[a].i==f||(e=null,a in l&&(e=l[a].k.d,delete l[a].i),!e&&a in p&&(e=p[a].d),e&&(e=e(f))&&e());"attribute"==b.e?t(b.element,b.which,f):"content"==b.e&&A(b.element,f);break;case "map":b.update()}})()}
-function t(a,g,b){g in a?a[g]=b:a.setAttribute(g,b)}function A(a,g){for(;a.childNodes.length;){var b=a.childNodes[a.childNodes.length-1];b.l&&b.l.f();a.removeChild(b)}"_content"in a&&delete a.c;g instanceof Node?(b=g.cloneNode(!0),x(b),a.appendChild(b)):a.appendChild(document.createTextNode(g||""))}function x(a){var g=a.getAttribute("data-bind");if(g)for(var g=g.split("\u00a6"),b=0;b<g.length;b++){var e=g[b].split(":"),f=e[1],d=f.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/)[1],e=e[0],c=w(f);t(a,e,c);
-k[d]=k[d]||[];k[d].push({which:e,e:"attribute",type:"value",a:f,element:a})}if(b=a.getAttribute("data-content"))f=b.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/),d=f[1],f=b,c=w(f),A(a,c),k[d]=k[d]||[],k[d].push({e:"content",type:"value",a:f,element:a});if(g=a.getAttribute("data-getter"))for(g=g.split("\u00a6"),b=0;b<g.length;b++)e=g[b].split(":"),f=e[1],d=f.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/)[1],e=e[0],k[d]=k[d]||[],k[d].push({which:e,type:"getter",a:f,element:a});if(g=a.getAttribute("data-setter"))for(g=
-g.split("\u00a6"),b=0;b<g.length;b++)e=g[b].split(":"),f=e[1],d=f.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/)[1],e=e[0],k[d]=k[d]||[],k[d].push({which:e,type:"setter",a:f,element:a});(new MutationObserver(function(b){b.forEach(function(b){b=b.attributeName;var d=a.getAttribute(b),e;for(e in k){var f=k[e],c;for(c in f){var g=f[c];"value"==g.type&&g.which==b&&(new Function("s","v","if(s."+g.a+".toString()!=v)s."+g.a+"=Object(s."+g.a+").constructor(v);")).call(h,h,d)}}})})).observe(a,{attributes:!0});"value"in
-a&&a.addEventListener("change",function(){a.setAttribute("value",a.value)});if(b=a.getAttribute("data-map")){var m=b.split(":"),f=m[0].match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/),d=f[1],f=f[2],l=function(){if(m[1]in u){var b=h[d];b&&(b=Object((new Function("v","return v"+f+";"))(b)));b||(b=[]);"length"in b||(b=[b]);a.c=a.c||{o:[],n:[]};Object.observe(b,function(){B(a.c,b,a,u[m[1]])});B(a.c,b,a,u[m[1]])}else(n[m[1]]=n[m[1]]||[]).push(l)};(k[m[0]]=k[m[0]]||[]).push({type:"map",update:l});l()}if(!b)for(b=
-0;b<a.children.length;b++)x(a.children[b])}function B(a,g,b,e){var f=a.o;a=a.n;for(var d=f.length;d--;)-1==g.indexOf(f[d])&&(a[d].element.parentNode&&a[d].element.parentNode.removeChild(a[d].element),f.splice(d,1),a.splice(d,1));for(d=0;d<g.length;d++){var c=f.indexOf(g[d]);if(-1!=c)a[c].index=d;else{c={element:e.h(g[d]),index:d};if(a.length){var h=a[a.length-1].element;h.parentNode==b?b.insertBefore(c.element,h.nextSibling):b.appendChild(c.element)}else b.appendChild(c.element);f.push(g[d]);a.push(c)}}for(d=
-0;d<a.length;d++)e=a[d],e.index!=d&&(g=e.element,b=a[e.index].element,c=e.index,a[d]=[a[c],a[c]=a[d]][0],e=e.index,f[d]=[f[e],f[e]=f[d]][0],e=g.parentNode,c=b.parentNode,e&&c&&(h=g.nextSibling,c.insertBefore(g,b.nextSibling),e.insertBefore(b,h)))}Object.defineProperty(h,"this",{configurable:!0,writable:!0,enumerable:!1,value:h});var k={},y={},l={},z={},p={};this.g=[];this.root=c instanceof HTMLHtmlElement?c:c.cloneNode(!0);this.root.l=this;this.root.classList.add(E);this.f=function(){Object.r(this.j.m,
-this.j.d);for(var a=0;a<this.g.length;a++)this.g[a].f()};x(this.root);this.j={m:Object.observe(h,q),d:q};for(var v in h)r(v)}c.removeAttribute("data-template");var E=c.p;c.q=this;this.h=function(c){return(new h(c)).root}}function r(c){var h=c.getAttribute("data-template");!h&&c instanceof HTMLHtmlElement&&(h="root");!c.parentNode||c instanceof HTMLHtmlElement||c.parentNode.removeChild(c);c.p=h;c=u[h]=new D(c);if(h in n){for(;n[h].length;)n[h].pop()();delete n[h]}return c}function t(c){"querySelectorAll"in
-c&&(c=c.querySelectorAll("[data-template]"));for(var h=0;h<c.length;h++)r(c[h])}function C(c){var h=new XMLHttpRequest;h.open("GET",q+"templates/"+c+".html",!0);h.onload=function(){var c=null;if(!c){var c=document.createDocumentFragment(),h=document.createElement("div");h.innerHTML=this.responseText;c.appendChild(h)}t(c)};h.send()}window.model=window.model||{};var u={},n={},q="/";addEventListener("load",function(){window.templateRoot?q=window.templateRoot+"/":document.querySelector("[data-template-root]")&&
-(q=document.querySelector("[data-template-root]").getAttribute("data-template-root")+"/");v();t(document);r(document.documentElement).h(model)})})();
-
+(function(){function v(){Object.observe(n,function(e){e.forEach(function(e){"add"==e.type&&C(e.name)})})}function D(e){function f(f){function q(a){a.forEach(function(a){r(a.name)})}function w(a){try{return(new Function("v","return v."+a+";"))(f)}catch(g){return null}}function r(a){if(a in k)for(var g in k[a])(function(){var b=k[a][g],h=null;b.a&&(h=w(b.a));var d=null;switch(b.type){case "getter":var c=y[a+b.a]=l[b.which]=y[a+b.a]||l[b.which]||{};p[b.which]&&(c.k=p[b.which]);var e=function(a){for(c.i=
+a;c.b.length;){var d=c.b.pop();(new Function("s","n","v","s[n]"+b.a+"=v;")).call(f,f,d,a)}};c.b=c.b||[];c.b.length||(d=h(),d instanceof Function?d(e):e(d));c.b.push(b.which);break;case "setter":d=z[a+b.a]=p[b.which]=z[a+b.a]||p[b.which]||{};(l[b.which]||l[b.which]||{}).k=d;d.d=h;break;case "value":d=h;a in l&&l[a].i==d||(h=null,a in l&&(h=l[a].k.d,delete l[a].i),!h&&a in p&&(h=p[a].d),h&&(h=h(d))&&h());"attribute"==b.e?t(b.element,b.which,d):"content"==b.e&&A(b.element,d);break;case "map":b.update()}})()}
+function t(a,g,b){g in a?a[g]=b:a.setAttribute(g,b)}function A(a,g){for(;a.childNodes.length;){var b=a.childNodes[a.childNodes.length-1];b.l&&b.l.f();a.removeChild(b)}"_content"in a&&delete a.c;g instanceof Node?(b=g.cloneNode(!0),x(b),a.appendChild(b)):a.appendChild(document.createTextNode(g||""))}function x(a){var g=a.getAttribute("data-bind");if(g)for(var g=g.split("\u00a6"),b=0;b<g.length;b++){var h=g[b].split(":"),d=h[1],c=d.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/)[1],h=h[0],e=w(d);t(a,h,e);
+k[c]=k[c]||[];k[c].push({which:h,e:"attribute",type:"value",a:d,element:a})}if(b=a.getAttribute("data-content"))d=b.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/),c=d[1],d=b,e=w(d),A(a,e),k[c]=k[c]||[],k[c].push({e:"content",type:"value",a:d,element:a});if(g=a.getAttribute("data-getter"))for(g=g.split("\u00a6"),b=0;b<g.length;b++)h=g[b].split(":"),d=h[1],c=d.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/)[1],h=h[0],k[c]=k[c]||[],k[c].push({which:h,type:"getter",a:d,element:a});if(g=a.getAttribute("data-setter"))for(g=
+g.split("\u00a6"),b=0;b<g.length;b++)h=g[b].split(":"),d=h[1],c=d.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/)[1],h=h[0],k[c]=k[c]||[],k[c].push({which:h,type:"setter",a:d,element:a});(new MutationObserver(function(b){b.forEach(function(b){b=b.attributeName;var c=a.getAttribute(b),d;for(d in k){var g=k[d],e;for(e in g){var h=g[e];"value"==h.type&&h.which==b&&(new Function("s","v","if(s."+h.a+".toString()!=v)s."+h.a+"=Object(s."+h.a+").constructor(v);")).call(f,f,c)}}})})).observe(a,{attributes:!0});"value"in
+a&&a.addEventListener("change",function(){a.setAttribute("value",a.value)});if(b=a.getAttribute("data-map")){var m=b.split(":"),d=m[0].match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)(.*)/),c=d[1],d=d[2],l=function(){if(m[1]in u){var b=f[c];b&&(b=Object((new Function("v","return v"+d+";"))(b)));b||(b=[]);"length"in b||(b=[b]);a.c=a.c||{o:[],n:[]};Object.observe(b,function(){B(a.c,b,a,u[m[1]])});B(a.c,b,a,u[m[1]])}else(n[m[1]]=n[m[1]]||[]).push(l)};(k[m[0]]=k[m[0]]||[]).push({type:"map",update:l});l()}if(!b)for(b=
+0;b<a.children.length;b++)x(a.children[b])}function B(a,g,b,e){for(var d=[],c=0;c<g.length;c++)g[c]instanceof Object&&-1==d.indexOf(g[c])&&d.push(g[c]);g=a.o;a=a.n;for(c=g.length;c--;)-1==d.indexOf(g[c])&&(a[c].element.parentNode&&a[c].element.parentNode.removeChild(a[c].element),g.splice(c,1),a.splice(c,1));for(c=0;c<d.length;c++){var f=g.indexOf(d[c]);if(-1!=f)a[f].index=c;else{f={element:e.h(d[c]),index:c};if(a.length){var k=a[a.length-1].element;k.parentNode==b?b.insertBefore(f.element,k.nextSibling):
+b.appendChild(f.element)}else b.appendChild(f.element);g.push(d[c]);a.push(f)}}for(c=0;c<a.length;c++)d=a[c],d.index!=c&&(b=d.element,e=a[d.index].element,f=d.index,a[c]=[a[f],a[f]=a[c]][0],d=d.index,g[c]=[g[d],g[d]=g[c]][0],d=b.parentNode,f=e.parentNode,d&&f&&(k=b.nextSibling,f.insertBefore(b,e.nextSibling),d.insertBefore(e,k)))}Object.defineProperty(f,"this",{configurable:!0,writable:!0,enumerable:!1,value:f});var k={},y={},l={},z={},p={};this.g=[];this.root=e instanceof HTMLHtmlElement?e:e.cloneNode(!0);
+this.root.l=this;this.root.classList.add(E);this.f=function(){Object.r(this.j.m,this.j.d);for(var a=0;a<this.g.length;a++)this.g[a].f()};x(this.root);this.j={m:Object.observe(f,q),d:q};for(var v in f)r(v)}e.removeAttribute("data-template");var E=e.p;e.q=this;this.h=function(e){return(new f(e)).root}}function r(e){var f=e.getAttribute("data-template");!f&&e instanceof HTMLHtmlElement&&(f="root");!e.parentNode||e instanceof HTMLHtmlElement||e.parentNode.removeChild(e);e.p=f;e=u[f]=new D(e);if(f in n){for(;n[f].length;)n[f].pop()();
+delete n[f]}return e}function t(e){"querySelectorAll"in e&&(e=e.querySelectorAll("[data-template]"));for(var f=0;f<e.length;f++)r(e[f])}function C(e){var f=new XMLHttpRequest;f.open("GET",q+"templates/"+e+".html",!0);f.onload=function(){var e=null;if(!e){var e=document.createDocumentFragment(),f=document.createElement("div");f.innerHTML=this.responseText;e.appendChild(f)}t(e)};f.send()}window.model=window.model||{};var u={},n={},q="/";addEventListener("load",function(){window.templateRoot?q=window.templateRoot+
+"/":document.querySelector("[data-template-root]")&&(q=document.querySelector("[data-template-root]").getAttribute("data-template-root")+"/");v();t(document);r(document.documentElement).h(model)})})();