import { assertGroup, assertMinDims } from '@h5web/shared'; import DimensionMapper from '../../../dimension-mapper/DimensionMapper'; import { useDimMappingState } from '../../../dimension-mapper/hooks'; import VisBoundary from '../../VisBoundary'; import MappedComplexVis from '../../core/complex/MappedComplexVis'; import { useComplexConfig } from '../../core/complex/config'; 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 { assertComplexSignal, getBestLayout } from '../utils'; function NxComplexImageContainer(props: VisContainerProps) { const { entity, toolbarContainer } = props; assertGroup(entity); const nxData = useNxData(entity); assertComplexSignal(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 = useComplexConfig(); const heatmapConfig = 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} heatmapConfig={heatmapConfig} /> ); }} /> ); } export default NxComplexImageContainer;