forgeplus-react/node_modules/draft-js/lib/isSelectionAtLeafStart.js.flow

50 lines
1.2 KiB
Plaintext

/**
* 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 isSelectionAtLeafStart
* @format
* @flow
*/
'use strict';
import type EditorState from './EditorState';
function isSelectionAtLeafStart(editorState: EditorState): boolean {
var selection = editorState.getSelection();
var anchorKey = selection.getAnchorKey();
var blockTree = editorState.getBlockTree(anchorKey);
var offset = selection.getStartOffset();
var isAtStart = false;
blockTree.some(leafSet => {
if (offset === leafSet.get('start')) {
isAtStart = true;
return true;
}
if (offset < leafSet.get('end')) {
return leafSet.get('leaves').some(leaf => {
var leafStart = leaf.get('start');
if (offset === leafStart) {
isAtStart = true;
return true;
}
return false;
});
}
return false;
});
return isAtStart;
}
module.exports = isSelectionAtLeafStart;