<script lang="ts" setup>
import { ref, onMounted } from 'vue';

import * as echarts from 'echarts';

type EChartsOption = echarts.EChartsOption;

const titleChartRef = ref<HTMLElement | null>(null);

onMounted(() => {
  initDom();
});

function initDom() {
  var myChart = echarts.init(titleChartRef.value as HTMLElement);
  let option: EChartsOption = {
    graphic: {
      elements: [
        {
          type: 'group',
          left: 'center',
          top: 'center',
          children: new Array(10).fill(0).map((val, i) => ({
            type: 'rect',
            x: i * 14,
            shape: {
              x: 0,
              y: -20,
              width: 5,
              height: 30,
            },
            style: {
              fill: '#FED049',
            },
            keyframeAnimation: {
              duration: 1000,
              delay: i * 200,
              loop: true,
              keyframes: [
                {
                  percent: 0.5,
                  scaleY: 0.3,
                  easing: 'cubicIn',
                },
                {
                  percent: 1,
                  scaleY: 1,
                  easing: 'cubicOut',
                },
              ],
            },
          })),
        },
      ],
    },
  };
  myChart.setOption(option);
}
</script>
<template>
  <div class="top-left-box row items-center justify-center overflow-hidden">
    <div style="width: 100%; height: 100%" ref="titleChartRef"></div>
  </div>
</template>
<style lang="scss" scoped>
.top-left-box {
  height: 50px;
  padding: $padding-sm;
}
</style>
