@graphql-hive/laboratory
Version:
[Hive](https://the-guild.dev/graphql/hive) is a fully open-source schema registry, analytics, metrics and gateway for [GraphQL federation](https://the-guild.dev/graphql/hive/federation) and other GraphQL APIs.
16 lines (15 loc) • 897 B
TypeScript
/**
* Works around monaco losing hovers when it runs inside a shadow root.
*
* Monaco installs a document-level `mousemove` listener as a fallback for browsers
* that occasionally skip `mouseleave`, and decides the pointer left the editor with
* `viewDomNode.contains(event.target)`. Events crossing a shadow boundary are
* retargeted to the host, and the host is an *ancestor* of the view node, so that
* check is false for every move. Monaco therefore reports a mouse leave on the same
* event that opened the hover, and tears it down before it can be seen.
*
* Keeping editor mouse moves inside the shadow tree avoids that. Monaco's real
* `mouseleave` listener sits on the view node itself and still fires correctly, and
* its drag handling uses pointer events, which are untouched.
*/
export declare function keepEditorMouseMovesInShadowRoot(shadowRoot: ShadowRoot): () => void;