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

<dom-module id="gr-comment-list">
  <template>
    <style>
      :host {
        display: block;
        font-family: var(--monospace-font-family);
      }
      .file {
        border-top: 1px solid #ddd;
        font-weight: bold;
        margin: 10px 0 3px;
        padding: 10px 0 5px;
      }
      .container {
        display: flex;
        margin: 5px 0;
      }
      .lineNum {
        margin-right: .35em;
        min-width: 7em;
      }
      .message {
        flex: 1;
        white-space: pre-wrap;
        word-wrap: break-word;
      }
    </style>
    <template is="dom-repeat" items="[[_computeFilesFromComments(comments)]]" as="file">
      <div class="file">
        <a href$="[[_computeFileDiffURL(file, changeNum, patchNum)]]">[[file]]</a>:
      </div>
      <template is="dom-repeat"
                items="[[_computeCommentsForFile(comments, file)]]" as="comment">
        <div class="container">
          <a class="lineNum"
             href$="[[_computeDiffLineURL(file, changeNum, comment.patch_set, comment)]]">
             <span hidden$="[[!comment.line]]">
               <span>[[_computePatchDisplayName(comment)]]</span>
               Line <span>[[comment.line]]</span>:
             </span>
             <span hidden$="[[comment.line]]">
               File comment:
             </span>
          </a>
          <div class="message">[[comment.message]]</div>
        </div>
      </template>
    </template>
  </template>
  <script src="gr-comment-list.js"></script>
</dom-module>
