Index: third_party/polymer/components-chromium/core-range/core-range-extracted.js |
diff --git a/third_party/polymer/components-chromium/core-range/core-range-extracted.js b/third_party/polymer/components-chromium/core-range/core-range-extracted.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5650bfdf95b7a268428da9fe51648a677fe11bd8 |
--- /dev/null |
+++ b/third_party/polymer/components-chromium/core-range/core-range-extracted.js |
@@ -0,0 +1,78 @@ |
+ |
+ |
+ Polymer('core-range', { |
+ |
+ /** |
+ * The number that represents the current value. |
+ * |
+ * @attribute value |
+ * @type number |
+ * @default 0 |
+ */ |
+ value: 0, |
+ |
+ /** |
+ * The number that indicates the minimum value of the range. |
+ * |
+ * @attribute min |
+ * @type number |
+ * @default 0 |
+ */ |
+ min: 0, |
+ |
+ /** |
+ * The number that indicates the maximum value of the range. |
+ * |
+ * @attribute max |
+ * @type number |
+ * @default 100 |
+ */ |
+ max: 100, |
+ |
+ /** |
+ * Specifies the value granularity of the range's value. |
+ * |
+ * @attribute step |
+ * @type number |
+ * @default 1 |
+ */ |
+ step: 1, |
+ |
+ /** |
+ * Returns the ratio of the value. |
+ * |
+ * @attribute ratio |
+ * @type number |
+ * @default 0 |
+ */ |
+ ratio: 0, |
+ |
+ observe: { |
+ 'value min max step': 'update' |
+ }, |
+ |
+ 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.ratio = this.calcRatio(this.value) * 100; |
+ } |
+ |
+ }); |
+ |