{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/visualized/charts/column-chart/src/index.vue"],"sourcesContent":["<template>\n  <div ref=\"chartContainer\" class=\"echart-container\"></div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, onMounted, PropType } from 'vue'\nimport { merge } from 'lodash-es'\nimport * as echarts from 'echarts/core'\nimport { BarChart } from 'echarts/charts'\nimport {\n  TitleComponent,\n  TooltipComponent,\n  LegendComponent,\n  GridComponent,\n  DataZoomComponent,\n} from 'echarts/components'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { useEChart, useScrollEChartData } from 'hongluan-hooks'\nimport { useRenderChart, useResponsiveChart } from '@fx-front-framework/hooks'\n\nimport type { BarChartData } from './types'\n\necharts.use([\n  BarChart,\n  LegendComponent,\n  TitleComponent,\n  TooltipComponent,\n  GridComponent,\n  DataZoomComponent,\n  CanvasRenderer,\n])\n\nexport default defineComponent({\n  name: 'VColumnChart',\n  props: {\n    chartData: {\n      type: Array as PropType<BarChartData[]>,\n      default: () => [],\n    },\n    barWidth: {\n      type: Number,\n      default: 8,\n    },\n    barColor: {\n      type: [String, Array] as PropType<string | [string, string]>,\n      default: () => ['#71F8FC', 'rgba(0,250,255,0.16)'],\n    },\n    backgroundColor: {\n      type: String,\n      default: 'rgba(56,75,103,0.16)',\n    },\n    // 每次滚动个数\n    scrollCount: {\n      type: Number,\n      default: 4,\n    },\n    // 每次展示个数\n    showCount: {\n      type: Number,\n      default: Number.MAX_SAFE_INTEGER,\n    },\n    // 定时器时间间隔\n    interval: {\n      type: Number,\n      default: 5000,\n    },\n    xAxis: {\n      type: Object,\n      default: () => ({}),\n    },\n    yAxis: {\n      type: Object,\n      default: () => ({}),\n    },\n    hoverStop: Boolean,\n    isVertical: {\n      type: Boolean,\n      default: true,\n    },\n    // echarts.tooltip\n    tooltip: {\n      type: Object,\n      default: () => ({}),\n    },\n    // echarts.grid\n    grid: {\n      type: Object,\n      default: () => ({}),\n    },\n  },\n  setup(props) {\n    const { chartContainer, setChartOption, addChartEvent } = useEChart()\n    const { updateOptionToResponsive } = useResponsiveChart()\n\n    const renderChart = (chartData: BarChartData[]) => {\n      const colorDir: [number, number, number, number] = props.isVertical ? [0, 0, 0, 1] : [1, 0, 0, 0]\n      const option = {\n        tooltip: merge({\n          trigger: 'axis',\n          axisPointer: {\n            type: 'none',\n          },\n          extraCssText: 'border-radius: 0;',\n          formatter: (params: any) => `\n          <div class=\"font-md\" style=\"background-color:#fff;border-raduis:0;\">\n            ${params[0].marker}\n            <span>${params[0].axisValue} <span style=\"font-weight: bold; margin-left: var(--md)\">${params[0].value}</span></span>\n          </div>\n          `,\n        }, props.tooltip),\n        grid: merge({\n          top: '10',\n          left: '0%',\n          right: '10',\n          bottom: '0%',\n          containLabel: true,\n        }, props.grid),\n        xAxis: merge({\n          type: props.isVertical ? 'category' : 'value',\n          splitLine: {\n            show: props.isVertical ? false : true,\n            lineStyle: {\n              type: 'solid',\n              color: '#2B394E',\n            },\n          },\n          axisLabel: {\n            fontSize: 12,\n            color: '#6F8EA8',\n            lineHeight: 20,\n            margin: 5,\n          },\n          axisTick: {\n            alignWithLabel: true,\n          },\n          axisLine: {\n            lineStyle: {\n              color: '#2B394E',\n            },\n          },\n          data: props.isVertical ? chartData.map(d => d.label) : null,\n        }, props.xAxis),\n        yAxis: merge({\n          type: props.isVertical ? 'value' : 'category',\n          splitNumber: 3,\n          splitLine: {\n            show: props.isVertical ? true : false,\n            lineStyle: {\n              type: 'solid',\n              color: '#2B394E',\n            },\n          },\n          axisLabel: {\n            fontSize: 12,\n            color: '#6F8EA8',\n            lineHeight: 20,\n          },\n          axisLine: {\n            lineStyle: {\n              color: '#2B394E',\n            },\n          },\n          data: props.isVertical ? null : chartData.map(d => d.label),\n        }, props.yAxis),\n        series: [\n          {\n            itemStyle: {\n              color: typeof props.barColor === 'string' ? props.barColor : new echarts.graphic.LinearGradient(...colorDir, [\n                { offset: 0, color: props.barColor[0] },\n                { offset: 1, color: props.barColor[1] },\n              ]),\n              borderRadius: [2, 2, 0, 0],\n            },\n            barWidth: props.barWidth,\n            showBackground: true,\n            backgroundStyle: {\n              color: props.backgroundColor,\n            },\n            data: chartData.map(d => d.value),\n            type: 'bar',\n          },\n        ],\n      }\n      updateOptionToResponsive(option)\n      setChartOption(option)\n    }\n\n    const { startScroll, stopScroll } = useScrollEChartData({\n      showCount: props.showCount,\n      scrollCount: props.scrollCount,\n      interval: props.interval,\n      chartData: props.chartData,\n    }, renderChart)\n\n    useRenderChart(startScroll, props)\n\n    onMounted(() => {\n      if (props.hoverStop) {\n        addChartEvent('mouseover', stopScroll)\n        addChartEvent('mouseout', startScroll)\n      }\n    })\n\n    return {\n      chartContainer,\n    }\n  },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock"],"mappings":"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"}