Skip to content
This repository was archived by the owner on Sep 5, 2024. It is now read-only.

Commit 686b365

Browse files
marosoftjosephperrott
authored andcommitted
fix(progress-circular): show correct circle arc when changing from indeterminate to determinate mode (#11580)
1 parent 3cf4d74 commit 686b365

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/components/progressCircular/js/progressCircularDirective.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ function MdProgressCircularDirective($window, $mdProgressCircular, $mdTheming,
139139
var mode = newValues[1];
140140
var isDisabled = newValues[2];
141141
var wasDisabled = oldValues[2];
142+
var diameter = 0;
143+
var strokeWidth = 0;
142144

143145
if (isDisabled !== wasDisabled) {
144146
element.toggleClass(DISABLED_CLASS, !!isDisabled);
@@ -153,14 +155,28 @@ function MdProgressCircularDirective($window, $mdProgressCircular, $mdTheming,
153155
}
154156

155157
if (mode === MODE_INDETERMINATE) {
158+
if (oldValues[1] === MODE_DETERMINATE) {
159+
diameter = getSize(scope.mdDiameter);
160+
strokeWidth = getStroke(diameter);
161+
path.attr('d', getSvgArc(diameter, strokeWidth, true));
162+
path.attr('stroke-dasharray', (diameter - strokeWidth) * $window.Math.PI * 0.75);
163+
}
156164
startIndeterminateAnimation();
157165
} else {
158166
var newValue = clamp(newValues[0]);
167+
var oldValue = clamp(oldValues[0]);
159168

160169
cleanupIndeterminateAnimation();
161170

171+
if (oldValues[1] === MODE_INDETERMINATE) {
172+
diameter = getSize(scope.mdDiameter);
173+
strokeWidth = getStroke(diameter);
174+
path.attr('d', getSvgArc(diameter, strokeWidth, false));
175+
path.attr('stroke-dasharray', (diameter - strokeWidth) * $window.Math.PI);
176+
}
177+
162178
element.attr('aria-valuenow', newValue);
163-
renderCircle(clamp(oldValues[0]), newValue);
179+
renderCircle(oldValue, newValue);
164180
}
165181
}
166182

0 commit comments

Comments
 (0)