<!--
@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="../../../behaviors/fire-behavior/fire-behavior.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>
