Rec-to-NWB YAML Creator    
- + {/* input type="file" onClick sets e.target.value to null, so the same file can be imported multiple times. See - https://stackoverflow.com/a/68480263/178550 @@ -974,8 +391,7 @@ useEffect(() => { type="file" id="importYAMLFile" accept=".yml, .yaml" - className="download-existing-file" - placeholder="Download a Yaml file to populate fields" + className="visually-hidden" onChange={(e) => importFile(e)} onClick={(e) => { // Reset file input to allow re-uploading the same file @@ -984,8 +400,7 @@ useEffect(() => { e.target.value = ''; } }} - > - + />
    @@ -1013,1779 +428,24 @@ useEffect(() => { }} >
-
- -
-
- onBlur(e)} - /> -
-
- itemSelected(e)} - /> -
-
-
- onBlur(e)} - /> + + + + + + + + + +
-
- onBlur(e)} - /> -
-
- onBlur(e)} - /> -
-
- -
-
-
- Subject -
- onBlur(e, { key: 'subject' })} - /> - itemSelected(e, { key: 'subject' })} - /> - itemSelected(e, { key: 'subject' })} - /> - itemSelected(e, { key: 'subject' })} - /> - onBlur(e, { key: 'subject' })} - /> - { - const { value, name, type } = e.target; - const date = !value ? '' : new Date(value).toISOString(); - const target = { - name, - value: date, - type, - }; - onBlur({ target }, { key: 'subject' }); - }} - /> - onBlur(e, { key: 'subject' })} - /> -
-
-
-
-
- Data Acq Device -
- {formData?.data_acq_device.map((dataAcqDevice, index) => { - const key = 'data_acq_device'; - - return ( -
- Item #{index + 1} - -
- - onBlur(e, { - key, - index, - }) - } - dataItems={dataAcqDeviceName()} - /> - - onBlur(e, { - key, - index, - }) - } - dataItems={dataAcqDeviceSystem()} - /> - - onBlur(e, { - key, - index, - }) - } - dataItems={dataAcqDeviceAmplifier()} - /> - - onBlur(e, { - key, - index, - }) - } - dataItems={dataAcqDeviceADCCircuit()} - /> -
-
- ); - })} -
- -
-
-
-
- Cameras -
- {formData?.cameras?.map((cameras, index) => { - const key = 'cameras'; - return ( -
- Item #{index + 1} - -
- - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - />{' '} - - onBlur(e, { - key, - index, - }) - } - /> -
-
- ); - })} -
- -
-
-
-
- Tasks -
- {formData.tasks.map((tasks, index) => { - const key = 'tasks'; - - return ( -
- Item #{index + 1} - -
- - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - -
-
- ); - })} -
- -
-
-
-
- Associated Files -
- {formData.associated_files.map( - (associatedFilesName, index) => { - const key = 'associated_files'; - - return ( -
- Item #{index + 1} - -
- - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - -
-
- ); - } - )} -
- -
-
-
-
- Associated Video Files -
- {formData?.associated_video_files?.map( - (associatedVideoFiles, index) => { - const key = 'associated_video_files'; - return ( -
- Item #{index + 1} - -
- - onBlur(e, { - key, - index, - }) - } - /> - - -
-
- ); - } - )} -
- -
-
-
-
- Units -
- onBlur(e, { key: 'units' })} - /> - onBlur(e, { key: 'units' })} - /> -
-
-
-
- onBlur(e)} - /> -
-
- onBlur(e)} - /> -
-
- onBlur(e)} - /> -
-
-
- Behavioral Events -
- {formData?.behavioral_events.map( - (behavioralEvents, index) => { - const key = 'behavioral_events'; - - return ( -
- Item #{index + 1} - -
- - - itemSelected(e, { - key, - index, - }) - } - /> -
-
- ); - } - )} -
- -
-
-
-
- Device -
- -
-
-
- + + -
-
- Opto Excitation Source -
- {formData.opto_excitation_source.map((item, index) => { - const key = 'opto_excitation_source'; - return ( -
- Source #{index + 1} - -
- - onBlur(e, { key, index }) - } - /> - {/* - onBlur(e, { key, index }) - } - /> */} - - itemSelected(e, { - key, - index, - }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> -
-
- ); - })} -
- -
-
- -
-
- Optical Fiber -
- {formData.optical_fiber.map((item, index) => { - const key = 'optical_fiber'; - return ( -
- Fiber Implant #{index + 1} - -
- - onBlur(e, { key, index }) - } - /> - - itemSelected(e, { - key, - index, - }) - } - /> - - onBlur(e, { key, index }) - } - /> - - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> -
-
- ); - })} -
- -
-
-
-
- Virus Injection -
- {formData.virus_injection.map((item, index) => { - const key = 'virus_injection'; - return ( -
- Injection #{index + 1} - -
- - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - itemSelected(e, { - key, - index, - }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - onBlur(e, { key, index }) - } - /> - - -
-
- ); - })} -
- -
-
-
-
- FS Gui Yamls -
- {formData.fs_gui_yamls.map((fsGuiYamls, index) => { - const key = 'fs_gui_yamls'; - return ( -
- Item #{index + 1} - -
- - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - - -
-

Check this box to enable advanced state script parameters for this item:

-
- - updateFormData( - e.target.name, - e.target.checked, - key, - index - ) - } - - /> - - {fsGuiYamls.state_script_parameters && ( - <> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - )} -
-
- ); - })} -
- -
-
-
- onBlur(e)} - /> -
-
-
- Electrode Groups -
- {formData?.electrode_groups?.map((electrodeGroup, index) => { - const electrodeGroupId = electrodeGroup.id; - const nTrodeItems = - formData?.ntrode_electrode_group_channel_map?.filter( - (n) => n.electrode_group_id === electrodeGroupId - ) || []; - const key = 'electrode_groups'; - - return ( -
- Item #{index + 1} - -
- - onBlur(e, { - key, - index, - }) - } - /> - - itemSelected(e, { - key, - index, - }) - } - /> - - nTrodeMapSelected(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - itemSelected(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - onBlur(e, { - key, - index, - }) - } - /> - - itemSelected(e, { - key, - index, - }) - } - /> -
0 ? '' : 'hide' - }`} - > - - onBlur(e, { - key: 'ntrode_electrode_group_channel_map', - name: 'map', - index, - }) - } - metaData={{ - index, - }} - onMapInput={onMapInput} - /> -
-
-
- ); - })} -
- -
-
+ +
-