{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/visualized/charts/pyramid-chart/src/index.vue"],"sourcesContent":["<template>\n  <div ref=\"chartContainer\" class=\"echart-container\"></div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue'\nimport * as echarts from 'echarts/core'\nimport { FunnelChart } 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 } from 'hongluan-hooks'\nimport { useRenderChart, useResponsiveChart } from '@fx-front-framework/hooks'\n\nimport type { PyramidChartData } from './types'\n\necharts.use([\n  FunnelChart,\n  LegendComponent,\n  TitleComponent,\n  TooltipComponent,\n  GridComponent,\n  DataZoomComponent,\n  CanvasRenderer,\n])\n\nexport default defineComponent({\n  name: 'VPyramidChart',\n  props: {\n    chartData: {\n      type: Array as PropType<PyramidChartData[]>,\n      default: () => [],\n    },\n  },\n  setup(props) {\n    const { chartContainer, setChartOption } = useEChart()\n    const { updateOptionToResponsive } = useResponsiveChart()\n\n    const renderChart = () => {\n      const option = {\n        // tooltip: {\n        //   axisPointer: {\n        //     type: 'none',\n        //   },\n        //   extraCssText: 'border-radius: 0;',\n        //   formatter: (params: any) => {\n        //     return params.componentType === 'series' ? `\n        //       <div style=\"backgroundColor:#fff;borderRaduis:0\">\n        //         ${params.marker}\n        //         <span>${params.data.name} <span style=\"font-weight: bold; margin-left: var(--md)\">${params.data.value}</span></span>\n        //       </div>\n        //     ` : ''\n        //   },\n        // },\n        legend: {\n          data: props.chartData.map(d => d.label),\n          bottom: '-5',\n          icon: 'rect',\n          itemHeight: 12,\n          itemWidth: 12,\n          itemGap: 16,\n          textStyle: {\n            'color': '#84A4F6',\n          },\n        },\n        series: [{\n          type: 'funnel',\n          left: '10%',\n          top: 0,\n          bottom: 45,\n          width: '80%',\n          sort: 'ascending',\n          // min: 0,\n          // max: Math.max(...props.chartData.map(d => d.value)),\n          // minSize: '0%',\n          // maxSize: '100%',\n          gap: 2,\n          label: {\n            show: false,\n            position: 'inside',\n          },\n          emphasis: {\n            label: {\n              color: '#fff',\n              fontSize: 14,\n              formatter: '{c}',\n              backgroundColor: 'transparent',\n              fontWeight: 'bold',\n            },\n            labelLine: {\n              show: false,\n            },\n          },\n          data: props.chartData.map(d => ({\n            value: d.value,\n            name: d.label,\n            itemStyle: {\n              color: typeof d.color === 'string' ? d.color : new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n                { offset: 0, color: d.color[0] },\n                { offset: 1, color: d.color[1] },\n              ]),\n              borderWidth: 0,\n              borderRadius: [2, 2, 0, 0],\n            },\n          })),\n        }],\n      }\n      updateOptionToResponsive(option)\n      setChartOption(option)\n    }\n\n    useRenderChart(renderChart, props)\n\n    return {\n      chartContainer,\n    }\n  },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock"],"mappings":"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"}