Files
mixtape/zero.Web.UI/App/components/date.vue
T

74 lines
1.1 KiB
Vue
Raw Normal View History

2020-04-21 16:23:43 +02:00
<template>
<span class="ui-date" v-html="output"></span>
</template>
<script>
import dayjs from 'dayjs';
import Strings from 'zero/helpers/strings.js';
2020-04-21 16:23:43 +02:00
export default {
name: 'uiDate',
props: {
value: {
type: String,
default: null
},
format: {
type: String,
default: null
2020-08-17 14:46:13 +02:00
},
split: {
type: Boolean,
default: false
2020-04-21 16:23:43 +02:00
}
},
data: () => ({
output: null
}),
watch: {
value: function (value)
{
this.rebuild();
}
},
mounted()
{
this.rebuild();
},
methods: {
rebuild()
{
if (!this.value)
{
this.output = '';
return;
}
2020-08-17 14:46:13 +02:00
if (!this.split)
{
this.output = Strings.date(this.value, this.format);
}
else
{
this.output = Strings.date(this.value, 'short') + ' <span class="-minor">' + Strings.date(this.value, 'time') + '</span>';
}
2020-04-21 16:23:43 +02:00
}
}
}
2020-08-17 14:46:13 +02:00
</script>
<style lang="scss">
.ui-date .-minor
{
color: var(--color-text-dim);
2020-08-17 14:46:13 +02:00
}
</style>