<!--
@license
Copyright (C) 2018 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="../../core/gr-navigation/gr-navigation.html">
<link rel="import" href="../../shared/gr-dialog/gr-dialog.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-confirm-submit-dialog">
  <template>
    <style include="shared-styles">
      #dialog {
        min-width: 40em;
      }
      p {
        margin-bottom: 1em;
      }
      @media screen and (max-width: 50em) {
        #dialog {
          min-width: inherit;
          width: 100%;
        }
      }
    </style>
    <gr-dialog
        id="dialog"
        confirm-label="Continue"
        confirm-on-enter
        on-cancel="_handleCancelTap"
        on-confirm="_handleConfirmTap">
      <div class="header" slot="header">
        [[action.label]]
      </div>
      <div class="main" slot="main">
        <gr-endpoint-decorator name="confirm-submit-change">
          <p>Ready to submit &ldquo;<strong>[[change.subject]]</strong>&rdquo;?</p>
          <template is="dom-if" if="[[change.is_private]]">
            <p><strong>Heads Up!</strong> Submitting this private change will also make it public.</p>
          </template>
          <gr-endpoint-param name="change" value="[[change]]"></gr-endpoint-param>
          <gr-endpoint-param name="action" value="[[action]]"></gr-endpoint-param>
        </gr-endpoint-decorator>
      </div>
    </gr-dialog>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="gr-confirm-submit-dialog.js"></script>
</dom-module>
