#include "third_party/blink/renderer/core/editing/commands/break_blockquote_command.h"
#include "third_party/blink/renderer/core/dom/node_traversal.h"
#include "third_party/blink/renderer/core/dom/text.h"
#include "third_party/blink/renderer/core/editing/commands/delete_selection_options.h"
#include "third_party/blink/renderer/core/editing/commands/editing_commands_utilities.h"
#include "third_party/blink/renderer/core/editing/editing_utilities.h"
#include "third_party/blink/renderer/core/editing/selection_template.h"
#include "third_party/blink/renderer/core/editing/visible_position.h"
#include "third_party/blink/renderer/core/editing/visible_selection.h"
#include "third_party/blink/renderer/core/editing/visible_units.h"
#include "third_party/blink/renderer/core/html/html_br_element.h"
#include "third_party/blink/renderer/core/html/html_element.h"
#include "third_party/blink/renderer/core/html/html_li_element.h"
#include "third_party/blink/renderer/core/html/html_olist_element.h"
#include "third_party/blink/renderer/core/html/html_quote_element.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/layout/list/layout_list_item.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
namespace blink {
namespace {
std::optional<int> GetListItemNumber(const Node* node) { … }
bool IsFirstVisiblePositionInNode(const VisiblePosition& visible_position,
const ContainerNode* node) { … }
bool IsLastVisiblePositionInNode(const VisiblePosition& visible_position,
const ContainerNode* node) { … }
}
BreakBlockquoteCommand::BreakBlockquoteCommand(Document& document)
: … { … }
static HTMLQuoteElement* TopBlockquoteOf(const Position& start) { … }
void BreakBlockquoteCommand::DoApply(EditingState* editing_state) { … }
}