<!--
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 {
        border-top: 1px solid var(--border-color, #ddd);
        display: block;
        margin-top: .5em;
        padding: 1em var(--default-horizontal-margin);
      }
    </style>

    <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>

    <select id="dropdown" on-change="handleSelect">
      <option value="resemble">Resemble Mode</option>
      <option value="opacity">Opacity Mode</option>
    </select>
  </template>
  <script src="gr-image-diff-tool.js"></script>
</dom-module>