UNPKG

ckeditor5-image-upload-base64

Version:

The development environment of CKEditor 5 – the best browser-based rich text editor.

32 lines (25 loc) 896 B
/** * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ /** * @module utils/dom/getcommonancestor */ import getAncestors from './getancestors'; /** * Searches and returns the lowest common ancestor of two given nodes. * * @param {Node} nodeA First node. * @param {Node} nodeB Second node. * @returns {Node|DocumentFragment|Document|null} Lowest common ancestor of both nodes or `null` if nodes do not have a common ancestor. */ export default function getCommonAncestor( nodeA, nodeB ) { const ancestorsA = getAncestors( nodeA ); const ancestorsB = getAncestors( nodeB ); let i = 0; // It does not matter which array is shorter. while ( ancestorsA[ i ] == ancestorsB[ i ] && ancestorsA[ i ] ) { i++; } return i === 0 ? null : ancestorsA[ i - 1 ]; }