{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\gavt\\\\GavtForm.tsx\",\n  _s = $RefreshSig$();\n// GavtForm.tsx\nimport React, { useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport getResFreq from './getResFreq';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst phonemeToWordMap = {\n  '/i/': 'seed',\n  '/ɪ/': 'hid',\n  '/e/': 'made',\n  '/ɛ/': 'head',\n  '/æ/': 'sad',\n  '/ɑ/': 'god',\n  '/ɔ/': 'lawn',\n  '/ʌ/': 'bud',\n  '/o/': 'showed',\n  '/u/': 'spoon',\n  '/ʊ/': 'good'\n};\nconst vowels = ['/i/', '/ɪ/', '/e/', '/ɛ/', '/æ/', '/ɑ/', '/ɔ/', '/ʌ/', '/o/', '/u/', '/ʊ/'];\nconst genders = ['man', 'woman'];\nconst regions = ['Mid_Atlantic'];\nconst GavtForm = () => {\n  _s();\n  const [selectedVowels, setSelectedVowels] = useState([]);\n  const [selectedGender, setSelectedGender] = useState('man');\n  const [selectedRegion, setSelectedRegion] = useState('Mid_Atlantic');\n  const [shuffleOrder, setShuffleOrder] = useState(false);\n  const navigate = useNavigate();\n  const handleVowelSelect = word => {\n    if (selectedVowels.includes(word)) {\n      setSelectedVowels(selectedVowels.filter(v => v !== word));\n    } else {\n      setSelectedVowels([...selectedVowels, word]);\n    }\n  };\n  const handleGenderSelect = gender => {\n    setSelectedGender(gender);\n  };\n  const handleRegionSelect = region => {\n    setSelectedRegion(region);\n  };\n  const handleShuffleOrderToggle = () => {\n    setShuffleOrder(!shuffleOrder);\n  };\n  const handleStartClick = async () => {\n    try {\n      const frequencies = await getResFreq(selectedVowels, selectedGender, selectedRegion, shuffleOrder);\n      if (Object.keys(frequencies).length > 0) {\n        console.log(frequencies);\n      } else {\n        console.log('No resonance frequencies found.');\n      }\n      navigate('/gavt/practice');\n    } catch (error) {\n      console.error('Error fetching resonance frequencies:', error);\n    }\n  };\n  const renderVowelCheckbox = phoneme => {\n    const word = phonemeToWordMap[phoneme];\n    return /*#__PURE__*/_jsxDEV(\"label\", {\n      children: [/*#__PURE__*/_jsxDEV(\"input\", {\n        type: \"checkbox\",\n        checked: selectedVowels.includes(word),\n        onChange: () => handleVowelSelect(word)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 88,\n        columnNumber: 9\n      }, this), phoneme]\n    }, phoneme, true, {\n      fileName: _jsxFileName,\n      lineNumber: 87,\n      columnNumber: 7\n    }, this);\n  };\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n      children: \"Select Options\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 100,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        children: \"Select Vowels\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 102,\n        columnNumber: 9\n      }, this), vowels.map(renderVowelCheckbox)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 101,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        children: \"Select Gender\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 106,\n        columnNumber: 9\n      }, this), genders.map(gender => /*#__PURE__*/_jsxDEV(\"label\", {\n        children: [/*#__PURE__*/_jsxDEV(\"input\", {\n          type: \"radio\",\n          name: \"gender\",\n          value: gender,\n          checked: selectedGender === gender,\n          onChange: () => handleGenderSelect(gender)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 109,\n          columnNumber: 13\n        }, this), gender]\n      }, gender, true, {\n        fileName: _jsxFileName,\n        lineNumber: 108,\n        columnNumber: 11\n      }, this))]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 105,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        children: \"Select Region\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 115,\n        columnNumber: 9\n      }, this), regions.map(region => /*#__PURE__*/_jsxDEV(\"label\", {\n        children: [/*#__PURE__*/_jsxDEV(\"input\", {\n          type: \"radio\",\n          name: \"region\",\n          value: region,\n          checked: selectedRegion === region,\n          onChange: () => handleRegionSelect(region)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 118,\n          columnNumber: 13\n        }, this), region]\n      }, region, true, {\n        fileName: _jsxFileName,\n        lineNumber: 117,\n        columnNumber: 11\n      }, this))]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 114,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        children: \"Shuffle Order\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 124,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n        children: [/*#__PURE__*/_jsxDEV(\"input\", {\n          type: \"checkbox\",\n          checked: shuffleOrder,\n          onChange: handleShuffleOrderToggle\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 126,\n          columnNumber: 11\n        }, this), \"Shuffle Vowels\"]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 125,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 123,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n      onClick: handleStartClick,\n      disabled: selectedVowels.length === 0,\n      children: \"Start\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 130,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 99,\n    columnNumber: 5\n  }, this);\n};\n_s(GavtForm, \"9fzgagytTZLf6hLvjvNReBUaflg=\", false, function () {\n  return [useNavigate];\n});\n_c = GavtForm;\nexport default GavtForm;\nvar _c;\n$RefreshReg$(_c, \"GavtForm\");","map":{"version":3,"names":["React","useState","useNavigate","getResFreq","jsxDEV","_jsxDEV","phonemeToWordMap","vowels","genders","regions","GavtForm","_s","selectedVowels","setSelectedVowels","selectedGender","setSelectedGender","selectedRegion","setSelectedRegion","shuffleOrder","setShuffleOrder","navigate","handleVowelSelect","word","includes","filter","v","handleGenderSelect","gender","handleRegionSelect","region","handleShuffleOrderToggle","handleStartClick","frequencies","Object","keys","length","console","log","error","renderVowelCheckbox","phoneme","children","type","checked","onChange","fileName","_jsxFileName","lineNumber","columnNumber","map","name","value","onClick","disabled","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/gavt/GavtForm.tsx"],"sourcesContent":["// GavtForm.tsx\r\nimport React, { useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport getResFreq from './getResFreq';\r\n\r\ninterface PhonemeMap {\r\n    [key: string]: string;\r\n    '/i/': string;\r\n    '/ɪ/': string;\r\n    '/e/': string;\r\n    '/ɛ/': string;\r\n    '/æ/': string;\r\n    '/ɑ/': string;\r\n    '/ɔ/': string;\r\n    '/ʌ/': string;\r\n    '/o/': string;\r\n    '/u/': string;\r\n    '/ʊ/': string;\r\n  }\r\n\r\nconst phonemeToWordMap: PhonemeMap ={\r\n    '/i/' : 'seed',\r\n    '/ɪ/' : 'hid',\r\n    '/e/' : 'made',\r\n    '/ɛ/' : 'head',\r\n    '/æ/' : 'sad',\r\n    '/ɑ/' : 'god',\r\n    '/ɔ/' : 'lawn',\r\n    '/ʌ/' : 'bud',\r\n    '/o/' : 'showed',\r\n    '/u/' : 'spoon',\r\n    '/ʊ/' : 'good'\r\n}\r\n\r\n\r\nconst vowels = ['/i/', '/ɪ/', '/e/', '/ɛ/', '/æ/', '/ɑ/', '/ɔ/', '/ʌ/', '/o/', '/u/', '/ʊ/'];\r\nconst genders = ['man', 'woman'];\r\nconst regions = ['Mid_Atlantic']; \r\n\r\nconst GavtForm: React.FC = () => {\r\n  const [selectedVowels, setSelectedVowels] = useState<string[]>([]);\r\n  const [selectedGender, setSelectedGender] = useState<'man' | 'woman'>('man');\r\n  const [selectedRegion, setSelectedRegion] = useState<string>('Mid_Atlantic');\r\n  const [shuffleOrder, setShuffleOrder] = useState<boolean>(false);\r\n\r\n  const navigate = useNavigate();\r\n\r\n  const handleVowelSelect = (word: string) => {\r\n    if (selectedVowels.includes(word)) {\r\n      setSelectedVowels(selectedVowels.filter((v) => v !== word));\r\n    } else {\r\n      setSelectedVowels([...selectedVowels, word]);\r\n    }\r\n  };\r\n\r\n  const handleGenderSelect = (gender: string) => {\r\n    setSelectedGender(gender as 'man' | 'woman');\r\n  };\r\n\r\n  const handleRegionSelect = (region: string) => {\r\n    setSelectedRegion(region);\r\n  };\r\n\r\n  const handleShuffleOrderToggle = () => {\r\n    setShuffleOrder(!shuffleOrder);\r\n  };\r\n\r\n  const handleStartClick = async () => {\r\n    try {\r\n      const frequencies = await getResFreq(selectedVowels, selectedGender, selectedRegion, shuffleOrder);\r\n      \r\n      if (Object.keys(frequencies).length > 0) {\r\n        console.log(frequencies);\r\n      } else {\r\n        console.log('No resonance frequencies found.');\r\n      }\r\n      navigate('/gavt/practice');\r\n    } catch (error) {\r\n      console.error('Error fetching resonance frequencies:', error);\r\n    }\r\n  };\r\n\r\n  const renderVowelCheckbox = (phoneme: string) => {\r\n    const word = phonemeToWordMap[phoneme];\r\n    return (\r\n      <label key={phoneme}>\r\n        <input \r\n          type=\"checkbox\" \r\n          checked={selectedVowels.includes(word)}\r\n          onChange={() => handleVowelSelect(word)}\r\n        />\r\n        {phoneme}\r\n      </label>\r\n    );\r\n  };\r\n\r\n  return (\r\n    <div>\r\n      <h2>Select Options</h2>\r\n      <div>\r\n        <h3>Select Vowels</h3>\r\n        {vowels.map(renderVowelCheckbox)}\r\n      </div>\r\n      <div>\r\n        <h3>Select Gender</h3>\r\n        {genders.map((gender) => (\r\n          <label key={gender}>\r\n            <input type=\"radio\" name=\"gender\" value={gender} checked={selectedGender === gender} onChange={() => handleGenderSelect(gender as 'man' | 'woman')} />\r\n            {gender}\r\n          </label>\r\n        ))}\r\n      </div>\r\n      <div>\r\n        <h3>Select Region</h3>\r\n        {regions.map((region) => (\r\n          <label key={region}>\r\n            <input type=\"radio\" name=\"region\" value={region} checked={selectedRegion === region} onChange={() => handleRegionSelect(region)} />\r\n            {region}\r\n          </label>\r\n        ))}\r\n      </div>\r\n      <div>\r\n        <h3>Shuffle Order</h3>\r\n        <label>\r\n          <input type=\"checkbox\" checked={shuffleOrder} onChange={handleShuffleOrderToggle} />\r\n          Shuffle Vowels\r\n        </label>\r\n      </div>\r\n      <button onClick={handleStartClick} disabled={selectedVowels.length === 0}>Start</button>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default GavtForm;\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}