#include "third_party/blink/renderer/core/html/forms/number_input_type.h"
#include <limits>
#include "third_party/blink/public/strings/grit/blink_strings.h"
#include "third_party/blink/renderer/core/dom/events/scoped_event_queue.h"
#include "third_party/blink/renderer/core/events/before_text_inserted_event.h"
#include "third_party/blink/renderer/core/events/keyboard_event.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/html/forms/html_input_element.h"
#include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/input_type_names.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/text/platform_locale.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
namespace blink {
static const int kNumberDefaultStep = …;
static const int kNumberDefaultStepBase = …;
static const int kNumberStepScaleFactor = …;
struct RealNumberRenderSize { … };
static RealNumberRenderSize CalculateRenderSize(const Decimal& value) { … }
void NumberInputType::CountUsage() { … }
void NumberInputType::SetValue(const String& sanitized_value,
bool value_changed,
TextFieldEventBehavior event_behavior,
TextControlSetValueSelection selection) { … }
double NumberInputType::ValueAsDouble() const { … }
void NumberInputType::SetValueAsDouble(double new_value,
TextFieldEventBehavior event_behavior,
ExceptionState& exception_state) const { … }
void NumberInputType::SetValueAsDecimal(const Decimal& new_value,
TextFieldEventBehavior event_behavior,
ExceptionState& exception_state) const { … }
bool NumberInputType::TypeMismatchFor(const String& value) const { … }
bool NumberInputType::TypeMismatch() const { … }
StepRange NumberInputType::CreateStepRange(
AnyStepHandling any_step_handling) const { … }
bool NumberInputType::SizeShouldIncludeDecoration(int default_size,
int& preferred_size) const { … }
static bool IsE(UChar ch) { … }
void NumberInputType::HandleKeydownEvent(KeyboardEvent& event) { … }
void NumberInputType::HandleBeforeTextInsertedEvent(
BeforeTextInsertedEvent& event) { … }
Decimal NumberInputType::ParseToNumber(const String& src,
const Decimal& default_value) const { … }
String NumberInputType::Serialize(const Decimal& value) const { … }
String NumberInputType::LocalizeValue(const String& proposed_value) const { … }
String NumberInputType::VisibleValue() const { … }
String NumberInputType::ConvertFromVisibleValue(
const String& visible_value) const { … }
String NumberInputType::SanitizeValue(const String& proposed_value) const { … }
void NumberInputType::WarnIfValueIsInvalid(const String& value) const { … }
bool NumberInputType::HasBadInput() const { … }
String NumberInputType::BadInputText() const { … }
String NumberInputType::ValueNotEqualText(const Decimal& value) const { … }
String NumberInputType::RangeOverflowText(const Decimal& maximum) const { … }
String NumberInputType::RangeUnderflowText(const Decimal& minimum) const { … }
String NumberInputType::RangeInvalidText(const Decimal& minimum,
const Decimal& maximum) const { … }
bool NumberInputType::SupportsPlaceholder() const { … }
void NumberInputType::MinOrMaxAttributeChanged() { … }
void NumberInputType::StepAttributeChanged() { … }
bool NumberInputType::SupportsSelectionAPI() const { … }
}