Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: third_party/polymer/v0_8/components/paper-spinner/paper-spinner.html

Issue 1162563004: Upgrade to 1.0 and switch clients to dom-repeat where needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix a layout import and remove the gzipped webanimation in reproduce.sh Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/v0_8/components/paper-spinner/paper-spinner.html
diff --git a/third_party/polymer/v0_8/components/paper-spinner/paper-spinner.html b/third_party/polymer/v0_8/components/paper-spinner/paper-spinner.html
new file mode 100644
index 0000000000000000000000000000000000000000..b5503cc6ac6aa05452ddd55ff8fb15baf4beb033
--- /dev/null
+++ b/third_party/polymer/v0_8/components/paper-spinner/paper-spinner.html
@@ -0,0 +1,222 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../polymer/polymer.html">
+<link rel="import" href="../paper-styles/color.html">
+<link rel="import" href="../iron-flex-layout/iron-flex-layout.html">
+
+<!--
+Element providing material design circular spinner.
+
+ <paper-spinner active></paper-spinner>
+
+The default spinner cycles between four layers of colors; by default they are
+blue, red, yellow and green. It can be customized so that it uses one color only
+by setting all the layer colors to the same value.
+
+### Accessibility
+
+Alt attribute should be set to provide adequate context for accessibility. If not provided,
+it defaults to 'loading'.
+Empty alt can be provided to mark the element as decorative if alternative content is provided
+in another form (e.g. a text block following the spinner).
+
+ <paper-spinner alt="Loading contacts list" active></paper-spinner>
+
+### Styling
+
+The following custom properties and mixins are available for styling:
+
+Custom property | Description | Default
+----------------|-------------|----------
+`--paper-spinner-layer-1-color` | Color of the first spinner rotation | `--google-blue-500`
+`--paper-spinner-layer-2-color` | Color of the second spinner rotation | `--google-red-500`
+`--paper-spinner-layer-3-color` | Color of the third spinner rotation | `--google-yellow-500`
+`--paper-spinner-layer-4-color` | Color of the fourth spinner rotation | `--google-green-500`
+
+@group Paper Elements
+@element paper-spinner
+@hero hero.svg
+@demo demo/index.html
+-->
+
+<dom-module id="paper-spinner">
+
+ <link rel="import" type="css" href="paper-spinner.css">
+
+ <template>
+
+ <div id="spinnerContainer" class-name="[[_spinnerContainerClassName]]">
+ <div class="spinner-layer layer-1">
+ <div class="circle-clipper left">
+ <div class="circle"></div>
+ </div><div class="gap-patch">
+ <div class="circle"></div>
+ </div><div class="circle-clipper right">
+ <div class="circle"></div>
+ </div>
+ </div>
+
+ <div class="spinner-layer layer-2">
+ <div class="circle-clipper left">
+ <div class="circle"></div>
+ </div><div class="gap-patch">
+ <div class="circle"></div>
+ </div><div class="circle-clipper right">
+ <div class="circle"></div>
+ </div>
+ </div>
+
+ <div class="spinner-layer layer-3">
+ <div class="circle-clipper left">
+ <div class="circle"></div>
+ </div><div class="gap-patch">
+ <div class="circle"></div>
+ </div><div class="circle-clipper right">
+ <div class="circle"></div>
+ </div>
+ </div>
+
+ <div class="spinner-layer layer-4">
+ <div class="circle-clipper left">
+ <div class="circle"></div>
+ </div><div class="gap-patch">
+ <div class="circle"></div>
+ </div><div class="circle-clipper right">
+ <div class="circle"></div>
+ </div>
+ </div>
+ </div>
+
+ </template>
+
+ <script>
+
+ (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;
+ }
+
+ });
+
+ }());
+
+ </script>
+
+</dom-module>

Powered by Google App Engine
This is Rietveld 408576698