<!--
@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="../../../bower_components/polymer/polymer.html">

<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
<link rel="import" href="../../shared/gr-tooltip-content/gr-tooltip-content.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-change-status">
  <template>
    <style include="shared-styles">
      .chip {
        border-radius: 4px;
        background-color: var(--chip-background-color);
        font-family: var(--font-family);
        font-size: var(--font-size-normal);
        padding: .1em .5em;
        white-space: nowrap;
      }
      :host(.merged) .chip {
        background-color: #5b9d52;
        color: #5b9d52;
      }
      :host(.abandoned) .chip {
        background-color: #afafaf;
        color: #afafaf;
      }
      :host(.wip) .chip {
        background-color: #8f756c;
        color: #8f756c;
      }
      :host(.private) .chip {
        background-color: #c17ccf;
        color: #c17ccf;
      }
      :host(.merge-conflict) .chip {
        background-color: #dc5c60;
        color: #dc5c60;
      }
      :host(.active) .chip {
        background-color: #29b6f6;
        color: #29b6f6;
      }
      :host(.ready-to-submit) .chip {
        background-color: #e10ca3;
        color: #e10ca3;
      }
      :host(.custom) .chip {
        background-color: #825cc2;
        color: #825cc2;
      }
      :host([flat]) .chip {
        background-color: transparent;
        padding: .1em;
      }
      :host:not([flat]) .chip {
        color: white;
      }
    </style>
    <gr-tooltip-content
        has-tooltip
        position-below
        title="[[tooltipText]]"
        max-width="40em">
      <div
          class="chip"
          aria-label$="Label: [[status]]">
        [[_computeStatusString(status)]]
      </div>
    </gr-tooltip-content>
  </template>
  <script src="gr-change-status.js"></script>
</dom-module>
