<!--
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="../../../bower_components/polymer/polymer.html">

<dom-module id="gr-diff-selection">
  <template>
    <style>
      .contentWrapper ::content .content {
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
      }

      :host.selected-right .contentWrapper ::content .right + .content,
      :host.selected-left .contentWrapper ::content .left + .content,
      :host.selected-right .contentWrapper ::content .unified .right ~ .content,
      :host.selected-left .contentWrapper ::content .unified .left ~ .content {
        -webkit-user-select: text;
        -moz-user-select: text;
        -ms-user-select: text;
        user-select: text;
      }
    </style>
    <div class="contentWrapper">
      <content></content>
    </div>
  </template>
  <script src="gr-diff-selection.js"></script>
</dom-module>
