173 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
@license
 | 
						|
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">
 | 
						|
 | 
						|
<link rel="import" href="../../../behaviors/gr-tooltip-behavior/gr-tooltip-behavior.html">
 | 
						|
<link rel="import" href="../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.html">
 | 
						|
<link rel="import" href="/bower_components/paper-button/paper-button.html">
 | 
						|
<link rel="import" href="../../../styles/shared-styles.html">
 | 
						|
 | 
						|
<dom-module id="gr-button">
 | 
						|
  <template strip-whitespace>
 | 
						|
    <style include="shared-styles">
 | 
						|
      /* general styles for all buttons */
 | 
						|
      :host {
 | 
						|
        --background-color: var(--button-background-color, var(--default-button-background-color));
 | 
						|
        --text-color: var(--default-button-text-color);
 | 
						|
        display: inline-block;
 | 
						|
        position: relative;
 | 
						|
      }
 | 
						|
      :host([hidden]) {
 | 
						|
        display: none;
 | 
						|
      }
 | 
						|
      :host([no-uppercase]) paper-button {
 | 
						|
        text-transform: none;
 | 
						|
      }
 | 
						|
      paper-button {
 | 
						|
        /* The next lines contains a copy of paper-button style.
 | 
						|
          Without a copy, the @apply works incorrectly with Polymer 2.
 | 
						|
          @apply is deprecated and is not recommended to use. It is expected
 | 
						|
          that @apply will be replaced with the ::part CSS pseudo-element.
 | 
						|
          After replacecment copied lines can be removed.
 | 
						|
        */
 | 
						|
        @apply --layout-inline;
 | 
						|
        @apply --layout-center-center;
 | 
						|
        position: relative;
 | 
						|
        box-sizing: border-box;
 | 
						|
        min-width: 5.14em;
 | 
						|
        margin: 0 0.29em;
 | 
						|
        background: transparent;
 | 
						|
        -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
 | 
						|
        -webkit-tap-highlight-color: transparent;
 | 
						|
        font: inherit;
 | 
						|
        text-transform: uppercase;
 | 
						|
        outline-width: 0;
 | 
						|
        border-radius: 3px;
 | 
						|
        -moz-user-select: none;
 | 
						|
        -ms-user-select: none;
 | 
						|
        -webkit-user-select: none;
 | 
						|
        user-select: none;
 | 
						|
        cursor: pointer;
 | 
						|
        z-index: 0;
 | 
						|
        padding: 0.7em 0.57em;
 | 
						|
 | 
						|
        @apply --paper-font-common-base;
 | 
						|
        @apply --paper-button;
 | 
						|
        /* End of copy*/
 | 
						|
 | 
						|
        /* paper-button sets this to anti-aliased, which appears different than
 | 
						|
          bold font elsewhere on macOS. */
 | 
						|
        -webkit-font-smoothing: initial;
 | 
						|
        align-items: center;
 | 
						|
        background-color: var(--background-color);
 | 
						|
        color: var(--text-color);
 | 
						|
        display: flex;
 | 
						|
        font-family: inherit;
 | 
						|
        justify-content: center;
 | 
						|
        margin: var(--margin, 0);
 | 
						|
        min-width: var(--border, 0);
 | 
						|
        padding: var(--padding, 4px 8px);
 | 
						|
        @apply --gr-button;
 | 
						|
      }
 | 
						|
      /* https://github.com/PolymerElements/paper-button/blob/2.x/paper-button.html */
 | 
						|
      /* BEGIN: Copy from paper-button */
 | 
						|
      paper-button[elevation="1"] {
 | 
						|
        @apply --paper-material-elevation-1;
 | 
						|
      }
 | 
						|
      paper-button[elevation="2"] {
 | 
						|
        @apply --paper-material-elevation-2;
 | 
						|
      }
 | 
						|
      paper-button[elevation="3"] {
 | 
						|
        @apply --paper-material-elevation-3;
 | 
						|
      }
 | 
						|
      paper-button[elevation="4"] {
 | 
						|
        @apply --paper-material-elevation-4;
 | 
						|
      }
 | 
						|
      paper-button[elevation="5"] {
 | 
						|
        @apply --paper-material-elevation-5;
 | 
						|
      }
 | 
						|
      /* END: Copy from paper-button */
 | 
						|
      paper-button:hover {
 | 
						|
        background: linear-gradient(
 | 
						|
          rgba(0, 0, 0, .12),
 | 
						|
          rgba(0, 0, 0, .12)
 | 
						|
        ), var(--background-color);
 | 
						|
      }
 | 
						|
 | 
						|
      :host([primary]) {
 | 
						|
        --background-color: var(--primary-button-background-color);
 | 
						|
        --text-color: var(--primary-button-text-color);
 | 
						|
      }
 | 
						|
      :host([link][primary]) {
 | 
						|
        --text-color: var(--primary-button-background-color);
 | 
						|
      }
 | 
						|
      :host([secondary]) {
 | 
						|
        --background-color: var(--secondary-button-text-color);
 | 
						|
        --text-color: var(--secondary-button-background-color);
 | 
						|
      }
 | 
						|
      :host([link][secondary]) {
 | 
						|
        --text-color: var(--secondary-button-text-color);
 | 
						|
      }
 | 
						|
 | 
						|
      /* Keep below color definition for primary so that this takes precedence
 | 
						|
        when disabled. */
 | 
						|
      :host([disabled]) {
 | 
						|
        --background-color: var(--table-subheader-background-color);
 | 
						|
        --text-color: var(--deemphasized-text-color);
 | 
						|
        cursor: default;
 | 
						|
      }
 | 
						|
 | 
						|
      /* Styles for link buttons specifically */
 | 
						|
      :host([link]) {
 | 
						|
        --background-color: transparent;
 | 
						|
        --margin: 0;
 | 
						|
        --padding: 5px 4px;
 | 
						|
      }
 | 
						|
      :host([disabled][link]) {
 | 
						|
        --background-color: transparent;
 | 
						|
        --text-color: var(--deemphasized-text-color);
 | 
						|
        cursor: default;
 | 
						|
      }
 | 
						|
 | 
						|
      /* Styles for the optional down arrow */
 | 
						|
      :host(:not([down-arrow])) .downArrow {
 | 
						|
        display: none;
 | 
						|
      }
 | 
						|
      :host([down-arrow]) .downArrow {
 | 
						|
        border-top: .36em solid #ccc;
 | 
						|
        border-left: .36em solid transparent;
 | 
						|
        border-right: .36em solid transparent;
 | 
						|
        margin-bottom: .05em;
 | 
						|
        margin-left: .5em;
 | 
						|
        transition: border-top-color 200ms;
 | 
						|
      }
 | 
						|
      :host([down-arrow]) paper-button:hover .downArrow {
 | 
						|
        border-top-color: var(--deemphasized-text-color);
 | 
						|
      }
 | 
						|
    </style>
 | 
						|
    <paper-button
 | 
						|
        raised="[[!link]]"
 | 
						|
        disabled="[[_computeDisabled(disabled, loading)]]"
 | 
						|
        tabindex="-1">
 | 
						|
      <slot></slot>
 | 
						|
      <i class="downArrow"></i>
 | 
						|
    </paper-button>
 | 
						|
  </template>
 | 
						|
  <script src="gr-button.js"></script>
 | 
						|
</dom-module>
 |