|
|
|
@ -399,23 +399,23 @@ BI.Layout = BI.inherit(BI.Widget, {
|
|
|
|
|
oldEndVnode = oldCh[--oldEndIdx]; |
|
|
|
|
} else if (sameVnode(oldStartVnode, newStartVnode, oldStartIdx, newStartIdx)) { |
|
|
|
|
updated = this.patchItem(oldStartVnode, newStartVnode, oldStartIdx) || updated; |
|
|
|
|
children[oldStartVnode.key == null ? this._getChildName(oldStartIdx) : oldStartVnode.key] = this._children[this._getChildName(oldStartIdx)]; |
|
|
|
|
children[oldStartVnode.key == null ? oldStartIdx : oldStartVnode.key] = this._children[this._getChildName(oldStartIdx)]; |
|
|
|
|
oldStartVnode = oldCh[++oldStartIdx]; |
|
|
|
|
newStartVnode = newCh[++newStartIdx]; |
|
|
|
|
} else if (sameVnode(oldEndVnode, newEndVnode, oldEndIdx, newEndIdx)) { |
|
|
|
|
updated = this.patchItem(oldEndVnode, newEndVnode, oldEndIdx) || updated; |
|
|
|
|
children[oldEndVnode.key == null ? this._getChildName(oldEndIdx) : oldEndVnode.key] = this._children[this._getChildName(oldEndIdx)]; |
|
|
|
|
children[oldEndVnode.key == null ? oldEndIdx : oldEndVnode.key] = this._children[this._getChildName(oldEndIdx)]; |
|
|
|
|
oldEndVnode = oldCh[--oldEndIdx]; |
|
|
|
|
newEndVnode = newCh[--newEndIdx]; |
|
|
|
|
} else if (sameVnode(oldStartVnode, newEndVnode)) { |
|
|
|
|
updated = this.patchItem(oldStartVnode, newEndVnode, oldStartIdx) || updated; |
|
|
|
|
children[oldStartVnode.key == null ? this._getChildName(oldStartIdx) : oldStartVnode.key] = this._children[this._getChildName(oldStartIdx)]; |
|
|
|
|
children[oldStartVnode.key == null ? oldStartIdx : oldStartVnode.key] = this._children[this._getChildName(oldStartIdx)]; |
|
|
|
|
insertBefore(oldStartVnode, oldEndVnode, true); |
|
|
|
|
oldStartVnode = oldCh[++oldStartIdx]; |
|
|
|
|
newEndVnode = newCh[--newEndIdx]; |
|
|
|
|
} else if (sameVnode(oldEndVnode, newStartVnode)) { |
|
|
|
|
updated = this.patchItem(oldEndVnode, newStartVnode, oldEndIdx) || updated; |
|
|
|
|
children[oldEndVnode.key == null ? this._getChildName(oldEndIdx) : oldEndVnode.key] = this._children[this._getChildName(oldEndIdx)]; |
|
|
|
|
children[oldEndVnode.key == null ? oldEndIdx : oldEndVnode.key] = this._children[this._getChildName(oldEndIdx)]; |
|
|
|
|
insertBefore(oldEndVnode, oldStartVnode); |
|
|
|
|
oldEndVnode = oldCh[--oldEndIdx]; |
|
|
|
|
newStartVnode = newCh[++newStartIdx]; |
|
|
|
@ -429,7 +429,7 @@ BI.Layout = BI.inherit(BI.Widget, {
|
|
|
|
|
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)]; |
|
|
|
|
children[sameOldVnode.key == null ? index : sameOldVnode.key] = self._children[self._getChildName(index)]; |
|
|
|
|
oldCh[index] = undefined; |
|
|
|
|
insertBefore(sameOldVnode, oldStartVnode); |
|
|
|
|
} |
|
|
|
@ -492,9 +492,9 @@ BI.Layout = BI.inherit(BI.Widget, {
|
|
|
|
|
function insertBefore (insert, before, isNext, index) { |
|
|
|
|
insert = self._getOptions(insert); |
|
|
|
|
before = before && self._getOptions(before); |
|
|
|
|
var insertKey = BI.isKey(insert.key) ? insert.key : self._getChildName(index); |
|
|
|
|
var insertKey = BI.isKey(insert.key) ? insert.key : index; |
|
|
|
|
if (before && children[before.key]) { |
|
|
|
|
var beforeKey = BI.isKey(before.key) ? before.key : self._getChildName(index); |
|
|
|
|
var beforeKey = BI.isKey(before.key) ? before.key : index; |
|
|
|
|
var next; |
|
|
|
|
if (isNext) { |
|
|
|
|
next = children[beforeKey].element.next(); |
|
|
|
|