# `MishkaGervaz.Form.Entities.Events`
[🔗](https://github.com/mishka-group/mishka_gervaz/blob/v0.0.1-alpha.3/lib/mishka_gervaz/form/entities/events.ex#L1)

Event-handler module overrides — replace the default event-handling
pipeline (or any sub-handler) with your own implementations.

Two calling styles. Pass a module positionally to override the entire
events handler, or use the block form to swap individual sub-handlers
while keeping the defaults for the rest:

    # Whole-module override
    events MyApp.Form.CustomEvents

    # Per-sub-handler overrides
    events do
      sanitization MyApp.Form.Events.SanitizationHandler
      validation MyApp.Form.Events.ValidationHandler
      submit MyApp.Form.Events.SubmitHandler
      step MyApp.Form.Events.StepHandler
      upload MyApp.Form.Events.UploadHandler
      relation MyApp.Form.Events.RelationHandler
      hooks MyApp.Form.Events.HookRunner
    end

## Defaults

When no overrides are specified, the following defaults are used:

  * `sanitization` — `MishkaGervaz.Form.Web.Events.SanitizationHandler.Default`
  * `validation`   — `MishkaGervaz.Form.Web.Events.ValidationHandler.Default`
  * `submit`       — `MishkaGervaz.Form.Web.Events.SubmitHandler.Default`
  * `step`         — `MishkaGervaz.Form.Web.Events.StepHandler.Default`
  * `upload`       — `MishkaGervaz.Form.Web.Events.UploadHandler.Default`
  * `relation`     — `MishkaGervaz.Form.Web.Events.RelationHandler.Default`
  * `hooks`        — `MishkaGervaz.Form.Web.Events.HookRunner.Default`

See `MishkaGervaz.Form.Dsl.Events` for the DSL declaration.

# `t`

```elixir
@type t() :: %MishkaGervaz.Form.Entities.Events{
  __spark_metadata__: map() | nil,
  hooks: module() | nil,
  module: module() | nil,
  relation: module() | nil,
  sanitization: module() | nil,
  step: module() | nil,
  submit: module() | nil,
  upload: module() | nil,
  validation: module() | nil
}
```

# `transform`

Transform the events after DSL compilation.

---

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