# `Plushie.Event`
[🔗](https://github.com/plushie-ui/plushie-elixir/blob/v0.6.0/lib/plushie/event.ex#L1)

Event types delivered to `update/2`.

# `delivered_t`

```elixir
@type delivered_t() ::
  Plushie.Event.WidgetEvent.delivered_t()
  | Plushie.Event.KeyEvent.t()
  | Plushie.Event.ModifiersEvent.t()
  | Plushie.Event.ImeEvent.t()
  | Plushie.Event.WindowEvent.delivered_t()
  | Plushie.Event.EffectEvent.t()
  | Plushie.Event.WidgetCommandError.t()
  | Plushie.Event.SystemEvent.delivered_t()
  | Plushie.Event.TimerEvent.t()
  | Plushie.Event.AsyncEvent.t()
  | Plushie.Event.StreamEvent.t()
```

# `t`

```elixir
@type t() ::
  Plushie.Event.WidgetEvent.t()
  | Plushie.Event.KeyEvent.t()
  | Plushie.Event.ModifiersEvent.t()
  | Plushie.Event.ImeEvent.t()
  | Plushie.Event.WindowEvent.t()
  | Plushie.Event.EffectEvent.t()
  | Plushie.Event.WidgetCommandError.t()
  | Plushie.Event.SystemEvent.t()
  | Plushie.Event.TimerEvent.t()
  | Plushie.Event.AsyncEvent.t()
  | Plushie.Event.StreamEvent.t()
```

# `target`

```elixir
@spec target(event :: struct()) :: String.t()
```

Returns the full scoped path as a forward-order string.

Works with any event struct that has `id` and `scope` fields.
When the event has a `window_id` field, the window_id is stripped
from the scope (it appears at the end of the scope list but is not
part of the container path).

## Examples

    iex> Plushie.Event.target(%Plushie.Event.WidgetEvent{type: :click, id: "save", scope: ["main"], window_id: "main"})
    "save"

    iex> Plushie.Event.target(%Plushie.Event.WidgetEvent{type: :click, id: "save", scope: ["form", "sidebar", "main"], window_id: "main"})
    "sidebar/form/save"

---

*Consult [api-reference.md](api-reference.md) for complete listing*
