From 8b77a42f313e6514a4634dcad988dd2fea6bdee6 Mon Sep 17 00:00:00 2001 From: Terry Truong Date: Sat, 15 Oct 2022 17:54:32 +1100 Subject: Pass TimeLine offsets to BaseLine Add TimelineState --- src/App.vue | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'src/App.vue') diff --git a/src/App.vue b/src/App.vue index 5970449..1cd00f5 100644 --- a/src/App.vue +++ b/src/App.vue @@ -18,11 +18,10 @@
- - + +
@@ -38,7 +37,7 @@ import PlusIcon from './components/icon/PlusIcon.vue'; import SettingsIcon from './components/icon/SettingsIcon.vue'; import HelpIcon from './components/icon/HelpIcon.vue'; // Other -import {HistDate, TimelineRange} from './lib'; +import {HistDate, TimelineState} from './lib'; import {useStore} from './store'; // Refs @@ -59,42 +58,43 @@ function updateAreaDims(){ onMounted(updateAreaDims) // Timeline data -const timelineRanges: Ref = ref([]); +const timelines: Ref = ref([]); const INITIAL_START_DATE = new HistDate(1900, 1, 1); const INITIAL_END_DATE = new HistDate(2000, 1, 1); let nextTimelineId = 1; -function addNewTimelineRange(){ - if (timelineRanges.value.length == 0){ - timelineRanges.value.push({id: nextTimelineId, start: INITIAL_START_DATE, end: INITIAL_END_DATE}); +function addTimeline(){ + if (timelines.value.length == 0){ + timelines.value.push(new TimelineState(nextTimelineId, INITIAL_START_DATE, INITIAL_END_DATE)); } else { - let lastRange = timelineRanges.value[timelineRanges.value.length - 1]; - timelineRanges.value.push({id: nextTimelineId, start: lastRange.start, end: lastRange.end}); + let last = timelines.value[timelines.value.length - 1]; + timelines.value.push(new TimelineState( + nextTimelineId, last.startDate, + last.endDate, last.startOffset, last.endOffset, last.scaleIdx + )); } nextTimelineId++; } -addNewTimelineRange(); -function onRangeChg(newBounds: [HistDate, HistDate], idx: number){ - let range = timelineRanges.value[idx]; - range.start = newBounds[0]; - range.end = newBounds[1]; +addTimeline(); +function onTimelineChg(state: TimelineState, idx: number){ + timelines.value[idx] = state; } // For timeline addition/removal const MIN_TIMELINE_BREADTH = 150; function onTimelineAdd(){ - if (vert.value && contentWidth.value / (timelineRanges.value.length + 1) < MIN_TIMELINE_BREADTH || - !vert.value && contentHeight.value / (timelineRanges.value.length + 1) < MIN_TIMELINE_BREADTH){ + if (vert.value && contentWidth.value / (timelines.value.length + 1) < MIN_TIMELINE_BREADTH || + !vert.value && contentHeight.value / (timelines.value.length + 1) < MIN_TIMELINE_BREADTH){ console.log('Reached timeline minimum breadth'); return; } - addNewTimelineRange(); + addTimeline(); } function onTimelineRemove(idx: number){ - if (timelineRanges.value.length == 1){ + if (timelines.value.length == 1){ console.log('Ignored removal of last timeline') return; } - timelineRanges.value.splice(idx, 1); + timelines.value.splice(idx, 1); } // For resize handling -- cgit v1.2.3