forked from Gitlink/forgeplus-react
37 lines
984 B
JavaScript
37 lines
984 B
JavaScript
/**
|
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*
|
|
* @providesModule getSelectionOffsetKeyForNode
|
|
* @format
|
|
*
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
/**
|
|
* Get offset key from a node or it's child nodes. Return the first offset key
|
|
* found on the DOM tree of given node.
|
|
*/
|
|
|
|
function getSelectionOffsetKeyForNode(node) {
|
|
if (node instanceof Element) {
|
|
var offsetKey = node.getAttribute('data-offset-key');
|
|
if (offsetKey) {
|
|
return offsetKey;
|
|
}
|
|
for (var ii = 0; ii < node.childNodes.length; ii++) {
|
|
var childOffsetKey = getSelectionOffsetKeyForNode(node.childNodes[ii]);
|
|
if (childOffsetKey) {
|
|
return childOffsetKey;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
module.exports = getSelectionOffsetKeyForNode; |