<!--
Copyright (C) 2015 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<link rel="import" href="../../../bower_components/polymer/polymer.html">
<link rel="import" href="../../../behaviors/base-url-behavior/base-url-behavior.html">
<link rel="import" href="../../../behaviors/gr-url-encoding-behavior.html">
<link rel="import" href="../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.html">
<link rel="import" href="../../../behaviors/rest-client-behavior/rest-client-behavior.html">
<link rel="import" href="../../../bower_components/iron-dropdown/iron-dropdown.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-fixed-panel/gr-fixed-panel.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
<link rel="import" href="../../shared/gr-select/gr-select.html">
<link rel="import" href="../gr-diff-cursor/gr-diff-cursor.html">
<link rel="import" href="../gr-diff-preferences/gr-diff-preferences.html">
<link rel="import" href="../gr-diff/gr-diff.html">
<link rel="import" href="../gr-patch-range-select/gr-patch-range-select.html">

<dom-module id="gr-diff-view">
  <template>
    <style>
      :host {
        background-color: var(--view-background-color);
      }
      gr-diff {
        border: none;
      }
      gr-fixed-panel {
        background-color: #fff;
        border-bottom: 1px #eee solid;
        z-index: 1;
      }
      header,
      .subHeader {
        align-items: center;
        display: flex;
        justify-content: space-between;
      }
      header {
        padding: .75em var(--default-horizontal-margin);
      }
      .patchRangeLeft {
        display: flex;
      }
      .navLink:not([href]),
      .downloadLink:not([href]) {
        color: #999;
      }
      .navLinks {
        white-space: nowrap;
      }
      .reviewed {
        display: inline-block;
        margin: 0 .25em;
        vertical-align: .15em;
      }
      .jumpToFileContainer {
        display: inline-block;
      }
      .mobile {
        display: none;
      }
      .downArrow {
        display: inline-block;
        font-size: .6em;
        vertical-align: middle;
      }
      .dropdown-trigger {
        color: #00e;
        cursor: pointer;
        padding: 0;
      }
      iron-dropdown {
        position: absolute;
      }
      .dropdown-content {
        background-color: #fff;
        box-shadow: 0 1px 5px rgba(0, 0, 0, .3);
      }
      .dropdown-content a {
        cursor: pointer;
        display: block;
        font-weight: normal;
        padding: .3em .5em;
      }
      .dropdown-content a:before {
        color: #ccc;
        content: attr(data-key-nav);
        display: inline-block;
        margin-right: .5em;
        width: .3em;
      }
      .dropdown-content a:hover {
        background-color: #00e;
        color: #fff;
      }
      .dropdown-content a[selected] {
        color: #000;
        font-weight: bold;
        pointer-events: none;
        text-decoration: none;
      }
      .dropdown-content a[selected]:hover {
        background-color: #fff;
        color: #000;
      }
      gr-button {
        font: inherit;
        padding: .3em 0;
        text-decoration: none;
      }
      .loading {
        padding: 0 var(--default-horizontal-margin) 1em;
        color: #666;
      }
      .subHeader {
        flex-wrap: wrap;
        margin: 0 var(--default-horizontal-margin) .75em;
      }
      .subHeader > div {
        margin-top: .25em;
      }
      .prefsButton {
        text-align: right;
      }
      .separator {
        margin: 0 .25em;
      }
      @media screen and (max-width: 50em) {
        header {
          padding: .5em var(--default-horizontal-margin);
        }
        .dash {
          display: none;
        }
        .desktop {
          display: none;
        }
        .fileNav {
          align-items: flex-start;
          display: flex;
          margin: 0 .25em;
        }
        .fullFileName {
          display: block;
          font-size: .9em;
          font-style: italic;
          min-width: 50%;
          padding: 0 .1em;
          text-align: center;
          width: 100%;
          word-wrap: break-word;
        }
        .reviewed {
          vertical-align: -.1em;
        }
        .mobileJumpToFileContainer {
          display: block;
          width: 100%;
        }
        .mobileJumpToFileContainer select {
          width: 100%;
        }
        .mobileNavLink {
          color: #000;
          font-size: 1.5em;
          font-weight: bold;
          text-decoration: none;
        }
        .mobileNavLink:not([href]) {
          color: #bbb;
        }
      }
    </style>
    <gr-fixed-panel
        keep-on-scroll
        ready-for-measure="[[!_loading]]">
      <header>
        <h3>
          <a href$="[[_computeChangePath(_changeNum, _patchRange.*, _change.revisions)]]">
            [[_changeNum]]</a><span>:</span>
          <span>[[_change.subject]]</span>
          <span class="dash">—</span>
          <input id="reviewed"
                 class="reviewed"
                 type="checkbox"
                 on-change="_handleReviewedChange"
                 hidden$="[[!_loggedIn]]" hidden>
          <div class="jumpToFileContainer desktop">
            <gr-button link class="dropdown-trigger" id="trigger" on-tap="_showDropdownTapHandler">
              <span>[[_computeFileDisplayName(_path)]]</span>
              <span class="downArrow">&#9660;</span>
            </gr-button>
            <!-- *-align="" to disable iron-dropdown's element positioning. -->
            <iron-dropdown id="dropdown"
                allow-outside-scroll
                vertical-align=""
                horizontal-align="">
              <div class="dropdown-content">
                <template
                    is="dom-repeat"
                    items="[[_fileList]]"
                    as="path"
                    initial-count="75">
                  <a href$="[[_computeDiffURL(_changeNum, _patchRange.*, path)]]"
                     selected$="[[_computeFileSelected(path, _path)]]"
                     data-key-nav$="[[_computeKeyNav(path, _path, _fileList)]]"
                     on-tap="_handleFileTap">[[_computeFileDisplayName(path)]]</a>
                </template>
              </div>
            </iron-dropdown>
          </div>
          <div class="mobileJumpToFileContainer mobile">
            <select on-change="_handleMobileSelectChange">
              <template is="dom-repeat" items="[[_fileList]]" as="path">
                <option
                    value$="[[path]]"
                    selected$="[[_computeFileSelected(path, _path)]]">
                  [[_computeTruncatedFileDisplayName(path)]]
                </option>
              </template>
            </select>
          </div>
        </h3>
        <div class="navLinks desktop">
          <a class="navLink"
             href$="[[_computeNavLinkURL(_path, _fileList, -1, 1)]]">Prev</a>
          /
          <a class="navLink"
             href$="[[_computeUpURL(_changeNum, _patchRange, _change, _change.revisions)]]">Up</a>
          /
          <a class="navLink"
             href$="[[_computeNavLinkURL(_path, _fileList, 1, 1)]]">Next</a>
        </div>
      </header>
      <div class="subHeader">
        <div class="patchRangeLeft">
          <gr-patch-range-select
              path="[[_path]]"
              change-num="[[_changeNum]]"
              patch-range="[[_patchRange]]"
              files-weblinks="[[_filesWeblinks]]"
              available-patches="[[_computeAvailablePatches(_change.revisions)]]"
              revisions="[[_change.revisions]]">
          </gr-patch-range-select>
          <span class="download desktop">
            <span class="separator">/</span>
            <a class="downloadLink"
               href$="[[_computeDownloadLink(_changeNum, _patchRange, _path)]]">
              Download
            </a>
          </span>
        </div>
        <div>
          <select
              id="modeSelect"
              is="gr-select"
              bind-value="{{changeViewState.diffMode}}"
              hidden$="[[_computeModeSelectHidden(_isImageDiff)]]">
            <option value="SIDE_BY_SIDE">Side By Side</option>
            <option value="UNIFIED_DIFF">Unified</option>
          </select>
          <span id="diffPrefsContainer"
              hidden$="[[_computePrefsButtonHidden(_prefs, _loggedIn)]]" hidden>
            <span class="preferences desktop">
              <span
                  hidden$="[[_computeModeSelectHidden(_isImageDiff)]]">/</span>
              <gr-button link
                  class="prefsButton"
                  on-tap="_handlePrefsTap">Preferences</gr-button>
            </span>
          </span>
        </div>
      </div>
      <div class="fileNav mobile">
        <a class="mobileNavLink"
           href$="[[_computeNavLinkURL(_path, _fileList, -1, 1)]]">&lt;</a>
        <div class="fullFileName mobile">[[_computeFileDisplayName(_path)]]
        </div>
        <a class="mobileNavLink"
            href$="[[_computeNavLinkURL(_path, _fileList, 1, 1)]]">&gt;</a>
      </div>
    </gr-fixed-panel>
    <div class="loading" hidden$="[[!_loading]]">Loading...</div>
    <div hidden hidden$="[[_loading]]">
      <gr-diff-preferences
          id="diffPreferences"
          prefs="{{_prefs}}"
          local-prefs="{{_localPrefs}}"></gr-diff-preferences>
      <gr-diff
          id="diff"
          hidden
          hidden$="[[_loading]]"
          is-image-diff="{{_isImageDiff}}"
          files-weblinks="{{_filesWeblinks}}"
          change-num="[[_changeNum]]"
          patch-range="[[_patchRange]]"
          path="[[_path]]"
          prefs="[[_prefs]]"
          project-config="[[_projectConfig]]"
          view-mode="[[_diffMode]]"
          on-line-selected="_onLineSelected">
      </gr-diff>
    </div>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
    <gr-storage id="storage"></gr-storage>
    <gr-diff-cursor id="cursor"></gr-diff-cursor>
  </template>
  <script src="gr-diff-view.js"></script>
</dom-module>
