aboutsummaryrefslogtreecommitdiff
path: root/src/components/BaseLine.vue
diff options
context:
space:
mode:
authorTerry Truong <terry06890@gmail.com>2022-10-10 15:57:14 +1100
committerTerry Truong <terry06890@gmail.com>2022-10-10 15:57:14 +1100
commit151e77296fbc80b36649c89604adde071f6139a3 (patch)
tree7db3dfc803266418ddae07c0b7191d1e6f91f7ee /src/components/BaseLine.vue
parent959f90f1540c1cf581f03b643e194d69ead90584 (diff)
Add BaseLine.vue
Diffstat (limited to 'src/components/BaseLine.vue')
-rw-r--r--src/components/BaseLine.vue38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/components/BaseLine.vue b/src/components/BaseLine.vue
new file mode 100644
index 0000000..f0008f9
--- /dev/null
+++ b/src/components/BaseLine.vue
@@ -0,0 +1,38 @@
+<template>
+<div class="bg-stone-900 text-stone-50 flex" :class="{'flex-col': vert}">
+ <div v-for="p in periods" :key="p.label" :style="periodStyles(p)">
+ <div :style="labelStyles">{{p.label}}</div>
+ </div>
+</div>
+</template>
+
+<script setup lang="ts">
+import {ref, computed, PropType} from 'vue';
+
+// Props
+const props = defineProps({
+ vert: {type: Boolean, required: true},
+ timelineData: {type: Object as PropType<number[][]>, required: true},
+});
+
+// Time periods to represent
+const periods = ref([
+ {label: 'One', len: 1},
+ {label: 'Two', len: 2},
+ {label: 'Three', len: 1},
+]);
+
+// Styles
+function periodStyles(period){
+ return {
+ outline: '1px solid gray',
+ flexGrow: period.len,
+ };
+}
+const labelStyles = computed(() => ({
+ transform: props.vert ? 'rotate(90deg) translate(50%, 0)' : 'none',
+ whiteSpace: 'nowrap',
+ width: props.vert ? '40px' : 'auto',
+ padding: props.vert ? '0' : '4px',
+}));
+</script>