<!--
@license
Copyright (C) 2016 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-account-chip/gr-account-chip.html">
<link rel="import" href="../gr-account-entry/gr-account-entry.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-account-list">
  <template>
    <style include="shared-styles">
      gr-account-chip {
        display: inline-block;
        margin: .2em .2em .2em 0;
      }
      gr-account-entry {
        display: flex;
        flex: 1;
        min-width: 10em;
      }
      .group {
        --account-label-suffix: ' (group)';
      }
      .pending-add {
        font-style: italic;
      }
      .list {
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        @apply --account-list-style;
      }
    </style>
    <!--
      NOTE(Issue 6419): Nest the inner dom-repeat template in a div rather than
      as a direct child of the dom-module's template.
    -->
    <div class="list">
      <template id="chips" is="dom-repeat" items="[[accounts]]" as="account">
        <gr-account-chip
            account="[[account]]"
            class$="[[_computeChipClass(account)]]"
            data-account-id$="[[account._account_id]]"
            removable="[[_computeRemovable(account)]]"
            on-keydown="_handleChipKeydown"
            tabindex="-1">
        </gr-account-chip>
      </template>
    </div>
    <gr-account-entry
        borderless
        hidden$="[[_computeEntryHidden(maxCount, accounts.*, readonly)]]"
        id="entry"
        change="[[change]]"
        filter="[[filter]]"
        placeholder="[[placeholder]]"
        on-add="_handleAdd"
        on-input-keydown="_handleInputKeydown"
        allow-any-input="[[allowAnyInput]]"
        allow-any-user="[[allowAnyUser]]">
    </gr-account-entry>
  </template>
  <script src="gr-account-list.js"></script>
</dom-module>
