import { SvgNmrExportAsMatrix } from 'cheminfo-font';
import { IoAnalytics } from 'react-icons/io5';
import { TbBrandGoogleAnalytics } from 'react-icons/tb';
import { TooltipHelpContent } from 'react-science/ui';
import { useChartData } from '../../context/ChartContext.js';
import { usePreferences } from '../../context/PreferencesContext.js';
import { usePanelPreferences } from '../../hooks/usePanelPreferences.js';
import { useToggleSpectraVisibility } from '../../hooks/useToggleSpectraVisibility.js';
import { booleanToString } from '../../utility/booleanToString.js';
import { exportAsMatrix } from '../../utility/export.js';
import DefaultPanelHeader from '../header/DefaultPanelHeader.js';
import { useHasSignalProcessingFilter } from './MatrixGenerationPanel.js';
interface MatrixGenerationPanelHeaderProps {
showStocsy: boolean;
showBoxPlot: boolean;
}
export function MatrixGenerationPanelHeader(
props: MatrixGenerationPanelHeaderProps,
) {
const { showStocsy, showBoxPlot } = props;
const {
data,
view: {
spectra: { activeTab },
},
} = useChartData();
const { dispatch: dispatchPreferences } = usePreferences();
const spectraPreferences = usePanelPreferences('spectra', activeTab);
const { getToggleVisibilityButtons } = useToggleSpectraVisibility({
enableHideSelected: false,
enableShowSelected: false,
enableShowSelectedOnly: false,
});
const signalProcessingFilterData = useHasSignalProcessingFilter();
function handleExportAsMatrix() {
exportAsMatrix(data, spectraPreferences?.columns || [], 'Spectra Matrix');
}
function handleToggleStocsy() {
dispatchPreferences({
type: 'TOGGLE_MATRIX_GENERATION_VIEW_PROPERTY',
payload: { key: 'showStocsy', nucleus: activeTab },
});
}
function handleToggleBoxplot() {
dispatchPreferences({
type: 'TOGGLE_MATRIX_GENERATION_VIEW_PROPERTY',
payload: { key: 'showBoxPlot', nucleus: activeTab },
});
}
return (
,
tooltip: ,
onClick: handleExportAsMatrix,
},
...getToggleVisibilityButtons(),
{
disabled: !signalProcessingFilterData,
icon: ,
tooltip: ,
onClick: handleToggleStocsy,
active: showStocsy,
},
{
disabled: !signalProcessingFilterData,
icon: ,
tooltip: ,
onClick: handleToggleBoxplot,
active: showBoxPlot,
},
]}
/>
);
}
function ExportAsMatrixTooltip() {
return (
);
}
interface StocsyTooltipProps {
showStocsy: boolean;
}
function StocsyTooltip({ showStocsy }: StocsyTooltipProps) {
return (
);
}
interface BoxPlotTooltipProps {
showBoxPlot: boolean;
}
function BoxPlotTooltip({ showBoxPlot }: BoxPlotTooltipProps) {
return (
);
}