/** * @upsetjs/react * https://github.com/upsetjs/upsetjs * * Copyright (c) 2021 Samuel Gratzl */ import React, { PropsWithChildren } from 'react'; import { UpSetQuery, isSetQuery, isElemQuery } from '@upsetjs/model'; import { clsx } from '../utils'; const QueryLegend = /*!#__PURE__*/ React.memo(function QueryLegend({ queries, x, style, data, }: PropsWithChildren<{ queries: readonly UpSetQuery[]; x: number; style: { id: string; styles: { legend?: React.CSSProperties }; classNames: { legend?: string } }; data: { id: string; sets: { format(v: number): string } }; }>) { return ( {queries.map((q, i) => { let count: number | null = null; if (isSetQuery(q)) { count = q.set.cardinality; } else if (isElemQuery(q)) { count = q.elems instanceof Set ? q.elems.size : q.elems.length; } return ( {' ⬤ '} {q.name} {count != null ? `: ${data.sets.format(count)}` : ''} ); })} ); }); export default QueryLegend;