<!--
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="../../shared/gr-button/gr-button.html">
<link rel="import" href="../gr-message/gr-message.html">

<dom-module id="gr-messages-list">
  <template>
    <style>
      :host {
        display: block;
      }
      .header {
        display: flex;
        justify-content: space-between;
        margin-bottom: .35em;
      }
      .header,
      gr-message {
        padding: 0 var(--default-horizontal-margin);
      }
      .highlighted {
        animation: 3s fadeOut;
      }
      @keyframes fadeOut {
        0% { background-color: #fff9c4; }
        100% { background-color: #fff; }
      }
    </style>
    <div class="header">
      <h3>Messages</h3>
      <gr-button link on-tap="_handleExpandCollapseTap">
        [[_computeExpandCollapseMessage(_expanded)]]
      </gr-button>
    </div>
    <template is="dom-repeat" items="[[messages]]" as="message">
      <gr-message
          change-num="[[changeNum]]"
          message="[[message]]"
          comments="[[_computeCommentsForMessage(comments, message, index)]]"
          project-config="[[projectConfig]]"
          show-reply-button="[[showReplyButtons]]"
          on-scroll-to="_handleScrollTo"
          data-message-id$="[[message.id]]"></gr-message>
    </template>
  </template>
  <script src="gr-messages-list.js"></script>
</dom-module>
