<!--
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="../../../behaviors/gr-change-table-behavior/gr-change-table-behavior.html">
<link rel="import" href="../../../bower_components/polymer/polymer.html">
<link rel="import" href="../../../bower_components/iron-input/iron-input.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-date-formatter/gr-date-formatter.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">

<link rel="import" href="../../../styles/gr-form-styles.html">

<dom-module id="gr-change-table-editor">
  <template>
    <style>
      table {
        margin-top: 1em;
      }
      th.nameHeader {
        width: 11em;
      }
      td.checkboxContainer {
        border: 1px solid #fff;
        cursor: pointer;
        text-align: center;
      }
      td.checkboxContainer:hover {
        border: 1px solid #ddd;
      }
    </style>
    <style include="gr-form-styles"></style>
    <div class="gr-form-styles">
      <table>
        <thead>
          <tr>
            <th class="nameHeader">Column</th>
            <th>Visible</th>
          </tr>
        </thead>
        <tbody>
          <template is="dom-repeat" items="[[columnNames]]">
            <tr>
              <td>[[item]]</td>
              <td class="checkboxContainer"
                  on-tap="_handleTargetTap">
                <input
                    type="checkbox"
                    name="[[item]]"
                    checked$="[[!isColumnHidden(item, displayedColumns)]]">
              </td>
            </tr>
          </template>
        </tbody>
      </table>
    </div>
  </template>
  <script src="gr-change-table-editor.js"></script>
</dom-module>
