Index: third_party/polymer/v0_8/components-chromium/iron-range-behavior/iron-range-behavior-extracted.js |
diff --git a/third_party/polymer/v0_8/components-chromium/iron-range-behavior/iron-range-behavior-extracted.js b/third_party/polymer/v0_8/components-chromium/iron-range-behavior/iron-range-behavior-extracted.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ce733745cafb60ec55844f4bbbcf649ff2e4713e |
--- /dev/null |
+++ b/third_party/polymer/v0_8/components-chromium/iron-range-behavior/iron-range-behavior-extracted.js |
@@ -0,0 +1,88 @@ |
+ |
+ |
+ /** |
+ * `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); |
+ } |
+ |
+}; |