<!--
@license
Copyright (C) 2019 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="../../../styles/shared-styles.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-diff-preferences/gr-preferences.html">
<link rel="import" href="../../shared/gr-overlay/gr-overlay.html">

<dom-module id="gr-diff-preferences-dialog">
  <template>
    <style include="shared-styles">
      .diffHeader,
      .diffActions {
        padding: 1em 1.5em;
      }
      .diffHeader,
      .diffActions {
        background-color: var(--dialog-background-color);
      }
      .diffHeader {
        border-bottom: 1px solid var(--border-color);
        font-weight: var(--font-weight-bold);
      }
      .diffActions {
        border-top: 1px solid var(--border-color);
        display: flex;
        justify-content: flex-end;
      }
      .diffPrefsOverlay gr-button {
        margin-left: 1em;
      }
      div.edited:after {
        color: var(--deemphasized-text-color);
        content: ' *';
      }
      #diffPreferences {
        display: flex;
        padding: .35em 1.5em;
      }
    </style>
    <gr-overlay id="diffPrefsOverlay" with-backdrop>
      <div class$="diffHeader [[_computeHeaderClass(_diffPrefsChanged)]]">Diff Preferences</div>
      <gr-diff-preferences
          id="diffPreferences"
          diff-prefs="{{diffPrefs}}"
          has-unsaved-changes="{{_diffPrefsChanged}}"></gr-diff-preferences>
      <div class="diffActions">
        <gr-button
            id="cancelButton"
            link
            on-tap="_handleCancelDiff">
            Cancel
        </gr-button>
        <gr-button
            id="saveButton"
            link primary
            on-tap="_handleSaveDiffPreferences"
            disabled$="[[!_diffPrefsChanged]]">
            Save
        </gr-button>
      </div>
    </gr-overlay>
  </template>
  <script src="gr-diff-preferences-dialog.js"></script>
</dom-module>
