UNPKG

@opengis/bi

Version:

BI data visualization module

25 lines (18 loc) 937 B
import { getSelectVal } from '@opengis/fastify-table/utils.js'; export default async function metaFormat({ rows, columns }) { const selectCols = columns?.filter?.((el) => el.data); if (!selectCols?.length) return rows; await Promise.all(selectCols.map(async (attr) => { const values = [...new Set(rows?.map((el) => el[attr.name]).flat())].filter((el) => (typeof el === 'boolean' ? true : el)); if (!values.length) return null; const cls = await getSelectVal({ name: attr.data, values }); if (!cls) return null; rows.forEach(el => { const val = el[attr.name]?.map?.(c => cls[c.toString()] || cls[c] || c) || cls[el[attr.name]?.toString()] || cls[el[attr.name]] || el[attr.name]; if (!val) return; Object.assign(el, { [val?.color ? `${attr.name}_data` : `${attr.name}_text`]: (val.color ? val : val.text || val) }); }); return null; })); return rows; }