<template>
    <el-carousel :height="car_height">
        <el-carousel-item v-for="(img, index) in carouselImages" :key="index">
          <el-image :src="img" fit="cover" style="width: 100%; height: 100%"/>
        </el-carousel-item>
    </el-carousel>
</template>

<style scoped>
.demonstration {
  color: var(--el-text-color-secondary);
}

.el-carousel__item h3 {
  color: #475669;
  opacity: 0.75;
  line-height: 150px;
  margin: 0;
  text-align: center;
}
.el-carousel__item:nth-child(2n) {
  background-color: #99a9bf;
}

.el-carousel__item:nth-child(2n + 1) {
  background-color: #d3dce6;
}
</style>

<script setup>
import { ref, provide, watch, computed, onActivated, onMounted } from "vue";
import { onBeforeRouteLeave } from "vue-router";

const imgModules = import.meta.glob('@/assets/*.png', { eager: true })

const carouselImages = ref(
  Object.values(imgModules)
    .map(module => module.default)
    .sort((a, b) => {
      const numA = parseInt(a.match(/(\d+)\.png$/)[1])
      const numB = parseInt(b.match(/(\d+)\.png$/)[1])
      return numA - numB
    })
)

defineOptions({
    name: "Welcome"
});

const car_height = ref();

const resizeCar = () => {
    car_height.value = (window.innerHeight - 20) + 'px';
}

onMounted( () => {
    resizeCar();
    window.onresize = () => {
        resizeCar();
    }

})

onBeforeRouteLeave( () => {
    window.onresize = null;
})
</script>