<!DOCTYPE html>
<html>
  <head>
    <title>Performance Result Comparison</title>
    <style type="text/css">
#header h1 {
  display: inline;
}
#search {
  padding: 1em .5em;
  width: 100%;
}
input[type="text"] {
  font-size: 100%;
}
#results {
  border-top: 1px solid black;
}
tr.diff td {
  font-size: 80%;
  font-family: sans-serif;
  vertical-align: top;
}
th.label {
  text-align: left;
  vertical-align: top;
}
td.count {
  text-align: right;
}
#labels {
  float: left;
  margin-right: 1em;
  border-right: 1px solid black;
  border-collapse: collapse;
  vertical-align: top;
}
#labels tbody {
  border-collapse: collapse;
  border-bottom: 1px solid black;
}
#labels > tbody > tr:last-child > th, #labels > tbody > tr:last-child > td {
  padding-bottom: 1em;
}
#labels tbody tr:first-child th, #benchstat {
  padding-top: 1em;
}
#labels tbody.diff tr:first-child th {
  padding-top: 1em;
  border-collapse: collapse;
  border-top: 1px solid black;
}
#labels .diff {
  padding-bottom: 1em;
}
#labels .diff table td {
  max-width: 20em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.benchstat { border-collapse: collapse; }
.benchstat th:nth-child(1) { text-align: left; }
.benchstat tbody td:nth-child(1n+2):not(.note) { text-align: right; padding: 0em 1em; }
.benchstat tr:not(.configs) th { border-top: 1px solid #666; border-bottom: 1px solid #ccc; }
.benchstat .nodelta { text-align: center !important; }
.benchstat .better td.delta { font-weight: bold; }
.benchstat .worse td.delta { font-weight: bold; color: #c00; }

    </style>
  </head>
  <body>
    <div id="header">
      <h1>Go Performance Dashboard</h1>
      <a href="/">about</a>
    </div>
    <div id="search">
      <form action="/search">
        <input type="text" name="q" value="{{.Q}}" size="120">
        <input type="submit" value="Search">
      </form>
    </div>
    <div id="results">
      {{with .Error}}
      <p>{{.}}</p>
      {{else}}
        <table id="labels">
          {{with .CommonLabels}}
            <tbody>
              <tr>
                <th>label</th><th>common value</th>
              </tr>
              {{range $label, $value := .}}
                <tr>
                  <th class="label">{{$label}}</th><td>{{$value}}</td>
                </tr>
              {{end}}
            </tbody>
          {{end}}
          <tbody class="diff">
            <tr>
              <th>label</th>
              <th>values</th>
            </tr>
            {{range $label, $exists := .Labels}}
            <tr class="diff">
              <th class="label">{{$label}}</th>
              <td>
                {{range $index, $group := $.Groups}}
                Query {{$index}}: 
                <table>
                  {{with index $group.LabelValues $label}}
                    {{range .TopN 4}}
                      <tr>
                        <td class="count">
                          {{.Count}}
                        </td>
                        <td>
                          {{if eq .Value ""}}
                            missing
                          {{else if eq .Value "…"}}
                            {{.Value}}
                          {{else}}
                            <a href="/search?q={{addToQuery $.Q (printf "%s:%s" $label .Value)}}">
                              {{printf "%q" .Value}}
                            </a>
                          {{end}}
                        </td>
                      </tr>
                    {{end}}
                  {{end}}
                </table>
              {{end}}
              </td>
            </tr>
            {{end}}
            </tbody>
        </table>
        <div id="benchstat">
          {{.Benchstat}}
        </div>
      {{end}}
      </div>
  </body>
</html>
