Index: polymer_1.0.4/bower_components/paper-toggle-button/paper-toggle-button.html |
diff --git a/polymer_1.0.4/bower_components/paper-toggle-button/paper-toggle-button.html b/polymer_1.0.4/bower_components/paper-toggle-button/paper-toggle-button.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a53190752ac0cf4d7211682886991aa97068dff0 |
--- /dev/null |
+++ b/polymer_1.0.4/bower_components/paper-toggle-button/paper-toggle-button.html |
@@ -0,0 +1,172 @@ |
+<!-- |
+@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-ripple/paper-ripple.html"> |
+<link rel="import" href="../paper-behaviors/paper-inky-focus-behavior.html"> |
+ |
+<!-- |
+`paper-toggle-button` provides a ON/OFF switch that user can toggle the state |
+by tapping or by dragging the switch. |
+ |
+Example: |
+ |
+ <paper-toggle-button></paper-toggle-button> |
+ |
+### Styling |
+ |
+The following custom properties and mixins are available for styling: |
+ |
+Custom property | Description | Default |
+----------------|-------------|---------- |
+`--paper-toggle-button-unchecked-bar-color` | Slider color when the input is not checked | `#000000` |
+`--paper-toggle-button-unchecked-button-color` | Button color when the input is not checked | `--paper-grey-50` |
+`--paper-toggle-button-unchecked-ink-color` | Selected/focus ripple color when the input is not checked | `--dark-primary-color` |
+`--paper-toggle-button-checked-bar-color` | Slider button color when the input is checked | `--google-green-500` |
+`--paper-toggle-button-checked-button-color` | Button color when the input is checked | `--google-green-500` |
+`--paper-toggle-button-checked-ink-color` | Selected/focus ripple color when the input is checked | `--google-green-500` |
+ |
+@group Paper Elements |
+@element paper-toggle-button |
+@hero hero.svg |
+@demo demo/index.html |
+--> |
+ |
+<dom-module id="paper-toggle-button"> |
+ |
+ <link rel="import" type="css" href="paper-toggle-button.css"> |
+ |
+ <template> |
+ |
+ <div id="toggleContainer"> |
+ <div id="toggleBar" class="toggle-bar"></div> |
+ <div id="toggleButton" class="toggle-button"> |
+ <paper-ripple id="ink" class="toggle-ink circle" recenters></paper-ripple> |
+ </div> |
+ </div> |
+ |
+ </template> |
+ |
+ <script> |
+ Polymer({ |
+ is: 'paper-toggle-button', |
+ |
+ behaviors: [ |
+ Polymer.PaperInkyFocusBehavior |
+ ], |
+ |
+ hostAttributes: { |
+ role: 'button', |
+ 'aria-pressed': 'false', |
+ tabindex: 0 |
+ }, |
+ |
+ properties: { |
+ /** |
+ * Fired when the checked state changes due to user interaction. |
+ * |
+ * @event change |
+ */ |
+ /** |
+ * Fired when the checked state changes. |
+ * |
+ * @event iron-change |
+ */ |
+ /** |
+ * Gets or sets the state, `true` is checked and `false` is unchecked. |
+ * |
+ * @attribute checked |
+ * @type boolean |
+ * @default false |
+ */ |
+ checked: { |
+ type: Boolean, |
+ value: false, |
+ reflectToAttribute: true, |
+ notify: true, |
+ observer: '_checkedChanged' |
+ }, |
+ |
+ /** |
+ * If true, the button toggles the active state with each tap or press |
+ * of the spacebar. |
+ * |
+ * @attribute toggles |
+ * @type boolean |
+ * @default true |
+ */ |
+ toggles: { |
+ type: Boolean, |
+ value: true, |
+ reflectToAttribute: true |
+ } |
+ }, |
+ |
+ listeners: { |
+ track: '_ontrack' |
+ }, |
+ |
+ ready: function() { |
+ this._isReady = true; |
+ }, |
+ |
+ // button-behavior hook |
+ _buttonStateChanged: function() { |
+ if (this.disabled) { |
+ return; |
+ } |
+ if (this._isReady) { |
+ this.checked = this.active; |
+ } |
+ }, |
+ |
+ _checkedChanged: function(checked) { |
+ this.active = this.checked; |
+ this.fire('iron-change'); |
+ }, |
+ |
+ _ontrack: function(event) { |
+ var track = event.detail; |
+ if (track.state === 'start') { |
+ this._trackStart(track); |
+ } else if (track.state === 'track') { |
+ this._trackMove(track); |
+ } else if (track.state === 'end') { |
+ this._trackEnd(track); |
+ } |
+ }, |
+ |
+ _trackStart: function(track) { |
+ this._width = this.$.toggleBar.offsetWidth / 2; |
+ /* |
+ * keep an track-only check state to keep the dragging behavior smooth |
+ * while toggling activations |
+ */ |
+ this._trackChecked = this.checked; |
+ this.$.toggleButton.classList.add('dragging'); |
+ }, |
+ |
+ _trackMove: function(track) { |
+ var dx = track.dx; |
+ this._x = Math.min(this._width, |
+ Math.max(0, this._trackChecked ? this._width + dx : dx)); |
+ this.translate3d(this._x + 'px', 0, 0, this.$.toggleButton); |
+ this._userActivate(this._x > (this._width / 2)); |
+ }, |
+ |
+ _trackEnd: function(track) { |
+ this.$.toggleButton.classList.remove('dragging'); |
+ this.transform('', this.$.toggleButton); |
+ } |
+ |
+ }); |
+ </script> |
+ |
+</dom-module> |