import {NubDetail} from "./types/detail.js" import {ev, MagicEventBase} from "@chasemoskal/magical" type Any = NubDetail.Any export class NubEffectEvent extends MagicEventBase> { static type = "nub_effect" static target = ev(this).target static switch( event: NubEffectEvent, handlers: { key: (event: NubEffectEvent) => R pointer: (event: NubEffectEvent) => R stick: (event: NubEffectEvent) => R }, ): R { switch (event.detail.kind) { case "key": return handlers.key(event) case "pointer": return handlers.pointer(event) case "stick": return handlers.stick(event) } } }