{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/visualized/charts/rose-pie-chart/src/index.vue"],"sourcesContent":["<template>\n  <hl-group full=\"full-x\" align=\"items-middle\" gap=\"var(--md)\" style=\"height: 100%\">\n    <div\n      ref=\"chartContainer\"\n      class=\"echart-container static\"\n      :style=\"`min-height: ${showLabel ? height : '100%'}; min-width: ${showLabel ? height : '100%'}`\"\n    ></div>\n    <hl-group\n      v-if=\"showLabel\"\n      dir=\"vertical\"\n      align=\"items-center\"\n      gap=\"var(--md)\"\n      class=\"static p-r-md\"\n      style=\"width: 45%\"\n    >\n      <hl-group\n        v-for=\"(item, index) in chartData\"\n        :key=\"index\"\n        :gap=\"legend.gap\"\n        align=\"items-middle items-between\"\n        :class=\"['cursor-pointer static', isHighlights[index] ? 'is-checked' : '']\"\n        :style=\"`opacity:${isHides[index] ? 0.2 : 1}`\"\n        @click=\"hideSerie(index)\"\n      >\n        <span class=\"echart-fill-rect static\" :style=\"`background-color:${item.color}`\"></span>\n        <span class=\"text-secondary font-md w-full text-link-checked\">{{ item.label }}</span>\n        <h3 class=\"font-lg font-din static\">{{ item.value }}</h3>\n      </hl-group>\n    </hl-group>\n  </hl-group>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, ref, onMounted, PropType } from 'vue'\nimport { merge } from 'lodash-es'\nimport { useEChart } from 'hongluan-hooks'\nimport * as echarts from 'echarts/core'\nimport { PieChart } from 'echarts/charts'\nimport {\n  TitleComponent,\n  TooltipComponent,\n  LegendComponent,\n  GridComponent,\n  DataZoomComponent,\n} from 'echarts/components'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { HlGroup } from 'hongluan-ui'\nimport { useRenderChart, useResponsiveChart } from '@fx-front-framework/hooks'\n\nimport type { PieChartData } from '../../pie-chart/src/types'\n\necharts.use([\n  PieChart,\n  LegendComponent,\n  TitleComponent,\n  TooltipComponent,\n  GridComponent,\n  DataZoomComponent,\n  CanvasRenderer,\n])\n\nexport default defineComponent({\n  name: 'VRosePieChart',\n  components: { HlGroup },\n  props: {\n    chartData: {\n      type: Array as PropType<PieChartData[]>,\n      default: () => [],\n    },\n    legend: {\n      type: Object as PropType<{ gap: string; }>,\n      default: () => ({ gap: 'var(--sm)' }),\n    },\n    height: {\n      type: String,\n      default: 'calc(var(--xxl) * 5)',\n    },\n    title: {\n      type: String,\n      default: '',\n    },\n    showLabel: {\n      type: Boolean,\n      default: true,\n    },\n    // echarts.tooltip\n    tooltip: {\n      type: Object,\n      default: () => ({}),\n    },\n  },\n  setup(props) {\n    const { chartContainer, setChartOption, addChartEvent } = useEChart()\n    const { updateOptionToResponsive } = useResponsiveChart()\n\n    const isHides = ref<boolean[]>([])\n    const isHighlights = ref<boolean[]>([])\n\n    const renderChart = () => {\n      const option = {\n        confine: true,\n        tooltip: merge({\n          axisPointer: {\n            type: 'none',\n          },\n          extraCssText: 'border-radius: 0;',\n          formatter: (params: any) => {\n            return params.seriesIndex === 0 && params.componentType === 'series' ? `\n              <div class=\"font-md\" style=\"background-color:#fff;border-raduis:0;\">\n                ${params.marker}\n                <span>${params.data.label} <span style=\"font-weight: bold; margin-left: var(--md)\">${params.data.value}</span></span>\n              </div>\n            ` : ''\n          },\n        }, props.tooltip),\n        title: [\n          {\n            text: props.title,\n            top: 'center',\n            left: 'center',\n            textStyle: {\n              color: '#6F8EA8',\n              fontSize: 14,\n            },\n          },\n        ],\n        series: [\n          {\n            name: '',\n            type: 'pie',\n            radius: ['40%', '90%'],\n            center: ['50%', '50%'],\n            roseType: 'radius',\n            minShowLabelAngle: 60,\n            left: '0',\n            itemStyle: {\n              color: (params: any) => props.chartData[params.dataIndex].color,\n            },\n            emptyCircleStyle: {\n              color: 'rgba(47,71,110,0.12)',\n            },\n            label: {\n              show: false,\n            },\n            labelLine: {\n              length: 1,\n              length2: 20,\n              smooth: true,\n            },\n            data: props.chartData.filter((_, idx) => !isHides.value[idx]),\n          },\n        ],\n      }\n      updateOptionToResponsive(option)\n      setChartOption(option)\n    }\n    const hideSerie = (idx: number) => {\n      isHides.value[idx] = !isHides.value[idx]\n      renderChart()\n    }\n\n    useRenderChart(renderChart, props)\n\n    onMounted(() => {\n      addChartEvent('click', (params: any) => {\n\n        if (params.componentType === 'series' && params.seriesIndex === 0) {\n          const idx = props.chartData.findIndex(c => c.label === params.data.label)\n          if (idx > -1) {\n            isHighlights.value.fill(false)\n            isHighlights.value[idx] = true\n          }\n        }\n      })\n    })\n\n    return {\n      chartContainer,\n      isHides,\n      isHighlights,\n      hideSerie,\n    }\n  },\n})\n</script>\n"],"names":["_createBlock","_createElementVNode","_normalizeStyle","_openBlock","_createElementBlock","_Fragment","_renderList","_normalizeClass","_toDisplayString"],"mappings":"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"}