/* * Copyright (c) 2024, Shannon Booth * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::HTML { // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#validitystate class ValidityState final : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(ValidityState, Bindings::PlatformObject); GC_DECLARE_ALLOCATOR(ValidityState); public: [[nodiscard]] static GC::Ref create(JS::Realm&, FormAssociatedElement const&); virtual ~ValidityState() override = default; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-valuemissing bool value_missing() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-typemismatch bool type_mismatch() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-patternmismatch bool pattern_mismatch() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-toolong bool too_long() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-tooshort bool too_short() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-rangeunderflow bool range_underflow() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-rangeoverflow bool range_overflow() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-stepmismatch bool step_mismatch() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-badinput bool bad_input() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-customerror bool custom_error() const; // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-validitystate-valid bool valid() const; private: ValidityState(JS::Realm&, FormAssociatedElement const&); virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; FormAssociatedElement const& m_control; }; }