{{/*

  This template is used to render a group of events starting with a given prefix.

  It expects to be passed a `group_name` parameter. For example:

      {{% event-group group_name="m.call" %}}

  The template will then render all events whose schema starts with the given name.

  This template replaces the old {{*_events}} template.

*/}}

{{ $base_path := "event-schemas/schema" }}

{{ $group_name := .Params.group_name }}

{{/* Filter events and prepare them for sorting */}}
{{ $events := slice }}
{{ range $event_name, $event_data := index .Site.Data "event-schemas" "schema" }}
    {{ $prefix := substr $event_name 0 (len $group_name) }}
    {{ if eq $prefix $group_name }}
        {{ $events = $events | append (dict "event_name" $event_name "event_data" $event_data) }}
    {{ end }}
{{ end }}

{{/* Render the events sorted by x-weight */}}
{{ range sort $events "event_data.x-weight" }}

    {{ $path := delimit (slice $base_path .event_name) "/" }}
    {{ $event_data := partial "json-schema/resolve-refs" (dict "schema" .event_data "path" $path) }}
    {{ $event_data := partial "json-schema/resolve-allof" $event_data }}

    {{ partial "events/render-event" (dict "event_name" .event_name "event_data" $event_data)}}

{{ end }}
