Index: third_party/polymer/v0_8/components/iron-range-behavior/iron-range-behavior.html |
diff --git a/third_party/polymer/v0_8/components/iron-range-behavior/iron-range-behavior.html b/third_party/polymer/v0_8/components/iron-range-behavior/iron-range-behavior.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d89843d3613707bdd60e224e7f639c10c05417f4 |
--- /dev/null |
+++ b/third_party/polymer/v0_8/components/iron-range-behavior/iron-range-behavior.html |
@@ -0,0 +1,101 @@ |
+<!-- |
+@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"> |
+ |
+<script> |
+ |
+ /** |
+ * `iron-range-behavior` provides the behavior for something with a minimum to maximum range. |
+ * |
+ * @demo demo/index.html |
+ * @polymerBehavior |
+ */ |
+ Polymer.IronRangeBehavior = { |
+ |
+ properties: { |
+ |
+ /** |
+ * The number that represents the current value. |
+ */ |
+ value: { |
+ type: Number, |
+ value: 0, |
+ notify: true, |
+ reflectToAttribute: true |
+ }, |
+ |
+ /** |
+ * The number that indicates the minimum value of the range. |
+ */ |
+ min: { |
+ type: Number, |
+ value: 0, |
+ notify: true |
+ }, |
+ |
+ /** |
+ * The number that indicates the maximum value of the range. |
+ */ |
+ max: { |
+ type: Number, |
+ value: 100, |
+ notify: true |
+ }, |
+ |
+ /** |
+ * Specifies the value granularity of the range's value. |
+ */ |
+ step: { |
+ type: Number, |
+ value: 1, |
+ notify: true |
+ }, |
+ |
+ /** |
+ * Returns the ratio of the value. |
+ */ |
+ ratio: { |
+ type: Number, |
+ value: 0, |
+ readOnly: true, |
+ notify: true |
+ }, |
+ }, |
+ |
+ observers: [ |
+ '_update(value, min, max, step)' |
+ ], |
+ |
+ _calcRatio: function(value) { |
+ return (this._clampValue(value) - this.min) / (this.max - this.min); |
+ }, |
+ |
+ _clampValue: function(value) { |
+ return Math.min(this.max, Math.max(this.min, this._calcStep(value))); |
+ }, |
+ |
+ _calcStep: function(value) { |
+ return this.step ? (Math.round(value / this.step) / (1 / this.step)) : value; |
+ }, |
+ |
+ _validateValue: function() { |
+ var v = this._clampValue(this.value); |
+ this.value = this.oldValue = isNaN(v) ? this.oldValue : v; |
+ return this.value !== v; |
+ }, |
+ |
+ _update: function() { |
+ this._validateValue(); |
+ this._setRatio(this._calcRatio(this.value) * 100); |
+ } |
+ |
+}; |
+</script> |