export const prepareColumns = (columns, hidden) => { if (!hidden?.length) return [...columns]; return columns.filter((col) => { return !hidden.includes(col.id); }); }; export const getProperty = (object, path) => { try { const properties = path.split("."); let result = object; for (const property of properties) { result = result?.[property]; if (result === undefined) { return undefined; } } return result; } catch { return undefined; } }; const resolveStyle = (col, decoration, cellView) => { const result = {}; [cellView, decoration].forEach((item) => { const cellStyle = (item ?? {}).style; if (cellStyle instanceof Function) { Object.assign(result, cellStyle(col) ?? {}); } else { Object.assign(result, cellStyle ?? {}); } }); return result ?? {}; }; export const getStyle = (cellViews, col, decoration) => { const cellView = cellViews?.[col.type]; const style = { width: 150 }; const resolvedStyle = resolveStyle(col, decoration, cellView); Object.assign(style, resolvedStyle, { width: col.width ?? resolvedStyle.width ?? 150, }); return style; };