import "echarts-wordcloud";

const getWordCloudChart = (data = []) => {
  const option = {
    tooltip: {
      show: true,
      formatter: params => {
        const name = params?.data?.fullName ?? params?.name ?? ''
        const value = params?.value ?? ''
        return `${name}${value !== '' ? `：${value}` : ''}`
      },
    },
    grid: {
      left: 0,
      top: 0,
      right: 0,
      bottom: 0,
    },
    series: [
      {
        type: "wordCloud",
        width: '80%',
        height: '80%',
        shape: "rect",  // 
        // 其他形状你可以使用形状路径
        // 或者自定义路径
        //         shape: 'circle'      // 圆形（默认）
        // shape: 'rect'        // 矩形
        // shape: 'roundRect'   // 圆角矩形
        // shape: 'triangle'    // 三角形
        // shape: 'diamond'     // 菱形
        // shape: 'pentagon'    // 五边形
        // shape: 'star'        // 星形
        // shape: 'cardioid'    // 心形
        gridSize: 15, // 网格大小，影响词间距。
        sizeRange: [16, 36], // 定义词云中文字大小的范围
        rotationRange: [0, 0],
        rotationStep: 15,
        drawOutOfBound: false,  // 是否超出画布
        // 字体
        textStyle: {
          // normal: {
          //   color: function () {
          //     return 'rgb(' + [
          //       Math.round(Math.random() * 160),
          //       Math.round(Math.random() * 160),
          //       Math.round(Math.random() * 160)
          //     ].join(',') + ')';
          //   }
          // },
          color: function () {
            let colors = [
              "rgba(189, 33, 33, 1)",
              "rgba(232, 151, 21, 1)",
              "rgba(220, 190, 68, 1)",
              "rgba(96, 58, 186, 1)",
              "rgba(32, 121, 69, 1)",
              "rgba(22, 119, 255, 1)",
            ];
            return colors[parseInt(Math.random() * colors.length)];
          },
          emphasis: {
            shadowBlur: 5,
            shadowColor: "#333",
          },
        },
        // 设置词云数据
        data: (Array.isArray(data) ? data : []).map(item => {
          const name = item?.name ?? ''
          return {
            ...item,
            fullName: name,
            name,
          }
        }),
      },
    ],
  }

  return option
}

export default getWordCloudChart