<!--
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="../gr-opacity-diff-mode/gr-opacity-diff-mode.html">
<link rel="import" href="../gr-resemble-diff-mode/gr-resemble-diff-mode.html">

<dom-module id="gr-image-diff-tool">
  <template>
    <style>
      :host {
        background-color: #f5f5f5;
        border-top: 1px solid var(--border-color, #ddd);
        font-family: var(--font-family);
        display: block;
      }
      #header {
        align-items: center;
        border-bottom: 1px solid var(--border-color, #ddd);
        display: inline-flex;
        padding: .5em;
        width: 100%;
      }
      h3 {
        padding: 0 .5em;
      }
      #dropdown {
        border: 1px solid var(--border-color);
        border-radius: 2px;
        font-size: var(--font-size-normal);
        height: 2em;
        margin-left: 1em;
        padding: 0 .15em;
      }
    </style>

    <div id="header">
      <h3>Image Diff</h3>
      <select value="{{_observeMode::change}}" id="dropdown">
        <option value="resemble">Resemble Mode</option>
        <option value="opacity">Opacity Mode</option>
      </select>
    </div>

    <template is="dom-if" if="[[_showResembleMode]]" restamp="true">
      <gr-resemble-diff-mode
          base-image="[[baseImage]]"
          revision-image="[[revisionImage]]"></gr-resemble-diff-mode>
    </template>

    <template is="dom-if" if="[[_showOpacityMode]]" restamp="true">
      <gr-opacity-diff-mode
          base-image="[[baseImage]]"
          revision-image="[[revisionImage]]"></gr-opacity-diff-mode>
    </template>
  </template>
  <script src="gr-image-diff-tool.js"></script>
</dom-module>