#include "third_party/blink/renderer/core/html/forms/range_input_type.h"
#include <algorithm>
#include <limits>
#include "third_party/blink/public/common/input/web_pointer_properties.h"
#include "third_party/blink/public/strings/grit/blink_strings.h"
#include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
#include "third_party/blink/renderer/core/dom/events/scoped_event_queue.h"
#include "third_party/blink/renderer/core/dom/events/simulated_click_options.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/events/keyboard_event.h"
#include "third_party/blink/renderer/core/events/mouse_event.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/html/forms/html_data_list_element.h"
#include "third_party/blink/renderer/core/html/forms/html_data_list_options_collection.h"
#include "third_party/blink/renderer/core/html/forms/html_input_element.h"
#include "third_party/blink/renderer/core/html/forms/html_option_element.h"
#include "third_party/blink/renderer/core/html/forms/slider_thumb_element.h"
#include "third_party/blink/renderer/core/html/forms/slider_track_element.h"
#include "third_party/blink/renderer/core/html/forms/step_range.h"
#include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h"
#include "third_party/blink/renderer/core/html/shadow/shadow_element_names.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/layout/flex/layout_flexible_box.h"
#include "third_party/blink/renderer/core/layout/layout_block.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/text/platform_locale.h"
#include "third_party/blink/renderer/platform/text/text_direction.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
namespace blink {
static const int kRangeDefaultMinimum = …;
static const int kRangeDefaultMaximum = …;
static const int kRangeDefaultStep = …;
static const int kRangeDefaultStepBase = …;
static const int kRangeStepScaleFactor = …;
static Decimal EnsureMaximum(const Decimal& proposed_value,
const Decimal& minimum) { … }
RangeInputType::RangeInputType(HTMLInputElement& element)
: … { … }
void RangeInputType::Trace(Visitor* visitor) const { … }
InputTypeView* RangeInputType::CreateView() { … }
InputType::ValueMode RangeInputType::GetValueMode() const { … }
void RangeInputType::CountUsage() { … }
void RangeInputType::DidRecalcStyle(const StyleRecalcChange) { … }
double RangeInputType::ValueAsDouble() const { … }
void RangeInputType::SetValueAsDouble(double new_value,
TextFieldEventBehavior event_behavior,
ExceptionState& exception_state) const { … }
bool RangeInputType::TypeMismatchFor(const String& value) const { … }
bool RangeInputType::SupportsRequired() const { … }
StepRange RangeInputType::CreateStepRange(
AnyStepHandling any_step_handling) const { … }
void RangeInputType::HandleMouseDownEvent(MouseEvent& event) { … }
void RangeInputType::HandleKeydownEvent(KeyboardEvent& event) { … }
void RangeInputType::CreateShadowSubtree() { … }
LayoutObject* RangeInputType::CreateLayoutObject(const ComputedStyle&) const { … }
void RangeInputType::AdjustStyle(ComputedStyleBuilder& builder) { … }
Decimal RangeInputType::ParseToNumber(const String& src,
const Decimal& default_value) const { … }
String RangeInputType::Serialize(const Decimal& value) const { … }
void RangeInputType::AccessKeyAction(
SimulatedClickCreationScope creation_scope) { … }
void RangeInputType::SanitizeValueInResponseToMinOrMaxAttributeChange() { … }
void RangeInputType::StepAttributeChanged() { … }
void RangeInputType::DidSetValue(const String&, bool value_changed) { … }
ControlPart RangeInputType::AutoAppearance() const { … }
void RangeInputType::UpdateView() { … }
String RangeInputType::SanitizeValue(const String& proposed_value) const { … }
void RangeInputType::WarnIfValueIsInvalid(const String& value) const { … }
String RangeInputType::RangeOverflowText(const Decimal& maximum) const { … }
String RangeInputType::RangeUnderflowText(const Decimal& minimum) const { … }
String RangeInputType::RangeInvalidText(const Decimal& minimum,
const Decimal& maximum) const { … }
void RangeInputType::DisabledAttributeChanged() { … }
bool RangeInputType::ShouldRespectListAttribute() { … }
inline SliderThumbElement* RangeInputType::GetSliderThumbElement() const { … }
inline Element* RangeInputType::SliderTrackElement() const { … }
void RangeInputType::ListAttributeTargetChanged() { … }
static bool DecimalCompare(const Decimal& a, const Decimal& b) { … }
void RangeInputType::UpdateTickMarkValues() { … }
Decimal RangeInputType::FindClosestTickMarkValue(const Decimal& value) { … }
void RangeInputType::ValueAttributeChanged() { … }
bool RangeInputType::IsDraggedSlider() const { … }
}