Mostly general cleanup, also the following changes: - Disabled flat buttons will have a fully transparent background (before it was a partially transparent white background) - Disabled raised buttons have a (light) grey background and (darker) grey text. There is no difference in the disabled styling whether the button is primary or not. - Add loading as a property on gr-button, translate that into disabled on the paper-button, which removes some CSS rules. Bug: Issue 7496 Change-Id: Iae0564d099508827c8f13fbb943c6646d631ce1d
		
			
				
	
	
		
			105 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// 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.
 | 
						|
(function() {
 | 
						|
  'use strict';
 | 
						|
 | 
						|
  Polymer({
 | 
						|
    is: 'gr-button',
 | 
						|
 | 
						|
    properties: {
 | 
						|
      downArrow: {
 | 
						|
        type: Boolean,
 | 
						|
        reflectToAttribute: true,
 | 
						|
      },
 | 
						|
      link: {
 | 
						|
        type: Boolean,
 | 
						|
        value: false,
 | 
						|
        reflectToAttribute: true,
 | 
						|
      },
 | 
						|
      loading: {
 | 
						|
        type: Boolean,
 | 
						|
        value: false,
 | 
						|
        reflectToAttribute: true,
 | 
						|
      },
 | 
						|
      tertiary: {
 | 
						|
        type: Boolean,
 | 
						|
        value: false,
 | 
						|
        reflectToAttribute: true,
 | 
						|
      },
 | 
						|
      disabled: {
 | 
						|
        type: Boolean,
 | 
						|
        observer: '_disabledChanged',
 | 
						|
        reflectToAttribute: true,
 | 
						|
      },
 | 
						|
      noUppercase: {
 | 
						|
        type: Boolean,
 | 
						|
        value: false,
 | 
						|
      },
 | 
						|
      _enabledTabindex: {
 | 
						|
        type: String,
 | 
						|
        value: '0',
 | 
						|
      },
 | 
						|
    },
 | 
						|
 | 
						|
    listeners: {
 | 
						|
      tap: '_handleAction',
 | 
						|
      click: '_handleAction',
 | 
						|
      keydown: '_handleKeydown',
 | 
						|
    },
 | 
						|
 | 
						|
    observers: [
 | 
						|
      '_computeDisabled(disabled, loading)',
 | 
						|
    ],
 | 
						|
 | 
						|
    behaviors: [
 | 
						|
      Gerrit.KeyboardShortcutBehavior,
 | 
						|
      Gerrit.TooltipBehavior,
 | 
						|
    ],
 | 
						|
 | 
						|
    hostAttributes: {
 | 
						|
      role: 'button',
 | 
						|
      tabindex: '0',
 | 
						|
    },
 | 
						|
 | 
						|
    _handleAction(e) {
 | 
						|
      if (this.disabled) {
 | 
						|
        e.preventDefault();
 | 
						|
        e.stopImmediatePropagation();
 | 
						|
      }
 | 
						|
    },
 | 
						|
 | 
						|
    _disabledChanged(disabled) {
 | 
						|
      if (disabled) {
 | 
						|
        this._enabledTabindex = this.getAttribute('tabindex');
 | 
						|
      }
 | 
						|
      this.setAttribute('tabindex', disabled ? '-1' : this._enabledTabindex);
 | 
						|
    },
 | 
						|
 | 
						|
    _computeDisabled(disabled, loading) {
 | 
						|
      return disabled || loading;
 | 
						|
    },
 | 
						|
 | 
						|
    _handleKeydown(e) {
 | 
						|
      if (this.modifierPressed(e)) { return; }
 | 
						|
      e = this.getKeyboardEvent(e);
 | 
						|
      // Handle `enter`, `space`.
 | 
						|
      if (e.keyCode === 13 || e.keyCode === 32) {
 | 
						|
        e.preventDefault();
 | 
						|
        e.stopPropagation();
 | 
						|
        this.click();
 | 
						|
      }
 | 
						|
    },
 | 
						|
  });
 | 
						|
})();
 |