<!--
  Copyright 2020 The Go Authors. All rights reserved.
  Use of this source code is governed by a BSD-style
  license that can be found in the LICENSE file.
-->
<nav class="DocNav js-sideNav">
	<ul role="tree" aria-label="Outline">
		{{if or .Doc (index .Examples.Map "")}}
			<li class="DocNav-overview" role="none">
				<a href="#pkg-overview" class="js-docNav" role="treeitem" aria-level="1" tabindex="0">Overview</a>
			</li>
		{{end}}
		{{- if or .Consts .Vars .Funcs .Types -}}
			<li class="DocNav-index" role="none">
				<a href="#pkg-index" class="DocNav-groupLabel{{if not .Examples.List}} DocNav-groupLabel--empty{{end}} js-docNav"
						role="treeitem" aria-expanded="false" aria-level="1" aria-owns="nav-group-index" tabindex="-1">
					Index
				</a>
				{{if .Examples.List}}
					<ul role="group" id="nav-group-index">
						<li role="none">
							<a href="#pkg-examples" role="treeitem" aria-level="2" tabindex="-1">Examples</a>
						</li>
					</ul>
				{{end}}
			</li>
			<li class="DocNav-constants" role="none">
				<a href="#pkg-constants" class="js-docNav" role="treeitem" aria-level="1" tabindex="-1">Constants</a>
			</li>
			<li class="DocNav-variables" role="none">
				<a href="#pkg-variables" class="js-docNav" role="treeitem" aria-level="1" tabindex="-1">Variables</a>
			</li>
			<li class="DocNav-functions" role="none">
				<a href="#pkg-functions" class="DocNav-groupLabel{{if eq (len .Funcs) 0}} DocNav-groupLabel--empty{{end}} js-docNav"
						role="treeitem" aria-expanded="false" aria-level="1" aria-owns="nav-group-functions" tabindex="-1">
					Functions
				</a>
				<ul role="group" id="nav-group-functions">
					{{range .Funcs}}
						<li role="none">
							<a href="#{{.Name}}" title="{{render_short_synopsis .Decl}}" role="treeitem" aria-level="2" tabindex="-1">{{render_short_synopsis .Decl}}</a>
						</li>
					{{end}}
				</ul>
			</li>
			<li class="DocNav-types" role="none">
				<a href="#pkg-types" class="DocNav-groupLabel{{if eq (len .Types) 0}} DocNav-groupLabel--empty{{end}} js-docNav"
						role="treeitem" aria-expanded="false" aria-level="1" aria-owns="nav-group-types" tabindex="-1">
					Types
				</a>
				<ul role="group" id="nav-group-types">
					{{range .Types}}
						{{$tname := .Name}}
						<li role="none">
							{{if or .Funcs .Methods}}
								{{$navgroupname := (printf "nav.group.%s" $tname)}}
								{{$navgroupid := (safe_id $navgroupname)}}
								<a class="DocNav-groupLabel js-docNavType" href="#{{$tname}}" role="treeitem" aria-expanded="false" aria-level="2" data-aria-owns="{{$navgroupid}}" tabindex="-1">type {{$tname}}</a>
								<ul role="group" id="{{$navgroupid}}">
									{{range .Funcs}}
										<li role="none">
											<a href="#{{.Name}}" title="{{render_short_synopsis .Decl}}" role="treeitem" aria-level="3" tabindex="-1">{{render_short_synopsis .Decl}}</a>
										</li>
									{{end}}
									{{range .Methods}}
										<li role="none">
											<a href="#{{$tname}}.{{.Name}}" title="{{render_short_synopsis .Decl}}" role="treeitem" aria-level="3" tabindex="-1">{{render_short_synopsis .Decl}}</a>
										</li>
									{{end}}
								</ul>
							{{else}}
								<a href="#{{$tname}}" role="treeitem" aria-level="2" tabindex="-1">type {{$tname}}</a>
							{{end}} {{/* if or .Funcs .Methods */}}
						</li>
					{{end}} {{/* range .Types */}}
				</ul>
			</li>
		{{end}}
		{{if .Notes}}
			<li class="DocNav-notes" role="none">
				<a href="#pkg-notes" class="DocNav-groupLabel{{if eq (len .Notes) 0}} DocNav-groupLabel--empty{{end}} js-docNav"
						role="treeitem" aria-expanded="false" aria-level="1" aria-owns="nav-group-notes" tabindex="-1">Notes</a>
				<ul role="group" id="nav-group-notes">
					{{range $marker, $item := .Notes}}
						<li role="none">
							<a href="#pkg-note-{{$marker}}" role="treeitem" aria-level="2" tabindex="-1">{{(index $.NoteHeaders $marker).Label}}s</a>
						</li>
					{{end}}
				</ul>
			</li>
		{{end}}
	</ul>
</nav>
