1// SPDX-License-Identifier: GPL-2.0-only
2// Copyright (c) 2025-present FERS Contributors (see AUTHORS.md).
11} from '@mui/material';
12import { useScenarioStore, Waveform } from '@/stores/scenarioStore';
13import { NumberField, FileInput } from './InspectorControls';
15interface WaveformInspectorProps {
19export function WaveformInspector({ item }: WaveformInspectorProps) {
20 const { updateItem } = useScenarioStore.getState();
21 const handleChange = (path: string, value: unknown) =>
22 updateItem(item.id, path, value);
25 <Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
32 onChange={(e) => handleChange('name', e.target.value)}
34 <FormControl fullWidth size="small">
35 <InputLabel>Type</InputLabel>
38 value={item.waveformType}
40 handleChange('waveformType', e.target.value)
43 <MenuItem value="pulsed_from_file">Pulse File</MenuItem>
44 <MenuItem value="cw">CW</MenuItem>
50 onChange={(v) => handleChange('power', v)}
53 label="Carrier Frequency (Hz)"
54 value={item.carrier_frequency}
55 onChange={(v) => handleChange('carrier_frequency', v)}
57 {item.waveformType === 'pulsed_from_file' && (
59 label="Waveform File (.csv, .h5)"
61 onChange={(v) => handleChange('filename', v)}
63 { name: 'Waveform', extensions: ['csv', 'h5'] },
64 { name: 'All Files', extensions: ['*'] },