<template>
  <div>
    <highcharts :options="chartOptions.line" />
  </div>
</template>

<script>
import { setTime, Series, setCategories } from './helpers';
import { Chart } from 'highcharts-vue';

export default {
  components: {
    highcharts: Chart,
  },
  props: {
    timeScale: {
      type: String,
      default: 'hour',
    },
    warning: {
      type: Number,
      default: 70,
    },
  },
  computed: {
    chartOptions() {
      return {
        line: {
          chart: {
            type: 'line',
            margin: [12, 50, 32, 60],
            height: '320px',
          },
          title: null,
          xAxis: {
            categories: setTime(60, 'hour'),
            title: null,
            labels: {
              step: 6,
            },
            minorGridLineColor: '#1A3E5B1A',
          },
          yAxis: {
            categories: setCategories(1001, 'Hz'),
            min: 0,
            max: 1000,
            title: null,
            minTickInterval: 250,
            minorGridLineColor: '#1A3E5B1A',
            labels: {
              padding: 4,
            },
            plotLines: [
              {
                color: '#E11717',
                dashStyle: 'solid',
                value: this.warning,
                zIndex: '1000',
                width: 2,
                label: {
                  text: 'Пороговое значение предупреждения',
                  align: 'right',
                  style: {
                    fontFamily: 'Inter, sans-serif',
                    fontSize: '12px',
                    fontStyle: 'normal',
                    fontWeight: '400',
                    lineHeight: '16px',
                    color: '#0C1C2999',
                  },
                },
              },
            ],
          },
          series: Series['frequency'].map((item) => ({
            ...item,
            marker: {
              enabled: false,
            },
          })),
          legend: {
            enabled: false,
          },
          tooltip: {
            enabled: false,
            crosshairs: false,
          },
          plotOptions: {
            series: {
              showInLegend: true,
            },
          },
        },
      };
    },
  },
};
</script>
<style lang="scss">
.highcharts-credits {
  display: none;
}

.highcharts-plot-line-label {
  transform: translate(-15px, 0) !important;
}
</style>