text: /**
   * 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
   */
  'use strict';
  
  var EditorState = require("./EditorState");
  
  var expandRangeToStartOfLine = require("./expandRangeToStartOfLine");
  
  var getDraftEditorSelectionWithNodes = require("./getDraftEditorSelectionWithNodes");
  
  var moveSelectionBackward = require("./moveSelectionBackward");
  
  var removeTextWithStrategy = require("./removeTextWithStrategy");
  
  function keyCommandBackspaceToStartOfLine(editorState) {
    var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {
      var selection = strategyState.getSelection();
  
      if (selection.isCollapsed() && selection.getAnchorOffset() === 0) {
        return moveSelectionBackward(strategyState, 1);
      }
  
      var domSelection = global.getSelection();
      var range = domSelection.getRangeAt(0);
      range = expandRangeToStartOfLine(range);
      return getDraftEditorSelectionWithNodes(strategyState, null, range.endContainer, range.endOffset, range.startContainer, range.startOffset).selectionState;
    }, 'backward');
  
    if (afterRemoval === editorState.getCurrentContent()) {
      return editorState;
    }
  
    return EditorState.push(editorState, afterRemoval, 'remove-range');
  }
  
  module.exports = keyCommandBackspaceToStartOfLine;