export default function highchartsDataToG2Data()

in src/common/dataAdapter.ts [37:156]


export default function highchartsDataToG2Data(
  data: DataAdapterData | DataAdapterData[],
  config: DataAdapterConfig,
  dataFields?: dataFields,
) {
  if (!data) {
    return [];
  }
  if (!Array.isArray(data)) {
    data = [data];
  }
  const { /*x: xField = 'x', y: yField = 'y',*/ type: typeField = 'type' } = dataFields || {};
  const newData: Types.LooseObject[] = [];
  if (Array.isArray(config.yAxis)) {
    data.forEach((oneData, index) => {
      if (!oneData || !Array.isArray(oneData.data)) {
        return;
      }

      const { name: dataName, yAxis: yIndex = 0, dodge, visible, ...groupExtra } = oneData;

      oneData.data.forEach((d, i) => {
        if (Array.isArray(d)) {
          const [x, y, ...extra] = d;
          newData.push({
            x,
            [`y${yIndex}`]: y,
            extra,
            groupExtra,
            dodge,
            visible,
            [typeField]: dataName || `undefined-name-${index}`,
          });
        } else if (config.xAxis && config.xAxis.categories && config.xAxis.categories[i]) {
          const x = config.xAxis.categories[i];
          const y = typeof d === 'number' ? d : d[0];
          newData.push({
            x,
            [`y${yIndex}`]: y,
            extra: [],
            groupExtra,
            dodge,
            visible,
            [typeField]: dataName || `undefined-name-${index}`,
          });
        } else {
          const { x, y, ...extra } = d;
          newData.push({
            x,
            [`y${yIndex}`]: y,
            extra,
            groupExtra,
            dodge,
            visible,
            [typeField]: dataName || `undefined-name-${index}`,
          });
        }
      });
    });
  } else {
    data.forEach((oneData, index) => {
      if (!oneData || !Array.isArray(oneData.data)) {
        return;
      }

      const { name: dataName, facet, dodge, visible, ...groupExtra } = oneData;

      oneData.data.forEach((d, i) => {
        if (Array.isArray(d)) {
          const [x, y, ...extra] = d;
          newData.push({
            x,
            y,
            extra,
            groupExtra,
            facet,
            dodge,
            visible,
            [typeField]: dataName || `undefined-name-${index}`,
          });
        } else if (config.xAxis && config.xAxis.categories && config.xAxis.categories[i]) {
          const x = config.xAxis.categories[i];
          const y = typeof d === 'number' ? d : d[0];
          newData.push({
            x,
            y,
            extra: [],
            groupExtra,
            facet,
            dodge,
            visible,
            [typeField]: dataName || `undefined-name-${index}`,
          });
        } else if (typeof d === 'number') {
          newData.push({
            x: d,
            y: d,
            groupExtra,
            visible,
            [typeField]: dataName || `undefined-name-${index}`,
          });
        } else {
          const { x, y, ...extra } = d;
          newData.push({
            x,
            y,
            extra,
            groupExtra,
            facet,
            dodge,
            visible,
            [typeField]: dataName || `undefined-name-${index}`,
          });
        }
      });
    });
  }

  return newData;
}