Index: third_party/polymer/v1_0/components-chromium/paper-spinner/paper-spinner-extracted.js |
diff --git a/third_party/polymer/v1_0/components-chromium/paper-spinner/paper-spinner-extracted.js b/third_party/polymer/v1_0/components-chromium/paper-spinner/paper-spinner-extracted.js |
index 4122215caebe0093584e694f62a8c09405debe98..2cdc5736b9640637faa8782fd03a8846ecce54d4 100644 |
--- a/third_party/polymer/v1_0/components-chromium/paper-spinner/paper-spinner-extracted.js |
+++ b/third_party/polymer/v1_0/components-chromium/paper-spinner/paper-spinner-extracted.js |
@@ -1,121 +1,99 @@ |
- (function() { |
- |
- 'use strict'; |
- |
- function classNames(obj) { |
- var classNames = []; |
- for (var key in obj) { |
- if (obj.hasOwnProperty(key) && obj[key]) { |
- classNames.push(key); |
- } |
- } |
- |
- return classNames.join(' '); |
- } |
- |
- Polymer({ |
- |
- is: 'paper-spinner', |
- |
- listeners: { |
- 'animationend': 'reset', |
- 'webkitAnimationEnd': 'reset' |
+ Polymer({ |
+ |
+ is: 'paper-spinner', |
+ |
+ listeners: { |
+ 'animationend': 'reset', |
+ 'webkitAnimationEnd': 'reset' |
+ }, |
+ |
+ properties: { |
+ |
+ /** |
+ * Displays the spinner. |
+ * |
+ * @attribute active |
+ * @type boolean |
+ * @default false |
+ */ |
+ active: { |
+ type: Boolean, |
+ value: false, |
+ reflectToAttribute: true, |
+ observer: '_activeChanged' |
}, |
- properties: { |
- |
- /** |
- * Displays the spinner. |
- * |
- * @attribute active |
- * @type boolean |
- * @default false |
- */ |
- active: { |
- observer: '_activeChanged', |
- type: Boolean, |
- value: false |
- }, |
- |
- /** |
- * Alternative text content for accessibility support. |
- * If alt is present, it will add an aria-label whose content matches alt when active. |
- * If alt is not present, it will default to 'loading' as the alt value. |
- * |
- * @attribute alt |
- * @type string |
- * @default 'loading' |
- */ |
- alt: { |
- observer: '_altChanged', |
- type: String, |
- value: 'loading' |
- }, |
- |
- /** |
- * True when the spinner is going from active to inactive. This is represented by a fade |
- * to 0% opacity to the user. |
- */ |
- _coolingDown: { |
- type: Boolean, |
- value: false |
- }, |
- |
- _spinnerContainerClassName: { |
- type: String, |
- computed: '_computeSpinnerContainerClassName(active, _coolingDown)' |
- } |
- |
+ /** |
+ * Alternative text content for accessibility support. |
+ * If alt is present, it will add an aria-label whose content matches alt when active. |
+ * If alt is not present, it will default to 'loading' as the alt value. |
+ * |
+ * @attribute alt |
+ * @type string |
+ * @default 'loading' |
+ */ |
+ alt: { |
+ type: String, |
+ value: 'loading', |
+ observer: '_altChanged' |
}, |
- _computeSpinnerContainerClassName: function(active, _coolingDown) { |
- return classNames({ |
- active: active || _coolingDown, |
- cooldown: _coolingDown |
- }); |
+ /** |
+ * True when the spinner is going from active to inactive. This is represented by a fade |
+ * to 0% opacity to the user. |
+ */ |
+ _coolingDown: { |
+ type: Boolean, |
+ value: false |
}, |
- ready: function() { |
- // Allow user-provided `aria-label` take preference to any other text alternative. |
- if (this.hasAttribute('aria-label')) { |
- this.alt = this.getAttribute('aria-label'); |
- } else { |
- this.setAttribute('aria-label', this.alt); |
- } |
- |
- if (!this.active) { |
- this.setAttribute('aria-hidden', 'true'); |
- } |
- }, |
- |
- _activeChanged: function() { |
- if (this.active) { |
- this.removeAttribute('aria-hidden'); |
- } else { |
- this._coolingDown = true; |
- this.setAttribute('aria-hidden', 'true'); |
- } |
- }, |
+ _spinnerContainerClassName: { |
+ type: String, |
+ computed: '_computeSpinnerContainerClassName(active, _coolingDown)' |
+ } |
- _altChanged: function() { |
- if (this.alt === '') { |
- this.setAttribute('aria-hidden', 'true'); |
- } else { |
- this.removeAttribute('aria-hidden'); |
- } |
+ }, |
- this.setAttribute('aria-label', this.alt); |
- }, |
+ _computeSpinnerContainerClassName: function(active, coolingDown) { |
+ return [ |
+ active || coolingDown ? 'active' : '', |
+ coolingDown ? 'cooldown' : '' |
+ ].join(' '); |
+ }, |
- reset: function() { |
- this.active = false; |
- this._coolingDown = false; |
+ _activeChanged: function(active, old) { |
+ this._setAriaHidden(!active); |
+ if (!active && old) { |
+ this._coolingDown = true; |
+ } |
+ }, |
+ |
+ _altChanged: function(alt) { |
+ // user-provided `aria-label` takes precedence over prototype default |
+ if (alt === this.getPropertyInfo('alt').value) { |
+ this.alt = this.getAttribute('aria-label') || alt; |
+ } else { |
+ this._setAriaHidden(alt===''); |
+ this.setAttribute('aria-label', alt); |
} |
+ }, |
+ |
+ _setAriaHidden: function(hidden) { |
+ var attr = 'aria-hidden'; |
+ if (hidden) { |
+ this.setAttribute(attr, 'true'); |
+ } else { |
+ this.removeAttribute(attr); |
+ } |
+ }, |
- }); |
+ reset: function() { |
+ this.active = false; |
+ this._coolingDown = false; |
+ } |
- }()); |
+ }); |