import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions' import type { ConfigProps } from '../loader/types' import type { SpreadWidgetConfig, SpreadWidgetData } from './types' /** * Creates download configuration for spread widgets, supporting PNG (screenshot) and CSV (min/max data) exports. * * @param props - Configuration with `refUI` reference for PNG export. * @returns Array of download items for use with the Download action. */ export function spreadDownloadConfig({ refUI, }: ConfigProps): DownloadItem[] { return [ { ...downloadToPNG, modifier: () => downloadToPNG.modifier(refUI), }, { ...downloadToCSV, modifier: async (data) => { const rows = data.map((item) => [item.min, item.max]) return downloadToCSV.modifier([['Min', 'Max'], ...rows]) }, }, ] } /** * Returns the default configuration for spread (min/max value range) widgets. * * @returns Default spread widget config with empty series. */ export function spreadConfig(): SpreadWidgetConfig { return { series: [], } }