<!--
        Copyright 2019 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.
-->
{{define "main_content"}}
<div class="Container">
  <a class="GodocButton" href="{{.GodocURL}}">Back to godoc.org</a>
  {{$header := .Header}}
  {{$pageType := .PageType}}
  <header class="DetailsHeader">
    <div class="DetailsHeader-breadcrumb">
    {{with .Breadcrumb}}
      {{range .Links}}
        <a href="{{.Href}}">{{.Body}}</a>
        <span class="DetailsHeader-breadcrumbDivider">/</span>
      {{end}}
      <span class="DetailsHeader-breadcrumbCurrent">{{.Current}}</span>
      {{if .CopyData}}
        <button class="CopyToClipboardButton js-copyToClipboard"
            title="Copy path to clipboard"
            aria-label="Copy path to clipboard"
            data-to-copy="{{.CopyData}}">
          <img class="CopyToClipboardButton-image" src="/static/img/copy-click.svg" alt="">
        </button>
      {{end}}
    {{end}}
    </div>
    <div class="DetailsHeader-main">
      <h1 class="DetailsHeader-title">
        {{if eq .PageType "std"}}
          Standard library
        {{else}}
          {{if eq $pageType "mod"}}
            Module
          {{else if eq $pageType "dir"}}
            Directory
          {{else if eq $pageType "pkg"}}
            Package
          {{else if eq $pageType "cmd"}}
            Command
          {{end}}
          {{.Name}}
        {{end}}
      </h1>
      <div class="DetailsHeader-version">{{$header.DisplayVersion}}</div>

      {{$ppath := ""}}
      {{if and (ne $pageType "mod") (ne $pageType "std")}}
         {{$ppath = $header.Path}}
      {{end}}
      <!-- Do not reformat the data attributes of the following div: the server uses a regexp to extract them. -->
      <div class="DetailsHeader-badge $$GODISCOVERY_LATESTMINORCLASS$$"
           data-version="{{$header.LinkVersion}}" data-mpath="{{$header.ModulePath}}" data-ppath="{{$ppath}}" data-pagetype="{{$pageType}}">
        <span>Latest</span>
        <a href="{{$header.LatestURL}}">Go to latest</a>
      </div>
    </div>
    <div class="DetailsHeader-banner $$GODISCOVERY_LATESTMAJORCLASS$$">
      <svg class="DetailsHeader-infoIcon" fill="currentcolor" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 426.667 426.667" style="enable-background:new 0 0 426.667 426.667;" xml:space="preserve">
        <rect x="192" y="192" width="42.667" height="128"/>
        <path d="M213.333,0C95.467,0,0,95.467,0,213.333s95.467,213.333,213.333,213.333S426.667,331.2,426.667,213.333
          S331.2,0,213.333,0z M213.333,384c-94.08,0-170.667-76.587-170.667-170.667S119.253,42.667,213.333,42.667
          S384,119.253,384,213.333S307.413,384,213.333,384z"/>
        <rect x="192" y="106.667" width="42.667" height="42.667"/>
      </svg>
      <p>
        The latest major version is <a href="/$$GODISCOVERY_LATESTMAJORVERSIONURL$$">$$GODISCOVERY_LATESTMAJORVERSION$$</a>.
      </p>
    </div>
    <div class="DetailsHeader-infoLabel">
      <span class="DetailsHeader-infoLabelTitle">Published:</span>
      <strong>{{$header.CommitTime}}</strong>
      <span class="DetailsHeader-infoLabelDivider">|</span>
      <span class="DetailsHeader-infoLabelTitle">{{pluralize (len $header.Licenses) "License"}}: </span>
      <span data-test-id="DetailsHeader-infoLabelLicense">
        {{range $i, $e := $header.Licenses}}{{if $i}}, {{end}}
          <a href="{{$header.URL}}?tab=licenses#{{.Anchor}}">{{$e.Type}}</a>
        {{else}}
          <span>None detected</span>
          <a href="/license-policy" class="Disclaimer-link"><em>not legal advice</em></a>
        {{end}}
      </span>
      {{if or (eq $pageType "pkg") (eq $pageType "dir") (eq $pageType "cmd")}}
        <span class="DetailsHeader-infoLabelDivider">|</span>
        {{if eq $header.ModulePath "std"}}
          <a data-test-id="DetailsHeader-infoLabelModule" href="{{$header.Module.URL}}">Standard library</a>
        {{else}}
          <span class="DetailsHeader-infoLabelTitle">Module: </span>
          <span>
            <a data-test-id="DetailsHeader-infoLabelModule" href="{{$header.Module.URL}}">{{$header.ModulePath}}</a>
          </span>
        {{end}}
      {{end}}
    </div>
  </header>

  <nav class="DetailsNav js-fixedHeaderSentinel js-overflowingTabList">
    <div role="tablist">
      {{range .Tabs}}
        <a role="tab"
          {{if .Disabled}}
            aria-disabled="true"
          {{else if eq .Name "doc"}}
            href="{{$header.URL}}"
          {{else}}
            href="{{$header.URL}}?tab={{.Name}}"
          {{end}}
          {{if eq .Name $.Settings.Name}}
            aria-selected="true"
          {{else}}
            aria-selected="false"
          {{end}}
        >{{.DisplayName}}</a>
      {{end}}
    </div>
    <div class="DetailsNav-overflowContainer">
      <svg class="DetailsNav-overflowImage" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
        <path d="M0 0h24v24H0z" fill="none"/>
        <path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/>
      </svg>
      <select class="DetailsNav-overflowSelect" aria-label="More">
        {{range .Tabs}}
          <option
            value="{{$header.URL}}?tab={{.Name}}"
            {{if .Disabled}}
              disabled
              data-always-disabled="true"
            {{end}}
            {{if eq .Name $.Settings.Name}}selected{{end}}
          >{{.DisplayName}}</option>
        {{end}}
      </select>
    </div>
  </nav>

  <div class="DetailsNavFixed js-fixedHeader" aria-hidden="true">
    <div class="DetailsNavFixed-container">
      <a href="https://go.dev/" class="DetailsNavFixed-logoLink">
        <img class="DetailsNavFixed-logo" src="/static/img/go-logo-blue.svg" alt="Go">
      </a>
      <div class="DetailsNavFixed-moduleInfo">
        <span class="DetailsNavFixed-title">
          {{if ne $pageType "std"}}
            <span class="DetailsNavFixed-titleType">
              {{if eq $pageType "mod"}}
                Module
              {{else if eq $pageType "dir"}}
                Directory
              {{else if eq $pageType "pkg"}}
                Package
              {{else if eq $pageType "cmd"}}
                Command
              {{end}}
            </span>
            <span class="DetailsNavFixed-titleName">{{.Name}}</span>
          {{else}}
            <span class="DetailsNavFixed-titleType">Standard library</span>
            <span class="DetailsNavFixed-titleType DetailsNavFixed-titleType--small">StdLib</span>
          {{end}}
        </span>
        {{with .Breadcrumb}}
          {{if .CopyData}}
            <button class="CopyToClipboardButton js-copyToClipboard"
                title="Copy path to clipboard"
                aria-label="Copy path to clipboard"
                data-to-copy="{{.CopyData}}">
              <img class="CopyToClipboardButton-image" src="/static/img/copy-click.svg" alt="">
            </button>
          {{end}}
        {{end}}
        <div class="DetailsNavFixed-version">{{$header.DisplayVersion}}</div>
      </div>
      <div class="DetailsNavFixed-overflowingTabList js-overflowingTabList">
        <div role="tablist">
          {{range .Tabs}}
            <a role="tab"
              {{if .Disabled}}
                aria-disabled="true"
              {{else}}
                href="{{$header.URL}}?tab={{.Name}}"
              {{end}}
              {{if eq .Name $.Settings.Name}}
                aria-selected="true"
              {{else}}
                aria-selected="false"
              {{end}}
            >{{.DisplayName}}</a>
          {{end}}
        </div>
        <div class="DetailsNavFixed-overflowContainer">
          <svg class="DetailsNavFixed-overflowImage" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
            <path d="M0 0h24v24H0z" fill="none"/>
            <path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/>
          </svg>
          <select class="DetailsNavFixed-overflowSelect" aria-label="More">
            {{range .Tabs}}
              <option
                value="{{$header.URL}}?tab={{.Name}}"
                {{if .Disabled}}
                  disabled
                  data-always-disabled="true"
                {{end}}
                {{if eq .Name $.Settings.Name}}selected{{end}}
              >{{.DisplayName}}</option>
            {{end}}
          </select>
        </div>
      </div>
    </div>
  </div>

  <div class="DetailsContent">
    {{if .CanShowDetails}}
      {{template "details_content" .Details}}
    {{else}}
      <h2>“{{.Settings.DisplayName}}” not displayed due to license restrictions.</h2>
      See our <a href="/license-policy">license policy</a>.
    {{end}}
  </div>
</div>
{{end}}

{{define "post_content"}}
  <div class="js-canonicalURLPath" data-canonical-url-path="{{.CanonicalURLPath}}" hidden />
  <script>
    loadScript('/static/js/details.min.js');
  </script>
  {{block "details_post_content" .}}{{end}}
{{end}}
