Browse Source

Merge pull request #912 in VISUAL/fineui from ~DAILER/fineui:master to master

* commit '320d407ae9385557321eb6b3f117e285abb07b45':
  build
  无JIRA任务 fix:更新一下layout的updateChildren方法
master
Dailer 6 years ago
parent
commit
6925a38335
  1. 29
      dist/2.0/fineui.ie.js
  2. 75
      dist/2.0/fineui.ie.min.js
  3. 29
      dist/2.0/fineui.js
  4. 2
      dist/2.0/fineui.min.css
  5. 75
      dist/2.0/fineui.min.js
  6. 29
      dist/bundle.ie.js
  7. 75
      dist/bundle.ie.min.js
  8. 29
      dist/bundle.js
  9. 2
      dist/bundle.min.css
  10. 75
      dist/bundle.min.js
  11. 29
      dist/core.js
  12. 29
      dist/fineui.ie.js
  13. 75
      dist/fineui.ie.min.js
  14. 29
      dist/fineui.js
  15. 2
      dist/fineui.min.css
  16. 75
      dist/fineui.min.js
  17. 29
      dist/fineui_without_jquery_polyfill.js
  18. 2
      dist/utils.min.js
  19. 29
      src/core/wrapper/layout.js

29
dist/2.0/fineui.ie.js vendored

@ -15177,9 +15177,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -15223,11 +15236,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -15251,6 +15268,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

75
dist/2.0/fineui.ie.min.js vendored

File diff suppressed because one or more lines are too long

29
dist/2.0/fineui.js vendored

@ -15177,9 +15177,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -15223,11 +15236,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -15251,6 +15268,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

2
dist/2.0/fineui.min.css vendored

File diff suppressed because one or more lines are too long

75
dist/2.0/fineui.min.js vendored

File diff suppressed because one or more lines are too long

29
dist/bundle.ie.js vendored

@ -15177,9 +15177,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -15223,11 +15236,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -15251,6 +15268,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

75
dist/bundle.ie.min.js vendored

File diff suppressed because one or more lines are too long

29
dist/bundle.js vendored

@ -15177,9 +15177,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -15223,11 +15236,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -15251,6 +15268,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

2
dist/bundle.min.css vendored

File diff suppressed because one or more lines are too long

75
dist/bundle.min.js vendored

File diff suppressed because one or more lines are too long

29
dist/core.js vendored

@ -15177,9 +15177,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -15223,11 +15236,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -15251,6 +15268,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

29
dist/fineui.ie.js vendored

@ -15422,9 +15422,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -15468,11 +15481,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -15496,6 +15513,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

75
dist/fineui.ie.min.js vendored

File diff suppressed because one or more lines are too long

29
dist/fineui.js vendored

@ -15422,9 +15422,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -15468,11 +15481,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -15496,6 +15513,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

2
dist/fineui.min.css vendored

File diff suppressed because one or more lines are too long

75
dist/fineui.min.js vendored

File diff suppressed because one or more lines are too long

29
dist/fineui_without_jquery_polyfill.js vendored

@ -14923,9 +14923,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -14969,11 +14982,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -14997,6 +15014,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

2
dist/utils.min.js vendored

File diff suppressed because one or more lines are too long

29
src/core/wrapper/layout.js

@ -421,9 +421,22 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
var sameOldVnode = findOldVnode(oldCh, newStartVnode, oldStartIdx, oldEndIdx);
if (BI.isNull(sameOldVnode)) { // 不存在就把新的放到左边
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { // 如果新节点在就旧节点区间中存在就复用一下
BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode);
}
});
newStartVnode = newCh[++newStartIdx];
}
} }
} }
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
@ -467,11 +480,15 @@ BI.Layout = BI.inherit(BI.Widget, {
function removeVnodes (vnodes, startIdx, endIdx) { function removeVnodes (vnodes, startIdx, endIdx) {
for (; startIdx <= endIdx; ++startIdx) { for (; startIdx <= endIdx; ++startIdx) {
var node = self._getOptions(vnodes[startIdx]); var ch = vnodes[startIdx];
if (BI.isNotNull(ch)) {
var node = self._getOptions(ch);
var key = node.key == null ? self._getChildName(startIdx) : node.key; var key = node.key == null ? self._getChildName(startIdx) : node.key;
delete self._children[self._getChildName(key)];
children[key]._destroy(); children[key]._destroy();
} }
} }
}
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
@ -495,6 +512,16 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function findOldVnode (vnodes, vNode, beginIdx, endIdx) {
var i, found;
for (i = beginIdx; i <= endIdx; ++i) {
if (vnodes[i] && sameVnode(vnodes[i], vNode)) {
found = vnodes[i];
}
}
return found;
}
return updated; return updated;
}, },

Loading…
Cancel
Save