ApplicationImpl cleanup, part 1:
[chromium-blink-merge.git] / third_party / polymer / v1_0 / components-chromium / paper-progress / paper-progress-extracted.js
blob93e3e9ae7dfe4cf715f4ef27831943174d5ac7da
2 Polymer({
4 is: 'paper-progress',
6 behaviors: [
7 Polymer.IronRangeBehavior
8 ],
10 properties: {
12 /**
13 * The number that represents the current secondary progress.
15 secondaryProgress: {
16 type: Number,
17 value: 0,
18 notify: true
21 /**
22 * The secondary ratio
24 secondaryRatio: {
25 type: Number,
26 value: 0,
27 readOnly: true,
28 observer: '_secondaryRatioChanged'
31 /**
32 * Use an indeterminate progress indicator.
34 indeterminate: {
35 type: Boolean,
36 value: false,
37 notify: true,
38 observer: '_toggleIndeterminate'
42 observers: [
43 '_ratioChanged(ratio)',
44 '_secondaryProgressChanged(secondaryProgress, min, max)'
47 _toggleIndeterminate: function() {
48 // If we use attribute/class binding, the animation sometimes doesn't translate properly
49 // on Safari 7.1. So instead, we toggle the class here in the update method.
50 this.toggleClass('indeterminate', this.indeterminate, this.$.activeProgress);
53 _transformProgress: function(progress, ratio) {
54 var transform = 'scaleX(' + (ratio / 100) + ')';
55 progress.style.transform = progress.style.webkitTransform = transform;
58 _ratioChanged: function(ratio) {
59 this._transformProgress(this.$.activeProgress, ratio);
62 _secondaryRatioChanged: function(secondaryRatio) {
63 this._transformProgress(this.$.secondaryProgress, secondaryRatio);
66 _secondaryProgressChanged: function() {
67 this.secondaryProgress = this._clampValue(this.secondaryProgress);
68 this._setSecondaryRatio(this._calcRatio(this.secondaryProgress) * 100);
71 });