import { assertGroup, assertMinDims } from '@h5web/shared'; import DimensionMapper from '../../../dimension-mapper/DimensionMapper'; import { useDimMappingState } from '../../../dimension-mapper/hooks'; import VisBoundary from '../../VisBoundary'; import MappedHeatmapVis from '../../core/heatmap/MappedHeatmapVis'; import { useHeatmapConfig } from '../../core/heatmap/config'; import { getSliceSelection } from '../../core/utils'; import type { VisContainerProps } from '../../models'; import NxValuesFetcher from '../NxValuesFetcher'; import { useNxData } from '../hooks'; import { assertNumericSignal, getBestLayout } from '../utils'; function NxImageContainer(props: VisContainerProps) { const { entity, toolbarContainer } = props; assertGroup(entity); const nxData = useNxData(entity); assertNumericSignal(nxData); const { signalDef, axisDefs, silxStyle } = nxData; assertMinDims(signalDef.dataset, 2); const { shape: dims } = signalDef.dataset; const [dimMapping, setDimMapping] = useDimMappingState(dims, 2); const xAxisDef = axisDefs[dimMapping.indexOf('x')]; const yAxisDef = axisDefs[dimMapping.indexOf('y')]; const config = useHeatmapConfig({ scaleType: silxStyle.signalScaleType, layout: getBestLayout(xAxisDef, yAxisDef), }); return ( <> { const { signal, axisValues, title } = nxValues; return ( def?.label)} axisValues={axisValues} title={title} toolbarContainer={toolbarContainer} config={config} /> ); }} /> ); } export default NxImageContainer;