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

Side by Side Diff: third_party/polymer/v1_0/components-chromium/iron-range-behavior/iron-range-behavior-extracted.js

Issue 1221923003: Update bower.json for Polymer elements and add PRESUBMIT.py (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 5 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 unified diff | Download patch
OLDNEW
1 1
2 2
3 /** 3 /**
4 * `iron-range-behavior` provides the behavior for something with a minimum to m aximum range. 4 * `iron-range-behavior` provides the behavior for something with a minimum to m aximum range.
5 * 5 *
6 * @demo demo/index.html 6 * @demo demo/index.html
7 * @polymerBehavior 7 * @polymerBehavior
8 */ 8 */
9 Polymer.IronRangeBehavior = { 9 Polymer.IronRangeBehavior = {
10 10
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 64
65 _calcRatio: function(value) { 65 _calcRatio: function(value) {
66 return (this._clampValue(value) - this.min) / (this.max - this.min); 66 return (this._clampValue(value) - this.min) / (this.max - this.min);
67 }, 67 },
68 68
69 _clampValue: function(value) { 69 _clampValue: function(value) {
70 return Math.min(this.max, Math.max(this.min, this._calcStep(value))); 70 return Math.min(this.max, Math.max(this.min, this._calcStep(value)));
71 }, 71 },
72 72
73 _calcStep: function(value) { 73 _calcStep: function(value) {
74 /**
75 * if we calculate the step using
76 * `Math.round(value / step) * step` we may hit a precision point issue
77 * eg. 0.1 * 0.2 = 0.020000000000000004
78 * http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
79 *
80 * as a work around we can divide by the reciprocal of `step`
81 */
74 return this.step ? (Math.round(value / this.step) / (1 / this.step)) : value ; 82 return this.step ? (Math.round(value / this.step) / (1 / this.step)) : value ;
75 }, 83 },
76 84
77 _validateValue: function() { 85 _validateValue: function() {
78 var v = this._clampValue(this.value); 86 var v = this._clampValue(this.value);
79 this.value = this.oldValue = isNaN(v) ? this.oldValue : v; 87 this.value = this.oldValue = isNaN(v) ? this.oldValue : v;
80 return this.value !== v; 88 return this.value !== v;
81 }, 89 },
82 90
83 _update: function() { 91 _update: function() {
84 this._validateValue(); 92 this._validateValue();
85 this._setRatio(this._calcRatio(this.value) * 100); 93 this._setRatio(this._calcRatio(this.value) * 100);
86 } 94 }
87 95
88 }; 96 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698