@mui/x-charts
Version:
The community edition of the Charts components (MUI X).
31 lines (30 loc) • 1.8 kB
JavaScript
import * as React from 'react';
import { defaultPlugins } from './defaultPlugins';
export function usePluginsMerge(plugins) {
const defaultizedPlugins = plugins ?? defaultPlugins;
return React.useMemo(() => {
const seriesFormatters = {};
const colorProcessors = {};
const xExtremumGetters = {};
const yExtremumGetters = {};
for (let i = 0; i < defaultizedPlugins.length; i += 1) {
const plugin = defaultizedPlugins[i];
// To remove those any we will need to solve this union discrimination issue:
// https://www.typescriptlang.org/play/?#code/FDAuE8AcFMAIDkCuBbARtATgYQPYDsAzASwHNYBeWAb2FlgGsi8ATALlgHI8V0MOBuWrBwwMAQ1A4M7ABQAPdtzSYAlBQB8sJb0EBfEBBiwAyqAxMSuQqQrUhjFuw4BnMxYFCRmCVNkLYruZ4JGrkmoEWeiAAxviuWqhWxCTsSMrY+Mm2VAxMbLAARNqYBQA0wqI+0rByGrAATLAAVDWw+rF48YFJpOymQZaZNpQ5DvkFEcFlFd6S1bVhsAAG9S0AJFRyukttMXGgsB3JzrYA2niJQyTl3VcAugZQcADylXPOALJikJAW2ULFDAAflSPEwPRIpw4XnEcw4d1KQkmJBBJjcwQhUJhVXhiN0gmAHXi2LmXx+FnYr1mUk+31+wWy+JABCksBkABtoAcjjYcARDldnGoaCA6AB6MWwADqUnoJxw9FgRH5AHc4L9ooroGJogALQ5iZxwPJEABuRGYiDE7PASJVRFAerZPJIADoxsKhHRooa4FwwXxWF66DNYVIyfTIS73Xk7rZoySpIIQyHUBhtfRkyGfUbOMiOEGU3RExgIxZTtGxnHKAm3kng8xoAQxIh2aBC0W0xms-pvftqLkWOUS2141chBLYABJDimuB4HBKxtiWBiVA4RAHXU4FWwSSwTkHAAqxlgiBYmFcYhYAusbrGq5vtepGFX6YPTHo0GYnjrpbp5ZVrYJZ6EAA
seriesFormatters[plugin.seriesType] = plugin.seriesFormatter;
colorProcessors[plugin.seriesType] = plugin.colorProcessor;
if (plugin.xExtremumGetter) {
xExtremumGetters[plugin.seriesType] = plugin.xExtremumGetter;
}
if (plugin.yExtremumGetter) {
yExtremumGetters[plugin.seriesType] = plugin.yExtremumGetter;
}
}
return {
seriesFormatters,
colorProcessors,
xExtremumGetters,
yExtremumGetters
};
}, [defaultizedPlugins]);
}