Skip to content

Commit 4f1f9cf

Browse files
committed
reuse the loop to add breaks for cases without pattern
1 parent b3a9a96 commit 4f1f9cf

File tree

1 file changed

+58
-64
lines changed

1 file changed

+58
-64
lines changed

src/plots/cartesian/set_convert.js

+58-64
Original file line numberDiff line numberDiff line change
@@ -723,72 +723,66 @@ module.exports = function setConvert(ax, fullLayout) {
723723

724724
if(brk.enabled) {
725725
if(brk.bounds) {
726+
bnds = Lib.simpleMap(brk.bounds, brk.pattern ? cleanNumber : ax.r2l);
727+
b0 = bnds[0];
728+
b1 = bnds[1];
729+
730+
// r0 value as date
731+
var r0Date = new Date(r0);
732+
// r0 value for break pattern
733+
var bndDelta;
734+
// step in ms between rangebreaks
735+
var step;
736+
737+
var t0 = r0;
738+
var t1 = r1;
739+
740+
switch(brk.pattern) {
741+
case WEEKDAY_PATTERN:
742+
step = 7 * ONEDAY;
743+
744+
bndDelta = (
745+
(b1 < b0 ? 7 : 0) +
746+
(b1 - b0)
747+
) * ONEDAY;
748+
749+
t0 += b0 * ONEDAY - (
750+
r0Date.getUTCDay() * ONEDAY +
751+
r0Date.getUTCHours() * ONEHOUR +
752+
r0Date.getUTCMinutes() * ONEMIN +
753+
r0Date.getUTCSeconds() * ONESEC +
754+
r0Date.getUTCMilliseconds()
755+
);
756+
break;
757+
case HOUR_PATTERN:
758+
step = ONEDAY;
759+
760+
bndDelta = (
761+
(b1 < b0 ? 24 : 0) +
762+
(b1 - b0)
763+
) * ONEHOUR;
764+
765+
t0 += b0 * ONEHOUR - (
766+
r0Date.getUTCHours() * ONEHOUR +
767+
r0Date.getUTCMinutes() * ONEMIN +
768+
r0Date.getUTCSeconds() * ONESEC +
769+
r0Date.getUTCMilliseconds()
770+
);
771+
break;
772+
default:
773+
t0 = Math.min(bnds[0], bnds[1]);
774+
t1 = Math.max(bnds[0], bnds[1]);
775+
step = t1 - t0;
776+
bndDelta = step;
777+
}
778+
726779
if(brk.pattern) {
727-
bnds = Lib.simpleMap(brk.bounds, cleanNumber);
728-
b0 = bnds[0];
729-
b1 = bnds[1];
730-
731-
// r0 value as date
732-
var r0Date = new Date(r0);
733-
// r0 value for break pattern
734-
var bndDelta;
735-
// step in ms between rangebreaks
736-
var step;
737-
738-
var t0 = r0;
739-
var t1 = r1;
740-
741-
switch(brk.pattern) {
742-
case WEEKDAY_PATTERN:
743-
step = 7 * ONEDAY;
744-
745-
bndDelta = (
746-
(b1 < b0 ? 7 : 0) +
747-
(b1 - b0)
748-
) * ONEDAY;
749-
750-
t0 += b0 * ONEDAY - (
751-
r0Date.getUTCDay() * ONEDAY +
752-
r0Date.getUTCHours() * ONEHOUR +
753-
r0Date.getUTCMinutes() * ONEMIN +
754-
r0Date.getUTCSeconds() * ONESEC +
755-
r0Date.getUTCMilliseconds()
756-
);
757-
break;
758-
case HOUR_PATTERN:
759-
step = ONEDAY;
760-
761-
bndDelta = (
762-
(b1 < b0 ? 24 : 0) +
763-
(b1 - b0)
764-
) * ONEHOUR;
765-
766-
t0 += b0 * ONEHOUR - (
767-
r0Date.getUTCHours() * ONEHOUR +
768-
r0Date.getUTCMinutes() * ONEMIN +
769-
r0Date.getUTCSeconds() * ONESEC +
770-
r0Date.getUTCMilliseconds()
771-
);
772-
break;
773-
}
780+
// to remove decimal (most often found in auto ranges)
781+
t0 = Math.floor(t0);
782+
}
774783

775-
for(var t = t0; t <= t1; t += step) {
776-
// TODO we need to remove decimal (most often found
777-
// in auto ranges) for this to work correctly,
778-
// should this be Math.floor, Math.ceil or
779-
// Math.round ??
780-
addBreak(Math.floor(t), Math.floor(t + bndDelta));
781-
}
782-
} else {
783-
bnds = Lib.simpleMap(brk.bounds, ax.r2l);
784-
if(bnds[0] <= bnds[1]) {
785-
b0 = bnds[0];
786-
b1 = bnds[1];
787-
} else {
788-
b0 = bnds[1];
789-
b1 = bnds[0];
790-
}
791-
addBreak(b0, b1);
784+
for(var t = t0; t < t1; t += step) {
785+
addBreak(t, t + bndDelta);
792786
}
793787
} else {
794788
var vals = Lib.simpleMap(brk.values, ax.d2c);

0 commit comments

Comments
 (0)