/* * Copyright (c) 2024, Jamie Mansfield * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include namespace Web::UIEvents { GC_DEFINE_ALLOCATOR(InputEvent); GC::Ref InputEvent::create_from_platform_event(JS::Realm& realm, FlyString const& event_name, InputEventInit const& event_init) { auto event = realm.create(realm, event_name, event_init); event->set_bubbles(true); if (event_name == "beforeinput"_fly_string) { event->set_cancelable(true); } return event; } WebIDL::ExceptionOr> InputEvent::construct_impl(JS::Realm& realm, FlyString const& event_name, InputEventInit const& event_init) { return realm.create(realm, event_name, event_init); } InputEvent::InputEvent(JS::Realm& realm, FlyString const& event_name, InputEventInit const& event_init) : UIEvent(realm, event_name, event_init) , m_data(event_init.data) , m_is_composing(event_init.is_composing) , m_input_type(event_init.input_type) { } InputEvent::~InputEvent() = default; void InputEvent::initialize(JS::Realm& realm) { Base::initialize(realm); WEB_SET_PROTOTYPE_FOR_INTERFACE(InputEvent); } Vector InputEvent::get_target_ranges() const { dbgln("FIXME: Implement InputEvent::get_target_ranges()"); return {}; } }