/* * Copyright (c) 2018-2020, Andreas Kling * Copyright (c) 2021, Tobias Christiansen * Copyright (c) 2021-2025, Sam Atkins * Copyright (c) 2022-2023, MacDue * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::CSS { class UnresolvedStyleValue final : public CSSStyleValue { public: static ValueComparingNonnullRefPtr create(Vector&& values, Optional = {}, Optional original_source_text = {}); virtual ~UnresolvedStyleValue() override = default; virtual String to_string(SerializationMode) const override; virtual Vector tokenize() const override { return m_values; } Vector const& values() const { return m_values; } bool contains_arbitrary_substitution_function() const { return m_substitution_functions_presence.has_any(); } bool includes_attr_function() const { return m_substitution_functions_presence.attr; } bool includes_var_function() const { return m_substitution_functions_presence.var; } virtual bool equals(CSSStyleValue const& other) const override; private: UnresolvedStyleValue(Vector&& values, Parser::SubstitutionFunctionsPresence, Optional original_source_text); Vector m_values; Parser::SubstitutionFunctionsPresence m_substitution_functions_presence {}; Optional m_original_source_text; }; }