2024-12-20 08:05:55 +01:00
|
|
|
<template>
|
2024-12-20 09:24:20 +01:00
|
|
|
<Images
|
|
|
|
|
v-if="step.files.dynamic || step.files.static"
|
|
|
|
|
:step="step"
|
|
|
|
|
:images="images"
|
2024-12-20 10:40:44 +01:00
|
|
|
:uri="uri"
|
2024-12-20 09:24:20 +01:00
|
|
|
/>
|
2024-12-20 08:05:55 +01:00
|
|
|
</template>
|
|
|
|
|
<script setup>
|
2025-02-05 11:22:09 +01:00
|
|
|
import Images from './Images.vue';
|
|
|
|
|
import { computed } from 'vue';
|
2024-12-20 08:05:55 +01:00
|
|
|
const { step } = defineProps({ step: Object });
|
|
|
|
|
|
|
|
|
|
const images = computed(() => {
|
2024-12-20 10:55:33 +01:00
|
|
|
if (!step.files.dynamic) {
|
|
|
|
|
return [
|
|
|
|
|
{
|
2025-02-05 14:29:21 +01:00
|
|
|
url: step.files.static.rawGlass.cover,
|
2024-12-20 10:55:33 +01:00
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
}
|
2025-02-05 14:29:21 +01:00
|
|
|
return step.files?.dynamic?.map((track) => getFrontView(track)) ?? [];
|
2024-12-20 08:05:55 +01:00
|
|
|
});
|
|
|
|
|
|
2025-02-05 11:22:09 +01:00
|
|
|
const uri = '/' + step.uri;
|
2024-12-20 10:40:44 +01:00
|
|
|
|
2024-12-20 08:05:55 +01:00
|
|
|
function getFrontView(track) {
|
|
|
|
|
if (track.files.length === 1) return track.files[0];
|
|
|
|
|
const xMax = parseInt(
|
2025-02-05 11:22:09 +01:00
|
|
|
track.files[track.files.length - 1].name.split('_')[1].split('.')[0]
|
2024-12-20 08:05:55 +01:00
|
|
|
);
|
|
|
|
|
const xFrontView = (xMax + 1) / 2;
|
2025-02-05 11:22:09 +01:00
|
|
|
const extension = track.files[0].name.split('.')[1];
|
|
|
|
|
const frontViewName = '0_' + xFrontView + '.' + extension;
|
2024-12-20 08:05:55 +01:00
|
|
|
const frontView = track.files.find((file) => file.name === frontViewName);
|
|
|
|
|
return frontView;
|
|
|
|
|
}
|
|
|
|
|
</script>
|