import Pan from '../interactions/Pan'; import type { PanProps } from '../interactions/Pan'; import SelectToZoom from '../interactions/SelectToZoom'; import type { SelectToZoomProps } from '../interactions/SelectToZoom'; import XAxisZoom from '../interactions/XAxisZoom'; import type { XAxisZoomProps } from '../interactions/XAxisZoom'; import YAxisZoom from '../interactions/YAxisZoom'; import type { YAxisZoomProps } from '../interactions/YAxisZoom'; import Zoom from '../interactions/Zoom'; import type { ZoomProps } from '../interactions/Zoom'; import AxialSelectToZoom from './AxialSelectToZoom'; import type { AxialSelectToZoomProps } from './AxialSelectToZoom'; export interface DefaultInteractionsConfig { pan?: PanProps | false; zoom?: ZoomProps | false; xAxisZoom?: XAxisZoomProps | false; yAxisZoom?: YAxisZoomProps | false; selectToZoom?: Omit | false; xSelectToZoom?: Omit | false; ySelectToZoom?: Omit | false; } interface Props extends DefaultInteractionsConfig { keepRatio?: boolean; } function DefaultInteractions(props: Props) { const { keepRatio, ...interactions } = props; return ( <> {interactions.pan !== false && } {interactions.zoom !== false && } {interactions.xAxisZoom !== false && ( )} {interactions.yAxisZoom !== false && ( )} {interactions.selectToZoom !== false && ( )} {interactions.xSelectToZoom !== false && ( )} {interactions.ySelectToZoom !== false && ( )} ); } export type { Props as DefaultInteractionsProps }; export default DefaultInteractions;