import { __require as requireWarning } from '../../../../fbjs@2.0.0/node_modules/fbjs/lib/warning.js';

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @format
 * 
 * @emails oncall+draft_js
 */

var moveSelectionForward_1;
var hasRequiredMoveSelectionForward;

function requireMoveSelectionForward () {
	if (hasRequiredMoveSelectionForward) return moveSelectionForward_1;
	hasRequiredMoveSelectionForward = 1;

	var warning = requireWarning();
	/**
	 * Given a collapsed selection, move the focus `maxDistance` forward within
	 * the selected block. If the selection will go beyond the end of the block,
	 * move focus to the start of the next block, but no further.
	 *
	 * This function is not Unicode-aware, so surrogate pairs will be treated
	 * as having length 2.
	 */


	function moveSelectionForward(editorState, maxDistance) {
	  var selection = editorState.getSelection(); // Should eventually make this an invariant

	  process.env.NODE_ENV !== "production" ? warning(selection.isCollapsed(), 'moveSelectionForward should only be called with a collapsed SelectionState') : void 0;
	  var key = selection.getStartKey();
	  var offset = selection.getStartOffset();
	  var content = editorState.getCurrentContent();
	  var focusKey = key;
	  var focusOffset;
	  var block = content.getBlockForKey(key);

	  if (maxDistance > block.getText().length - offset) {
	    focusKey = content.getKeyAfter(key);
	    focusOffset = 0;
	  } else {
	    focusOffset = offset + maxDistance;
	  }

	  return selection.merge({
	    focusKey: focusKey,
	    focusOffset: focusOffset
	  });
	}

	moveSelectionForward_1 = moveSelectionForward;
	return moveSelectionForward_1;
}

export { requireMoveSelectionForward as __require };
//# sourceMappingURL=moveSelectionForward.js.map
