Slot.h 907 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/String.h>
  8. #include <LibWeb/DOM/Slottable.h>
  9. namespace Web::DOM {
  10. // https://dom.spec.whatwg.org/#concept-slot
  11. class Slot {
  12. public:
  13. virtual ~Slot();
  14. String const& slot_name() const { return m_name; } // Not called `name` to distinguish from `Element::name`.
  15. void set_slot_name(String name) { m_name = move(name); }
  16. ReadonlySpan<DOM::Slottable> assigned_nodes_internal() const { return m_assigned_nodes; }
  17. void set_assigned_nodes(Vector<DOM::Slottable> assigned_nodes) { m_assigned_nodes = move(assigned_nodes); }
  18. protected:
  19. void visit_edges(JS::Cell::Visitor&);
  20. private:
  21. // https://dom.spec.whatwg.org/#slot-name
  22. String m_name;
  23. // https://dom.spec.whatwg.org/#slot-assigned-nodes
  24. Vector<Slottable> m_assigned_nodes;
  25. };
  26. }