Commit 4cc7e491 by Иван Кубота

namespaces and some fixes of before\after adds

parent ac2fa4a2
...@@ -394,7 +394,12 @@ NS.apply = function(a,b) { ...@@ -394,7 +394,12 @@ NS.apply = function(a,b) {
if(!tmp || !tmp.parentNode) if(!tmp || !tmp.parentNode)
return; return;
var isInDOM = D.isInDOM(el);
isInDOM && D._recursiveCmpCall(el, fragment, 'beforeAddToDOM');
el.insertBefore(fragment, tmp); el.insertBefore(fragment, tmp);
isInDOM && D._recursiveCmpCall(el, {childNodes: list}, 'afterAddToDOM');
}; };
release = subEl( hookFn ); release = subEl( hookFn );
isNotFragment && el.__un.push(release); isNotFragment && el.__un.push(release);
...@@ -535,6 +540,8 @@ NS.apply = function(a,b) { ...@@ -535,6 +540,8 @@ NS.apply = function(a,b) {
return construct; return construct;
}; };
D.declare = function(name, ctor) { D.declare = function(name, ctor) {
name = name.replace(/[\/\\]/g,'__');
var uses; var uses;
if(typeof ctor === 'object'){ if(typeof ctor === 'object'){
var original = ctor; var original = ctor;
...@@ -557,8 +564,10 @@ NS.apply = function(a,b) { ...@@ -557,8 +564,10 @@ NS.apply = function(a,b) {
var u = uses[ i ], d = u.dom; var u = uses[ i ], d = u.dom;
u.dom = _construct(ctor, u.cfg, u.p); u.dom = _construct(ctor, u.cfg, u.p);
d.dom && (d = d.dom); d.dom && (d = d.dom);
if(d.parentNode){ !Array.isArray(d) && (d = [d]);
var dParent = d.parentNode, if(d.length && d[0].parentNode){
var dParent = d[0].parentNode,
isInDOM = D.isInDOM(dParent), isInDOM = D.isInDOM(dParent),
newChild = u.dom; newChild = u.dom;
...@@ -567,11 +576,28 @@ NS.apply = function(a,b) { ...@@ -567,11 +576,28 @@ NS.apply = function(a,b) {
newChild.__cmp = u.dom; newChild.__cmp = u.dom;
} }
isInDOM && D._recursiveCmpCall(dParent, d, 'beforeRemoveFromDOM'); for(var j = 0, _j = d.length - 1; j < _j; j++){
isInDOM && D._recursiveCmpCall(dParent, newChild, 'beforeAddToDOM'); isInDOM && D._recursiveCmpCall(dParent, d[j], 'beforeRemoveFromDOM');
d.parentNode.replaceChild( newChild, d ) dParent.removeChild( d[j] )
isInDOM && D._recursiveCmpCall(dParent, d, 'afterRemoveFromDOM'); }
isInDOM && D._recursiveCmpCall(dParent, newChild, 'afterAddToDOM');
var lastEl = d[j];
isInDOM && D._recursiveCmpCall(dParent, lastEl, 'beforeRemoveFromDOM');
var fragment = document.createDocumentFragment();
for(var j = 0, _j = newChild.length; j < _j; j++){
isInDOM && D._recursiveCmpCall(dParent, newChild[j], 'beforeAddToDOM');
fragment.appendChild(newChild[j])
}
dParent.replaceChild( fragment, lastEl )
if(isInDOM){
for( var j = 0, _j = d.length; j < _j; j++ ){
D._recursiveCmpCall( dParent, d[ j ], 'afterRemoveFromDOM' );
}
for( var j = 0, _j = newChild.length; j < _j; j++ ){
D._recursiveCmpCall( dParent, newChild[ j ], 'afterAddToDOM' );
}
}
} }
} }
}else{ }else{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment