<template>
<div class="row">
<div class="col-12">
<SectionTitle :title="$t('identification.list_section.title')">
<template #icon>
<FormatListBulletedIcon
class="mr-1"
:fill-color="iconColor"
:size="24"
/>
</template>
</SectionTitle>
</div>
<div v-if="items.length === 0" class="col-12">
<span>{{ $t('identification.no_results') }}</span>
</div>
<div v-if="items.length !== 0" class="col">
<div class="d-flex justify-content-end">
<table-button
icon="table-map"
elevated
is-event-view
@click="
switchToTablePlusMapMode({
top: 'LocationIdentBacsMap',
bottom: 'LocationIdentBacsTable',
})
"
/>
</div>
<div class="col-12">
<div class="history-tl-container">
<ul class="tl">
<div class="row">
<location-ident-bac-detail-item
v-for="(item, index) in items"
:key="index"
:item="item"
:icon-color="iconColor"
@click="click(item)"
/>
</div>
</ul>
</div>
</div>
</div>
</div>
</template>
<script>
import locationLayoutModesMixin from '../mixins/location-layout-modes.js'
import TableButton from '../../shared/TableButton'
import FormatListBulletedIcon from 'vue-material-design-icons/FormatListBulleted.vue'
import SectionTitle from '@c/shared/SectionTitle.vue'
import LocationIdentBacDetailItem from './LocationIdentBacDetailItem'
import { removeNativeTooltipFromMaterialIconsMixin } from '@/mixins/icons-mixin.js'
/**
* List feature (details)
* @namespace components
* @category components
* @subcategory location/identification
* @module LocationIdentBacsDetails
**/
export default {
name: 'LocationIdentBacsDetails',
components: {
LocationIdentBacDetailItem,
TableButton,
FormatListBulletedIcon,
SectionTitle,
},
mixins: [locationLayoutModesMixin, removeNativeTooltipFromMaterialIconsMixin],
props: {
items: {
type: Array,
default: () => [],
},
iconColor: {
type: String,
default: 'var(--color-dark-blue)',
},
},
data() {
return {
isShowDetailIcon: false,
}
},
methods: {
click(detail) {
this.$emit('on-item-click', detail)
},
},
}
</script>
<style lang="scss" scoped>
.blue {
color: #164470;
}
.small-text {
font-size: 0.75rem;
}
.history-tl-container {
font-family: 'Roboto', sans-serif;
width: 100%;
margin: auto;
display: block;
position: relative;
}
.history-tl-container ul.tl {
margin: 20px 0;
padding: 0;
display: inline-block;
}
.history-tl-container ul.tl li {
list-style: none;
margin: auto;
min-height: 50px;
border-left: 2px solid grey;
padding: 0 0 20px 30px;
position: relative;
}
.history-tl-container ul.tl li:last-child {
border-left: 2px solid white;
}
.history-tl-container ul.tl li:hover::before {
border-color: grey;
transition: all 1000ms ease-in-out;
}
.chrono-title {
width: 100%;
display: flex;
}
.tl {
width: 100%;
}
ul.tl li .item-detail {
color: rgba(0, 0, 0, 0.5);
font-size: 12px;
}
</style>
Source