<!--
  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.
-->

{{/* . is internal/frontend.UnitPage */}}

{{define "unit_header"}}
  {{template "unit_header_breadcrumbs" .}}
  <div class="js-headerSentinel"></div>
  <div class="UnitHeader-outer
      {{if .Unit.IsPackage}} UnitHeader-outer--package{{end}}
      {{if eq .SelectedTab.Name ""}} UnitHeader-outer--main{{end}}">
    <header class="UnitHeader UnitHeader--full js-unitHeader" role="complementary"
      aria-label="{{if eq .PageType "std"}}module{{else}}{{.PageType}}{{end}} {{.Title}} information">
      <div class="Site-margin UnitHeader-inner">
        {{template "unit_header_title" .}}
        {{with .Breadcrumb}}
          {{if .CopyData}}
            <button class="CopyToClipboardButton js-copyToClipboard"
                title="Copy path to clipboard.&#10;&#10;{{.CopyData}}"
                data-to-copy="{{.CopyData}}"
                tabindex="-1">
              <img class="CopyToClipboardButton-image" src="/static/img/copy-click.svg" alt="">
            </button>
          {{end}}
        {{end}}
        <div style="flex-grow: 1;"></div>
        <div class="UnitHeader-details">
          {{if (eq .SelectedTab.Name "")}}
            {{template "detail_item_version" .}}
            {{template "detail_item_commit_time" .}}
            {{template "detail_item_licenses" .}}
            {{if .Unit.IsPackage}}
              {{template "detail_item_imports" .}}
              {{template "detail_item_importedby" .}}
            {{end}}
          {{else}}
            {{template "detail_page_nav" .}}
          {{end}}
        </div>
        {{template "detail_items_overflow" .}}
      </div>
    </header>
  </div>
  {{template "unit_header_banners" .}}
{{end}}

{{define "unit_header_breadcrumbs"}}
  <div class="UnitHeader-breadcrumbs" data-test-id="UnitHeader-breadcrumb">
    <div class="Site-margin">
      {{with .Breadcrumb}}
        {{range .Links}}
          <span class="UnitHeader-breadcrumbItem" data-test-id="UnitHeader-breadcrumbItem">
            <a href="{{.Href}}">{{.Body}}</a>
          </span>
        {{end}}
        <span class="UnitHeader-breadcrumbItem">
          <span data-test-id="UnitHeader-breadcrumbCurrent">{{.Current}}</span>
          {{if .CopyData}}
            <button class="CopyToClipboardButton js-copyToClipboard"
                title="Copy path to clipboard.&#10;&#10;{{.CopyData}}"
                data-to-copy="{{.CopyData}}">
              <img class="CopyToClipboardButton-image" src="/static/img/copy-click.svg" alt="">
            </button>
          {{end}}
        </span>
      {{end}}
    </div>
  </div>
{{end}}

{{define "unit_header_title"}}
  <div class="UnitHeader-title">
    <div class="UnitHeader-logo">
      <a href="https://go.dev/" tabindex="-1">
        <img height="72px" width="72px" class="UnitHeader-logo" src="/static/img/go-logo-blue.svg" alt="Go">
      </a>
    </div>
    <h1 data-test-id="UnitHeader-title">{{.Title}}</h1>
    {{range .PageLabels}}
      <span class="UnitHeader-badge">{{.}}</span>
    {{end}}
  </div>
{{end}}

{{define "detail_item_version"}}
  <span class="UnitHeader-detailItem" data-test-id="UnitHeader-version">
    <a href="?tab=versions"><span>Version: </span>{{.DisplayVersion}}</a>
    <!-- Do not reformat the data attributes of the following div: the server uses a regexp to extract them. -->
    <div class="DetailsHeader-badge {{.LatestMinorClass}}"
        data-test-id="UnitHeader-minorVersionBanner"
        data-version="{{.LinkVersion}}"
        data-mpath="{{.Unit.ModulePath}}"
        data-ppath="{{.Unit.Path}}"
        data-pagetype="{{.PageType}}">
      <span class="DetailsHeader-span--latest">Latest</span>
      <span class="DetailsHeader-span--notAtLatest">
        Latest
        {{template "severity_toggletip" "This package is not in the latest version of its module."}}
      </span>
      <a href="{{.LatestURL}}">Go to latest</a>
    </div>
  </span>
{{end}}

{{define "detail_item_commit_time"}}
  <span class="UnitHeader-detailItem" data-test-id="UnitHeader-commitTime">
    Published: {{.Details.CommitTime}}
  </span>
{{end}}

{{define "detail_item_licenses"}}
  <span class="UnitHeader-detailItem" data-test-id="UnitHeader-licenses">
    License:{{" "}}
    {{- if .Details.Licenses -}}
      {{- if .Unit.IsRedistributable -}}
        <a href="{{$.URLPath}}?tab=licenses" data-test-id="UnitHeader-license">
          {{- range $i, $e := .Details.Licenses -}}
            {{if $i}}, {{end}}{{$e.Type}}
          {{- end -}}
        </a>
      {{else}}
        <span>
          {{- range $i, $e := .Details.Licenses -}}
            {{if $i}}, {{end}} {{$e.Type}}
          {{- end -}}
        </span>
        <a href="/license-policy" class="Disclaimer-link"><em>not legal advice</em></a>
      {{end}}
    {{else}}
      <span>None detected</span>
      <a href="/license-policy" class="Disclaimer-link"><em>not legal advice</em></a>
    {{end}}
  </span>
{{end}}

{{define "detail_item_imports"}}
  <span class="UnitHeader-detailItem" data-test-id="UnitHeader-imports">
    <a href="{{$.URLPath}}?tab=imports">
      <span>Imports: </span>{{.Details.NumImports}}
    </a>
  </span>
{{end}}

{{define "detail_item_importedby"}}
  <span class="UnitHeader-detailItem" data-test-id="UnitHeader-importedby">
    <a href="{{$.URLPath}}?tab=importedby">
       <span>Imported by: </span>{{.Details.ImportedByCount}}
    </a>
  </span>
{{end}}

{{define "detail_items_overflow"}}
  <div class="UnitHeader-overflowContainer">
    <svg class="UnitHeader-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="UnitHeader-overflowSelect js-overflowSelect" tabindex="-1">
      <option>Main</option>
      <option value="{{$.URLPath}}?tab=versions">
        Versions
      </option>
      <option value="{{$.URLPath}}?tab=licenses">
        Licenses
      </option>
      {{if .Unit.IsPackage}}
        <option value="{{$.URLPath}}?tab=imports">
          Imports
        </option>
        <option value="{{$.URLPath}}?tab=importedby">
          Imported By
        </option>
      {{end}}
    </select>
  </div>
{{end}}

{{define "detail_page_nav"}}
  <span class="UnitHeader-detailItem">
    <!-- Do not reformat the data attributes of the following div: the server uses a regexp to extract them. -->
    <div style="display: none;" class="DetailsHeader-badge {{.LatestMinorClass}}"
        data-version="{{.LinkVersion}}" data-mpath="{{.Unit.ModulePath}}" data-ppath="{{.Unit.Path}}" data-pagetype="{{.PageType}}">
    </div>
    <a class="UnitHeader-backLink" href="{{.URLPath}}">
      <img height="16px" width="16px" src="/static/img/pkg-icon-arrowLeft_16x16.svg" alt=""> Go to main page
    </a>
  </span>
{{end}}

{{define "unit_header_banners"}}
  {{with .RedirectedFromPath}}
    <div class="UnitHeader-banner UnitHeader-banner--redirected">
      <span class="Site-margin UnitHeader-bannerContent">
        <img height="19px" width="16px" class="UnitHeader-banner-icon" src="/static/img/pkg-icon-info_19x16.svg" alt="">
        <span>
        Redirected from <span data-test-id="redirected-banner-text">{{.}}</span>.
        </span>
      </span>
    </div>
  {{end}}
  {{if (.Experiments.IsActive "retractions")}}
    {{if .Unit.Deprecated}}
      <div class="UnitHeader-banner UnitHeader-banner--deprecated">
        <span class="Site-margin UnitHeader-bannerContent">
          <strong>Deprecated</strong>
          {{with .Unit.DeprecationComment}}
            <strong>:</strong>&nbsp;{{.}}
          {{end}}
        </span>
      </div>
    {{end}}
    {{if .Unit.Retracted}}
      <div class="UnitHeader-banner UnitHeader-banner--retracted">
        <span class="Site-margin UnitHeader-bannerContent">
          <strong>Retracted</strong>
            {{with .Unit.RetractionRationale}}
            <strong>:</strong> {{.}}
          {{end}}
        </span>
      </div>
    {{end}}
  {{end}}
  {{if .LatestMajorVersion}}
    <div class="UnitHeader-banner UnitHeader-banner--majorVersion" data-test-id="UnitHeader-majorVersionBanner">
      <span class="Site-margin UnitHeader-bannerContent">
        <img height="19px" width="16px" class="UnitHeader-banner-icon" src="/static/img/pkg-icon-info_19x16.svg" alt="">
        <span>
          The highest tagged major version is <a href="/{{.LatestMajorVersionURL}}">{{.LatestMajorVersion}}</a>.
        </span>
      </span>
    </div>
  {{end}}
{{end}}

{{define "severity_toggletip"}}
  <span class="UnitMetaDetails-toggletip">
    <button type="button" aria-label="more info" data-toggletip-content="{{.}}">
      <img src="/static/img/severity.svg" alt="" height="14" width="15">
    </button>
    <span role="status"></span>
  </span>
{{end}}
