| 318 | |
| 319 | // Helper to extract item config from a payload. |
| 320 | function getPayloadConfigFromPayload( |
| 321 | config: ChartConfig, |
| 322 | payload: unknown, |
| 323 | key: string |
| 324 | ) { |
| 325 | if (typeof payload !== "object" || payload === null) { |
| 326 | return undefined; |
| 327 | } |
| 328 | |
| 329 | const payloadPayload = |
| 330 | "payload" in payload && |
| 331 | typeof payload.payload === "object" && |
| 332 | payload.payload !== null |
| 333 | ? payload.payload |
| 334 | : undefined; |
| 335 | |
| 336 | let configLabelKey: string = key; |
| 337 | |
| 338 | if ( |
| 339 | key in payload && |
| 340 | typeof payload[key as keyof typeof payload] === "string" |
| 341 | ) { |
| 342 | configLabelKey = payload[key as keyof typeof payload] as string; |
| 343 | } else if ( |
| 344 | payloadPayload && |
| 345 | key in payloadPayload && |
| 346 | typeof payloadPayload[key as keyof typeof payloadPayload] === "string" |
| 347 | ) { |
| 348 | configLabelKey = payloadPayload[ |
| 349 | key as keyof typeof payloadPayload |
| 350 | ] as string; |
| 351 | } |
| 352 | |
| 353 | return configLabelKey in config |
| 354 | ? config[configLabelKey] |
| 355 | : config[key as keyof typeof config]; |
| 356 | } |
| 357 | |
| 358 | export { |
| 359 | ChartContainer, |