aboutsummaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/components')
-rw-r--r--src/components/TimeLine.vue22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/components/TimeLine.vue b/src/components/TimeLine.vue
index 76d78d0..5a69f3f 100644
--- a/src/components/TimeLine.vue
+++ b/src/components/TimeLine.vue
@@ -664,23 +664,17 @@ const tickToCount = computed((): Map<number, number> => {
if (ticks.value.length == 0){
return tickToCount;
}
- let unitToTickIdx: [number, number][] = []; // Holds tick units with their tick indexes in tickToCount
+ const map = props.unitCountMaps[minorScaleIdx.value];
for (let tickIdx = firstIdx.value; tickIdx < lastIdx.value; tickIdx++){
tickToCount.set(tickIdx, 0);
- let unit = dateToUnit(ticks.value[tickIdx].date, minorScale.value);
- unitToTickIdx.push([unit, tickIdx]);
- }
- // Accumulate counts for ticks
- const firstUnit = dateToUnit(ticks.value[firstIdx.value].date, minorScale.value);
- const lastUnit = dateToUnit(ticks.value[lastIdx.value].date, minorScale.value);
- for (let [unit, count] of props.unitCountMaps[minorScaleIdx.value].entries()){
- if (unit >= firstUnit && unit < lastUnit){
- let i = 0;
- while (i + 1 < unitToTickIdx.length && unitToTickIdx[i + 1][0] <= unit){
- i += 1;
+ let date = ticks.value[tickIdx].date.clone();
+ let nextDate = ticks.value[tickIdx + 1].date;
+ while (date.isEarlier(nextDate)){
+ let unit = dateToUnit(date, minorScale.value);
+ if (map.has(unit)){
+ tickToCount.set(tickIdx, tickToCount.get(tickIdx)! + map.get(unit)!);
}
- const tickIdx = unitToTickIdx[i][1];
- tickToCount.set(tickIdx, tickToCount.get(tickIdx)! + count);
+ stepDate(date, minorScale.value, {inplace: true});
}
}
return tickToCount;