<!--
@license
Copyright (C) 2017 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="../../../behaviors/rest-client-behavior/rest-client-behavior.html">
<link rel="import" href="../../../bower_components/polymer/polymer.html">
<link rel="import" href="../../shared/gr-copy-clipboard/gr-copy-clipboard.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-download-commands">
  <template>
    <style include="shared-styles">
      ul {
        list-style: none;
        margin-bottom: .5em;
      }
      li {
        display: inline-block;
        margin: 0;
        padding: 0;
      }
      li gr-button {
        margin-right: 1em;
      }
      label,
      input {
        display: block;
      }
      label {
        font-family: var(--font-family-bold);
      }
      li[selected] gr-button {
        color: var(--primary-text-color);
        font-family: var(--font-family-bold);
        text-decoration: none;
      }
      .schemes {
        display: flex;
        justify-content: space-between;
      }
      .commands {
        display: flex;
        flex-direction: column;
        border-bottom: 1px solid var(--border-color);
        border-top: 1px solid var(--border-color);
        padding: .5em;
      }
      gr-copy-clipboard {
        width: 60em;
        margin-bottom: .5em;
      }
    </style>
    <div class="schemes">
      <ul hidden$="[[!schemes.length]]" hidden>
        <template is="dom-repeat" items="[[schemes]]" as="scheme">
          <li selected$="[[_computeSelected(scheme, selectedScheme)]]">
            <gr-button link data-scheme$="[[scheme]]" on-tap="_handleSchemeTap">
              [[scheme]]
            </gr-button>
          </li>
        </template>
      </ul>
    </div>
    <div class="commands" hidden$="[[!schemes.length]]" hidden>
      <template is="dom-repeat"
          items="[[commands]]"
          as="command">
        <gr-copy-clipboard
            title=[[command.title]]
            text=[[command.command]]></gr-copy-clipboard>
      </template>
    </div>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="gr-download-commands.js"></script>
</dom-module>
