MCPcopy
hub / github.com/tinyplex/tinybase / CartesianChart

Function CartesianChart

src/ui-react-dom-charts/components/CartesianChart.tsx:116–438  ·  view source on GitHub ↗
({
  children,
  className,
  initialSummary,
  queries,
  queryId,
  store,
  tableId,
}: CartesianChartProps)

Source from the content-addressed store, hash-verified

114const TITLE_SEPARATOR = ' & ';
115
116export const CartesianChart = ({
117 children,
118 className,
119 initialSummary,
120 queries,
121 queryId,
122 store,
123 tableId,
124}: CartesianChartProps) => {
125 const layout = useLayout();
126 const [svgRef, chartSize, chartStyle] = layout;
127 const [tickSize, tickGap, , xAxisHeight, yAxisWidth, , fontSize] = chartStyle;
128 const plotFrame = getPlotFrame(chartSize, chartStyle);
129 const plotSize = getPlotSize(layout);
130 const labelSize = getLabelSize(layout);
131 const storeObject = useStoreOrStoreById(store);
132 const queriesObject = useQueriesOrQueriesById(queries);
133 const sourceType = isNullish(tableId)
134 ? isNullish(queryId)
135 ? SourceType.None
136 : SourceType.Query
137 : SourceType.Table;
138 const initialSummaries: SummaryById = isNullish(initialSummary)
139 ? {}
140 : {0: initialSummary};
141 const initialDomainState = isNullish(initialSummary)
142 ? EMPTY_DOMAIN_STATE
143 : getDomainState(objValues(initialSummaries));
144 const initialXTitle = getTitle(initialSummaries, 'xCellId');
145 const initialYTitle = getTitle(initialSummaries, 'yCellId');
146 const summariesRef = useRef<SummaryById>(initialSummaries);
147 const boundsRef = useRef<Bounds>(initialDomainState.bounds);
148 const domainStateRef = useRef<DomainState>(initialDomainState);
149 const xTitleRef = useRef(initialXTitle);
150 const yTitleRef = useRef(initialYTitle);
151 const pool = useRef(getPoolFunctions());
152 const [domainState, setDomainState] =
153 useState<DomainState>(initialDomainState);
154 const [xTitle, setXTitle] = useState(initialXTitle);
155 const [yTitle, setYTitle] = useState(initialYTitle);
156 const barSeriesIdsRef = useRef<string[]>([]);
157 const [barSeriesIds, setBarSeriesIds] = useState<string[]>([]);
158 const [tooltipPoint, setTooltipPoint] = useState<ScaledPoint | undefined>();
159 const [chartChildren, xAxis, yAxis] = getParsedChildren(children);
160 const xValues = domainState.xValues;
161 const timestampUnit: TimestampUnit =
162 xAxis?.scale == TIME && xAxis.timestampUnit == SECOND_UNIT
163 ? SECOND_UNIT
164 : MILLISECOND;
165 const xScale = getResolvedXScale(
166 xAxis?.scale,
167 domainState,
168 isFiniteNumber(xAxis?.min) ||
169 isFiniteNumber(xAxis?.max) ||
170 !isNullish(xAxis?.ticks),
171 );
172 const continuousX = xScale != CATEGORY;
173 const dataBounds = getAxisBounds(

Callers 1

_AppFunction · 0.90

Calls 15

useLayoutFunction · 0.90
getPlotFrameFunction · 0.90
getPlotSizeFunction · 0.90
getLabelSizeFunction · 0.90
useStoreOrStoreByIdFunction · 0.90
useQueriesOrQueriesByIdFunction · 0.90
isNullishFunction · 0.90
getDomainStateFunction · 0.90
objValuesFunction · 0.90
getPoolFunctionsFunction · 0.90
getResolvedXScaleFunction · 0.90
arrayIsEmptyFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…