Precise DOM morphing
morphing typescript dom

fix bug

+8 -2
+8 -2
src/morphlex.ts
··· 406 406 this.morphOneToOne(match, node) 407 407 insertionPoint = match.nextSibling 408 408 // Skip over any nodes that will be removed to avoid unnecessary moves 409 - while (insertionPoint && candidateNodes.has(insertionPoint)) { 409 + while ( 410 + insertionPoint && 411 + (candidateNodes.has(insertionPoint) || (isElement(insertionPoint) && candidateElements.has(insertionPoint))) 412 + ) { 410 413 insertionPoint = insertionPoint.nextSibling 411 414 } 412 415 } else { ··· 415 418 this.options.afterNodeAdded?.(node) 416 419 insertionPoint = node.nextSibling 417 420 // Skip over any nodes that will be removed to avoid unnecessary moves 418 - while (insertionPoint && candidateNodes.has(insertionPoint)) { 421 + while ( 422 + insertionPoint && 423 + (candidateNodes.has(insertionPoint) || (isElement(insertionPoint) && candidateElements.has(insertionPoint))) 424 + ) { 419 425 insertionPoint = insertionPoint.nextSibling 420 426 } 421 427 }