Index: third_party/polymer/v0_8/components-chromium/paper-spinner/paper-spinner-extracted.js |
diff --git a/third_party/polymer/v0_8/components-chromium/paper-spinner/paper-spinner-extracted.js b/third_party/polymer/v0_8/components-chromium/paper-spinner/paper-spinner-extracted.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4122215caebe0093584e694f62a8c09405debe98 |
--- /dev/null |
+++ b/third_party/polymer/v0_8/components-chromium/paper-spinner/paper-spinner-extracted.js |
@@ -0,0 +1,121 @@ |
+ |
+ |
+ (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' |
+ }, |
+ |
+ 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)' |
+ } |
+ |
+ }, |
+ |
+ _computeSpinnerContainerClassName: function(active, _coolingDown) { |
+ return classNames({ |
+ active: active || _coolingDown, |
+ cooldown: _coolingDown |
+ }); |
+ }, |
+ |
+ 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'); |
+ } |
+ }, |
+ |
+ _altChanged: function() { |
+ if (this.alt === '') { |
+ this.setAttribute('aria-hidden', 'true'); |
+ } else { |
+ this.removeAttribute('aria-hidden'); |
+ } |
+ |
+ this.setAttribute('aria-label', this.alt); |
+ }, |
+ |
+ reset: function() { |
+ this.active = false; |
+ this._coolingDown = false; |
+ } |
+ |
+ }); |
+ |
+ }()); |
+ |
+ |