<!--
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="../gr-diff-comment-thread/gr-diff-comment-thread.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-diff-comment-thread-group">
  <template>
    <style include="shared-styles">
      :host {
        display: block;
        white-space: normal;
      }
      gr-diff-comment-thread + gr-diff-comment-thread {
        margin-top: .2em;
      }
    </style>
    <template is="dom-repeat" items="[[_threads]]" as="thread">
      <gr-diff-comment-thread
          comments="[[thread.comments]]"
          comment-side="[[commentSide]]"
          is-on-parent="[[isOnParent]]"
          parent-index="[[parentIndex]]"
          change-num="[[changeNum]]"
          patch-num="[[thread.patchNum]]"
          root-id="[[thread.rootId]]"
          path="[[path]]"
          project-name="[[projectName]]"
          range="[[thread.range]]"></gr-diff-comment-thread>
    </template>
  </template>
  <script src="gr-diff-comment-thread-group.js"></script>
</dom-module>
