{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\Route\\\\Sample.tsx\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect, useRef } from 'react';\nimport { Button, Flex } from 'antd';\nimport { SettingOutlined, CustomerServiceOutlined } from '@ant-design/icons';\nimport { Col, Row, Tour, ConfigProvider } from 'antd';\nimport { CaretRightOutlined } from '@ant-design/icons';\nimport { Slider, Input } from 'antd';\nimport { Layout, Dropdown } from 'antd';\nimport { Drawer, Radio } from 'antd';\nimport { RedoOutlined, PauseOutlined, StepForwardOutlined, StepBackwardOutlined } from '@ant-design/icons';\nimport { Tooltip, FloatButton, Space, Switch } from 'antd';\nimport '../CSS/sample.css';\nimport ConstantTxt from '../Canvas/ConstantTxt';\nimport Fixed from '../Canvas/Fixed';\nimport Stair from '../Canvas/Stair';\nimport Heteronym from '../Canvas/Heteronym';\nimport { UploadOutlined } from '@ant-design/icons';\nimport { message, Upload } from 'antd';\nimport hark from 'hark';\nimport { useLocation } from 'react-router-dom';\nimport { Typography } from 'antd';\nimport { Collapse } from 'antd';\nimport { Image } from 'antd';\nimport divide_1 from '../icon/Divider2-half.png';\nimport { QuestionOutlined } from '@ant-design/icons';\nimport { useTemString } from '../hooks/useTemString';\n// @ts-ignore\nimport pdfToText from 'react-pdftotext';\nimport AudioPlayer from 'react-h5-audio-player';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst {\n  TextArea\n} = Input;\nconst {\n  Title,\n  Paragraph,\n  Text,\n  Link\n} = Typography;\n// const fontSizePara = 17;\n// const fontAlign = \"justify\";\n// const paragraphStyle:React.CSSProperties = {\n//   textAlign: fontAlign,  \n//   fontSize: fontSizePara,\n//   fontFamily: \"'Roboto', 'sans-serif'\",\n// };\n\nconst {\n  Content\n} = Layout;\nconst marksRange = {\n  50: '50Hz',\n  600: '600Hz'\n};\nconst marksBallPos = {\n  0: '0%',\n  1: '100%'\n};\nconst marksVol = {\n  50: '50dB',\n  90: '90dB'\n};\nconst itemsMenu = [{\n  label: 'Profile',\n  key: 'Profile'\n}, {\n  label: 'Settings',\n  key: 'Settings'\n}, {\n  label: 'Other',\n  key: 'Other'\n}];\nconst Sample = ({\n  genderName,\n  gender,\n  setGender\n}) => {\n  _s();\n  // strings\n  const {\n    items_3,\n    stairFilenames,\n    heteronymFilenames,\n    shortDescription\n  } = useTemString();\n\n  // Canvas values\n  const size = [400, 1400];\n  const [initialRange, setInitialRange] = useState([100, 300]);\n  const [config, setConfig] = useState({\n    SRATE: 48000,\n    fxmin: 50,\n    fxlow: 50 + 50,\n    // This initial value will be updated by useEffect below\n    fxhigh: 600 - 200,\n    // This initial value will be updated by useEffect below\n    fxmax: 600\n  });\n  const COLORS = {\n    realVoiceColor: '#d679de',\n    // red\n    targetVoiceColor: '#4669C8',\n    // blue\n    closeVoiceColor: '#15dbcc' // yellow\n  };\n\n  // open/close \n  const [openSetting, setOpenSetting] = useState(false);\n  const [txtShow, setTxtShow] = useState(\"true\");\n  const [txtShowSwitch, setTxtShowSwitch] = useState('show');\n  const [openTour, setOpenTour] = useState(false);\n  const [isPlaying, setIsPlaying] = useState(true);\n  const [isRetry, setIsRetry] = useState(false);\n  const [enableVol, setEnableVol] = useState(false);\n  const [isOpenTextbox, setIsOpenTextbox] = useState(false);\n  const [showNextPre, setShowNextPre] = useState(false);\n  const [showListen, setShowListen] = useState(false);\n\n  // special vatiables\n  const location = useLocation();\n  const ref1 = useRef(null);\n  const ref2 = useRef(null);\n  const ref3 = useRef(null);\n  const parentRef = useRef(null);\n\n  // initial Value\n  const [volume, setVolume] = useState(0);\n  const [threshold, setThreshold] = useState(70);\n  const [maxLyricCount, setMaxLyricCount] = useState(2);\n  const [playLyricCount, setPlayLyricCount] = useState(0);\n  const [divisor, setDivisor] = useState(10);\n  const [ballPosition, setBallPosition] = useState(0.5);\n\n  // Hz/Notes\n  const [showNotesPar, setShowNotesPar] = useState(false);\n\n  // selected choice\n  const [component, setComponent] = useState(\"ConstantTxt\");\n  const [currentSelection, setCurrentSelection] = useState('Constant');\n  // const [gender, setGender] = useState<string>(\"Female\");\n  // const [genderName, setGenderName] = useState<string>(\"Fem01\");\n  const [syllableCount, setSyllableCount] = useState(\"none\");\n  const [baseFilenames, setBaseFilenames] = useState([]);\n  const [fileContent, setFileContent] = useState([]);\n  const [selectedNum, setSelectedNum] = useState([\"2\"]);\n\n  // auido\n  const audioPlayer = useRef(null);\n  const audioPlayerNew = useRef(null);\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState('');\n  const [isListen, setIsListen] = useState(1);\n\n  // profile (Need to rebuild)\n  const [selectedItem, setSelectedItem] = useState('Settings');\n\n  // \n  const setPlaying = () => {\n    setIsPlaying(true);\n  };\n  const setPlayingPause = () => {\n    setIsPlaying(false);\n  };\n  const handleBeginTour = () => {\n    setOpenTour(true);\n  };\n  const onClickMenu = e => {\n    setSelectedItem(e.key);\n  };\n  const onClose = () => {\n    setOpenSetting(false);\n  };\n  const ClearTxt = () => {\n    setFileContent([]);\n    setMaxLyricCount(1);\n  };\n  // render profile page\n  const renderContent = () => {\n    switch (selectedItem) {\n      case 'Profile':\n        return /*#__PURE__*/_jsxDEV(\"p\", {\n          children: \"profile\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 190,\n          columnNumber: 16\n        }, this);\n      case 'Settings':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          children: /*#__PURE__*/_jsxDEV(Flex, {\n            vertical: true,\n            gap: \"middle\",\n            children: [/*#__PURE__*/_jsxDEV(Space, {\n              children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                children: \"# Coordinate Display Mode\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 195,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(Radio.Group, {\n                onChange: onChangeHz,\n                defaultValue: \"notes\",\n                buttonStyle: \"solid\",\n                children: [/*#__PURE__*/_jsxDEV(Radio.Button, {\n                  value: \"hz\",\n                  children: \" Hz \"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 197,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                  value: \"notes\",\n                  children: \"Notes\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 198,\n                  columnNumber: 17\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 196,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 200,\n                columnNumber: 15\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 194,\n              columnNumber: 13\n            }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                children: \"# Pitch Display Range\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 204,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                range: true,\n                step: 10,\n                min: 50,\n                max: 600,\n                onChange: onChangeRange,\n                tooltip: {\n                  formatter: formatterHz\n                },\n                marks: marksRange,\n                defaultValue: [100, 300]\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 205,\n                columnNumber: 15\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 203,\n              columnNumber: 13\n            }, this), component !== \"Fixed\" && component !== \"Stair\" && /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                children: \"# Pitch Indicator Horizontal Position\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 221,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                step: 0.1,\n                min: 0,\n                max: 1,\n                onChange: onChangePosition,\n                tooltip: {\n                  formatter: formatterPos\n                },\n                defaultValue: 0.5,\n                marks: marksBallPos\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 222,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 220,\n              columnNumber: 15\n            }, this), component !== \"Fixed\" && component !== \"Stair\" && component !== \"Heteronym\" && /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                children: \"# Pitch Indicator Horizontal Position\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 238,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                step: 0.1,\n                min: 0,\n                max: 1,\n                onChange: onChangePosition,\n                tooltip: {\n                  formatter: formatterPos\n                },\n                defaultValue: 0.5,\n                marks: marksBallPos\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 239,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 237,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                children: \"# Pitch Indicator Speed\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 254,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                step: 0.05,\n                min: 0,\n                max: 1,\n                onChange: onChangeSpeed,\n                defaultValue: 0.3,\n                tooltip: {\n                  formatter: null\n                }\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 255,\n                columnNumber: 15\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 253,\n              columnNumber: 13\n            }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [/*#__PURE__*/_jsxDEV(Space, {\n                children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                  children: \"# Auto-Start When Voice Detected\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 267,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(Switch, {\n                  defaultChecked: false,\n                  onChange: EnableVoluneMode\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 268,\n                  columnNumber: 17\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 266,\n                columnNumber: 15\n              }, this), enableVol && /*#__PURE__*/_jsxDEV(Slider, {\n                step: 1,\n                min: 50,\n                max: 90,\n                onChange: onChangeThreshold,\n                tooltip: {\n                  formatter: formatterdB\n                },\n                defaultValue: 70,\n                marks: marksVol\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 272,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 265,\n              columnNumber: 13\n            }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 287,\n              columnNumber: 13\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: onClose,\n              children: \"Close\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 288,\n              columnNumber: 13\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 193,\n            columnNumber: 11\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 192,\n          columnNumber: 17\n        }, this);\n      case 'Other':\n        return /*#__PURE__*/_jsxDEV(\"p\", {\n          children: \"other\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 293,\n          columnNumber: 16\n        }, this);\n      default:\n        return null;\n    }\n  };\n\n  // Constant Page upload and input\n  const handleTextInput = e => {\n    const content = e.target.value;\n    const separators = /[;,./\\n]/;\n    const splitContent = content.split(separators).map(s => s.trim()).filter(Boolean);\n    console.log(splitContent);\n    setFileContent(splitContent);\n    setMaxLyricCount(splitContent.length - 1);\n    setPlayLyricCount(0);\n  };\n  const props = {\n    name: 'file',\n    accept: '.txt, .pdf',\n    beforeUpload: file => {\n      if (file.type !== 'text/plain' && file.type !== 'application/pdf') {\n        message.error(`${file.name} is not a valid text/pdf file.`);\n        return false;\n      }\n      if (file.type === 'application/pdf') {\n        pdfToText(file).then(text => {\n          const separators = /[;,./\\n]/;\n          const splitContent = text.split(separators).map(s => s.trim()).filter(Boolean);\n          console.log(splitContent);\n          setFileContent(splitContent);\n          setMaxLyricCount(splitContent.length - 1);\n          setPlayLyricCount(0);\n        }).catch(error => {\n          // Explicitly specify the type of 'error' parameter as 'any'\n          message.error('Error reading PDF file:', error);\n        });\n        return false;\n      }\n      if (file.type === 'text/plain') {\n        const reader = new FileReader();\n        reader.onload = e => {\n          var _e$target;\n          if ((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.result) {\n            const content = e.target.result;\n            // const separators = /[;,./]/;\n            const separators = /[;,./\\n]/;\n            const splitContent = content.split(separators).map(s => s.trim()).filter(Boolean);\n            console.log(splitContent);\n            setFileContent(splitContent);\n            setMaxLyricCount(splitContent.length - 1);\n            setPlayLyricCount(0);\n          }\n        };\n        reader.readAsText(file);\n        return false;\n      }\n    },\n    onChange(info) {\n      if (info.file.status === 'done') {\n        message.success(`${info.file.name} file read successfully`);\n      } else if (info.file.status === 'error') {\n        message.error(`${info.file.name} file read failed.`);\n      }\n    }\n  };\n  const changeOnEnter = e => {\n    if (e.key === 'Enter' && !e.shiftKey) {\n      console.log(\"Enter Key Pressed!\");\n      handleTextInput(e);\n    }\n  };\n\n  // audio\n  const handleAudioSrc = newAudioSrc => {\n    setAudioSrcFromChild(newAudioSrc);\n  };\n  const playAudio = () => {\n    // if (audioPlayer.current && audioPlayer.current.audioEl.current) {\n    // audioPlayer.current.audioEl.current.play()\n    if (audioPlayerNew.current && audioPlayerNew.current.audio.current) {\n      audioPlayerNew.current.audio.current.play().then(() => {\n        setIsListen(isListen + 1);\n      }).catch(error => {\n        console.error('Fail play audios: ', error);\n      });\n    }\n  };\n\n  // Volume\n  useEffect(() => {\n    navigator.mediaDevices.getUserMedia({\n      audio: true,\n      video: false\n    }).then(stream => {\n      const harkInstance = hark(stream, {});\n      harkInstance.on('volume_change', (volume, threshold) => {\n        setVolume(volume);\n      });\n      return () => harkInstance.stop();\n    }).catch(error => {\n      console.error('Error accessing the microphone', error);\n    });\n  }, []);\n  useEffect(() => {\n    if (volume > threshold - 100 && enableVol) {\n      setIsPlaying(true);\n    }\n  }, [volume]);\n\n  // Tour\n  const steps = [{\n    title: 'Canvas Display',\n    description: 'Visualize your voice pitch and target pitch curve in real-time.',\n    placement: 'top',\n    target: () => ref1.current\n  }, {\n    title: 'Function Buttons',\n    cover: /*#__PURE__*/_jsxDEV(\"ul\", {\n      style: {\n        textAlign: 'left'\n      },\n      children: [/*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Start/Stop: Begin or stop recording.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 427,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Retry: Clear display and restart.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 428,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Upload txt/pdf File (optional): Upload text or pdf for you (in .txt/.pdf format) to read while recording.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 429,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Previous Next (if text uploaded): Switch between lines of text.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 430,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 426,\n      columnNumber: 9\n    }, this),\n    target: () => ref2.current\n  }, {\n    title: 'Slider',\n    description: 'Use this slides to change the target pitch value that you want to aim for.',\n    target: () => parentRef.current\n  }, {\n    title: 'Options menu',\n    description: 'Switch between different exercises and adjust settings such as the pitch display range.',\n    target: () => ref3.current\n  }];\n  useEffect(() => {\n    const queryParams = new URLSearchParams(location.search);\n    const init = queryParams.get('init');\n    if (init === 'true') {\n      handleBeginTour();\n    }\n  }, [location]);\n\n  // Options of different Exercise \n  const handleStairAndConstantClick = e => {\n    setPlayLyricCount(0);\n    setCurrentSelection(e.target.innerText);\n    console.log(e.target.innerText);\n    if (e.target.innerText === \"Constant\" || e.target.innerText === \"CONSTANT\") {\n      setComponent(\"ConstantTxt\");\n      setSelectedNum([\"2\"]);\n    } else if (e.target.innerText === \"Stair\" || e.target.innerText === \"STAIR\") {\n      setComponent(\"Stair\");\n      setSelectedNum([\"3\"]);\n    } else {\n      setComponent(\"Heteronym\");\n      setSelectedNum([\"4\"]);\n    }\n    setSyllableCount(\"none\");\n  };\n  // const saveGender = (e: any) => {\n  //   const [genderType, genderNameType] = e.key.split('-');\n  //   setGender(genderType);\n  //   setGenderName(genderNameType);\n  //   console.log(genderType);\n  //   console.log('genderName', genderName)\n  // }\n  const handleMenuClick = e => {\n    setPlayLyricCount(0);\n    const [componentType, genderType, syllableCountType] = e.key.split('-');\n    if (componentType == \"Constant\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"ConstantTxt\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"Stair\") {\n      setCurrentSelection(\"Staircase\");\n    } else {\n      let tt = \"Syllables \" + syllableCountType;\n      setCurrentSelection(tt);\n      setSelectedNum([\"5\"]);\n    }\n    setComponent(componentType);\n    setGender(genderType);\n    setSyllableCount(syllableCountType);\n    setCurrentSelection(e.key + \"syllable \" + genderName);\n  };\n  const renderTruncatedFilenames = filenames => {\n    return filenames.map((text, index) => {\n      const isNearEnd = filenames.length - playLyricCount <= 2;\n      const startIndex = isNearEnd ? filenames.length - 3 : playLyricCount;\n      const showCondition = index >= startIndex && index <= startIndex + 2;\n      return showCondition && /*#__PURE__*/_jsxDEV(\"li\", {\n        className: playLyricCount === index ? 'highlighted' : '',\n        children: text\n      }, index, false, {\n        fileName: _jsxFileName,\n        lineNumber: 510,\n        columnNumber: 11\n      }, this);\n    });\n  };\n  const handlePlayLyricCountChange = newCount => {\n    setPlayLyricCount(newCount);\n  };\n  // const itemsMale: MenuProps['items'] = [\n  //   {\n  //     key: 'male',\n  //     label: \"Male01\",\n  //     onClick: saveGender,\n  //   },\n  // ];\n  // const itemsFemale: MenuProps['items'] = [\n  //   {\n  //     key: 'Female-Fem01',\n  //     label: \"Fem01\",\n  //     onClick: saveGender,\n  //   },\n  //   {\n  //     key: 'Female-Fem02',\n  //     label: \"Fem02\",\n  //     onClick: saveGender,\n  //   },\n  //   {\n  //     key: 'Female-Fem03',\n  //     label: \"Fem03\",\n  //     onClick: saveGender,\n  //   },\n  //   {\n  //     key: 'Female-Fem04',\n  //     label: \"Fem04\",\n  //     onClick: saveGender,\n  //   },\n  //   {\n  //     key: 'Female-Fem05',\n  //     label: \"Fem05\",\n  //     onClick: saveGender,\n  //   },\n  //   {\n  //     key: 'Female-Fem06',\n  //     label: \"Fem06\",\n  //     onClick: saveGender,\n  //   },\n  //   {\n  //     key: 'Female-Fem07',\n  //     label: \"Fem07\",\n  //     onClick: saveGender,\n  //   },\n  // ];\n  // const itemsAvatar: MenuProps['items'] = [\n  //   {\n  //     key: '1',\n  //     label: 'Male',\n  //     children: [\n  //       ...itemsMale\n  //     ],\n  //   },\n  //   {\n  //     key: '2',\n  //     label: 'Female',\n  //     children: [\n  //       ...itemsFemale\n  //     ],\n  //   },\n  // ];\n\n  /**\r\n  * Defines the items for the syllable menu based on the gender.\r\n  * If the gender is 'none', it only includes a single item prompting the user to select an avatar.\r\n  * Otherwise, it includes multiple items representing the number of syllables, with corresponding click handlers.\r\n  */\n  const itemsSyllable = gender === 'none' ? [{\n    key: 'SelectAvatar',\n    label: 'Please select avatar'\n  }] : [{\n    key: `Fixed-${gender}-2`,\n    label: \"2 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-3`,\n    label: \"3 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-4`,\n    label: \"4 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-5`,\n    label: \"5 syllables\",\n    onClick: handleMenuClick\n  }];\n  const onChangeStairSwitch = value => {\n    setTxtShowSwitch(value ? 'hide' : 'show');\n    setTxtShow(value ? 'true' : 'false');\n  };\n  const renderSelectedComponent = () => {\n    switch (component) {\n      // case 'Constant':\n      //   return <Constant ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\n      case 'ConstantTxt':\n        return /*#__PURE__*/_jsxDEV(ConstantTxt, {\n          ref: parentRef,\n          initialRange: initialRange,\n          divisor: divisor,\n          ballPosition: ballPosition,\n          isRetry: isRetry,\n          setPlayingPause: setPlayingPause,\n          COLORS: COLORS,\n          showNotesPar: showNotesPar,\n          size: size,\n          config: config,\n          isPlaying: isPlaying\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 620,\n          columnNumber: 16\n        }, this);\n      case 'Stair':\n        return /*#__PURE__*/_jsxDEV(Stair, {\n          setShowNotesPar: setShowNotesPar,\n          setMaxLyricCount: setMaxLyricCount,\n          initialRange: initialRange,\n          divisor: divisor,\n          txtShow: txtShow,\n          playLyricCount: playLyricCount,\n          setPlayingPause: setPlayingPause,\n          isRetry: isRetry,\n          COLORS: COLORS,\n          showNotesPar: showNotesPar,\n          size: size,\n          config: config,\n          isPlaying: isPlaying\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 622,\n          columnNumber: 16\n        }, this);\n      case 'Fixed':\n        return /*#__PURE__*/_jsxDEV(Fixed, {\n          setMaxLyricCount: setMaxLyricCount,\n          setIsListen: setIsListen,\n          isListen: isListen,\n          initialRange: initialRange,\n          divisor: divisor,\n          setPlayingPause: setPlayingPause,\n          isRetry: isRetry,\n          onAudioSrcChange: handleAudioSrc,\n          setBaseFilenames: setBaseFilenames,\n          onPlayLyricCountChange: handlePlayLyricCountChange,\n          syllableCount: syllableCount,\n          gender: gender,\n          genderName: genderName,\n          COLORS: COLORS,\n          showNotesPar: showNotesPar,\n          playLyricCount: playLyricCount,\n          size: size,\n          config: config,\n          isPlaying: isPlaying\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 624,\n          columnNumber: 16\n        }, this);\n      case 'Heteronym':\n        return /*#__PURE__*/_jsxDEV(Heteronym, {\n          setMaxLyricCount: setMaxLyricCount,\n          initialRange: initialRange,\n          divisor: divisor,\n          txtShow: txtShow,\n          playLyricCount: playLyricCount,\n          setPlayingPause: setPlayingPause,\n          isRetry: isRetry,\n          setPlaying: setPlaying,\n          COLORS: COLORS,\n          showNotesPar: showNotesPar,\n          size: size,\n          config: config,\n          isPlaying: isPlaying,\n          heteronymFile: heteronymFilenames\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 626,\n          columnNumber: 16\n        }, this);\n      default:\n        return /*#__PURE__*/_jsxDEV(\"span\", {\n          children: \"Canvas: Picture\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 628,\n          columnNumber: 16\n        }, this);\n    }\n  };\n  const MainButtons = () => {\n    return /*#__PURE__*/_jsxDEV(Flex, {\n      justify: \"center\",\n      wrap: \"wrap\",\n      gap: \"small\",\n      children: [/*#__PURE__*/_jsxDEV(Tooltip, {\n        title: \"Retry\",\n        children: /*#__PURE__*/_jsxDEV(Button, {\n          onClick: () => setIsRetry(!isRetry),\n          shape: \"circle\",\n          icon: /*#__PURE__*/_jsxDEV(RedoOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 636,\n            columnNumber: 77\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 636,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 635,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(AudioPlayer, {\n        autoPlayAfterSrcChange: false,\n        src: audioSrcFromChild,\n        ref: audioPlayerNew,\n        style: {\n          display: 'none'\n        }\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 644,\n        columnNumber: 9\n      }, this), showListen && /*#__PURE__*/_jsxDEV(Tooltip, {\n        title: \"Listen\",\n        children: /*#__PURE__*/_jsxDEV(Button, {\n          disabled: component !== \"Fixed\",\n          shape: \"circle\",\n          onClick: playAudio,\n          icon: /*#__PURE__*/_jsxDEV(CustomerServiceOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 652,\n            columnNumber: 95\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 652,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 651,\n        columnNumber: 11\n      }, this), showNextPre && /*#__PURE__*/_jsxDEV(Tooltip, {\n        title: \"Previous\",\n        children: /*#__PURE__*/_jsxDEV(Button, {\n          shape: \"circle\",\n          onClick: onChangePrevious,\n          icon: /*#__PURE__*/_jsxDEV(StepBackwardOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 659,\n            columnNumber: 69\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 659,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 658,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n        title: isPlaying ? \"Pause\" : \"Play\",\n        children: /*#__PURE__*/_jsxDEV(Button, {\n          onClick: onChangePause,\n          shape: \"circle\",\n          icon: isPlaying ? /*#__PURE__*/_jsxDEV(PauseOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 663,\n            columnNumber: 76\n          }, this) : /*#__PURE__*/_jsxDEV(CaretRightOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 663,\n            columnNumber: 96\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 663,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 662,\n        columnNumber: 9\n      }, this), showNextPre && /*#__PURE__*/_jsxDEV(Tooltip, {\n        title: \"Next\",\n        children: /*#__PURE__*/_jsxDEV(Button, {\n          shape: \"circle\",\n          onClick: onChangeNext,\n          icon: /*#__PURE__*/_jsxDEV(StepForwardOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 668,\n            columnNumber: 65\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 668,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 667,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 633,\n      columnNumber: 7\n    }, this);\n  };\n  const renderSelectedComponentLyric = () => {\n    switch (component) {\n      case 'ConstantTxt':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [/*#__PURE__*/_jsxDEV(Space, {\n            size: \"middle\",\n            children: [MainButtons(), /*#__PURE__*/_jsxDEV(Space.Compact, {\n              children: [/*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Clear existing files and upload new ones\",\n                children: /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: ClearTxt,\n                  children: \"Clear text\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 687,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 686,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Upload, {\n                maxCount: 1,\n                ...props,\n                children: /*#__PURE__*/_jsxDEV(Button, {\n                  icon: /*#__PURE__*/_jsxDEV(UploadOutlined, {}, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 691,\n                    columnNumber: 33\n                  }, this),\n                  children: \"Upload Text/pdf File\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 691,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 690,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Open the Textbox and enter or paste your text\",\n                children: /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: () => setIsOpenTextbox(!isOpenTextbox),\n                  children: !isOpenTextbox ? \"Open Textbox\" : \"Close Textbox\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 696,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 695,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 684,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 682,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(_Fragment, {\n            children: isOpenTextbox && fileContent.length === 0 && /*#__PURE__*/_jsxDEV(TextArea, {\n              rows: 4,\n              placeholder: \"Enter or paste Text Entry\",\n              style: {\n                height: 40,\n                resize: 'none'\n              },\n              onKeyDown: changeOnEnter\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 705,\n              columnNumber: 17\n            }, this)\n          }, void 0, false), /*#__PURE__*/_jsxDEV(\"ul\", {\n            children: fileContent.map((text, index) => {\n              const maxIndexToShow = playLyricCount + 2 >= fileContent.length ? fileContent.length - 1 : playLyricCount + 2;\n              const shouldShow = index >= playLyricCount && index <= maxIndexToShow;\n              const isNearEnd = fileContent.length - playLyricCount <= 2;\n              const startIndex = isNearEnd ? fileContent.length - 3 : playLyricCount;\n              const showCondition = index >= startIndex && index <= startIndex + 2;\n              return showCondition && /*#__PURE__*/_jsxDEV(\"li\", {\n                className: playLyricCount === index ? 'highlighted' : '',\n                children: text\n              }, index, false, {\n                fileName: _jsxFileName,\n                lineNumber: 722,\n                columnNumber: 21\n              }, this);\n            })\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 711,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 680,\n          columnNumber: 11\n        }, this);\n      case 'Stair':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [/*#__PURE__*/_jsxDEV(Flex, {\n            align: \"center\",\n            gap: \"middle\",\n            children: [MainButtons(), /*#__PURE__*/_jsxDEV(Switch, {\n              defaultChecked: true,\n              checkedChildren: \"show\",\n              unCheckedChildren: \"hide\",\n              onChange: onChangeStairSwitch\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 734,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 732,\n            columnNumber: 13\n          }, this), (() => {\n            if (txtShow === 'true') {\n              return /*#__PURE__*/_jsxDEV(\"ul\", {\n                children: renderTruncatedFilenames(stairFilenames)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 740,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 731,\n          columnNumber: 11\n        }, this);\n      case 'Heteronym':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [MainButtons(), (() => {\n            if (txtShow === 'true') {\n              return /*#__PURE__*/_jsxDEV(\"ul\", {\n                children: renderTruncatedFilenames(heteronymFilenames)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 757,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 752,\n          columnNumber: 11\n        }, this);\n      case 'Fixed':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [MainButtons(), /*#__PURE__*/_jsxDEV(\"ul\", {\n            children: renderTruncatedFilenames(baseFilenames)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 771,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 769,\n          columnNumber: 11\n        }, this);\n      default:\n        return /*#__PURE__*/_jsxDEV(\"span\", {\n          children: \"Canvas: Picture\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 777,\n          columnNumber: 16\n        }, this);\n    }\n  };\n  useEffect(() => {\n    if (component == \"ConstantTxt\" && fileContent.length === 0) {\n      setShowNextPre(false);\n      setShowListen(false);\n    } else if (component == \"ConstantTxt\" && fileContent.length != 0) {\n      setShowNextPre(true);\n      setShowListen(false);\n    } else if (component == \"Fixed\") {\n      setShowNextPre(true);\n      setShowListen(true);\n    } else if (component == \"Stair\") {\n      setShowNextPre(true);\n      setShowListen(false);\n    } else if (component == \"Heteronym\") {\n      setShowNextPre(true);\n      setShowListen(false);\n    } else {\n      setShowNextPre(true);\n      setShowListen(false);\n    }\n  }, [component, fileContent]);\n\n  // Options Changing functions\n  const onChangeRange = rangeValue => {\n    setInitialRange([rangeValue[0], rangeValue[1]]);\n  };\n  const onChangePosition = positionValue => {\n    setBallPosition(positionValue);\n  };\n  const onChangeSpeed = speedValue => {\n    const mappedValue = Math.round(speedValue * 20 + 4);\n    setDivisor(mappedValue);\n  };\n  const onChangeHz = ({\n    target: {\n      value\n    }\n  }) => {\n    console.log(value);\n    if (value === 'hz') {\n      setShowNotesPar(false);\n    } else {\n      setShowNotesPar(true);\n    }\n  };\n  const EnableVoluneMode = e => {\n    console.log(e);\n    if (e) {\n      setEnableVol(true);\n    } else {\n      setEnableVol(false);\n    }\n  };\n\n  // Button functions\n  const onChangePause = () => {\n    setIsPlaying(!isPlaying);\n  };\n  const onChangePrevious = () => {\n    const tem = playLyricCount;\n    if (tem <= 0) {\n      setPlayLyricCount(0);\n    } else {\n      setPlayLyricCount(tem - 1);\n    }\n  };\n  const onChangeNext = () => {\n    const tem = playLyricCount;\n    if (tem >= maxLyricCount) {\n      setPlayLyricCount(maxLyricCount);\n    } else {\n      setPlayLyricCount(tem + 1);\n    }\n  };\n\n  // tooltips\n  const onChangeThreshold = e => {\n    setThreshold(e);\n  };\n  const formatterdB = value => `${value} dB`;\n  const formatterHz = value => `${value} Hz`;\n  const formatterPos = value => `${value ? (value * 100).toFixed(0) : '0'}%`;\n\n  // onChangeCollapse\n  const onChangeCollapse = e => {\n    console.log(e);\n    if (Array.isArray(e)) {\n      setSelectedNum(e);\n    } else {\n      setSelectedNum([e]);\n    }\n  };\n  return /*#__PURE__*/_jsxDEV(Row, {\n    children: /*#__PURE__*/_jsxDEV(Col, {\n      span: 24,\n      children: /*#__PURE__*/_jsxDEV(Layout, {\n        className: \"layoutSample\",\n        children: /*#__PURE__*/_jsxDEV(Content, {\n          children: [/*#__PURE__*/_jsxDEV(Flex, {\n            align: \"center\",\n            justify: \"center\",\n            gap: \"middle\",\n            vertical: true,\n            children: [/*#__PURE__*/_jsxDEV(\"div\", {\n              style: {\n                marginTop: \"2vw\"\n              },\n              children: /*#__PURE__*/_jsxDEV(ConfigProvider, {\n                theme: {\n                  token: {\n                    colorPrimary: \"rgb(132, 118, 171)\",\n                    borderRadius: 0\n                  }\n                },\n                children: /*#__PURE__*/_jsxDEV(Space, {\n                  size: \"middle\",\n                  children: /*#__PURE__*/_jsxDEV(Space.Compact, {\n                    children: [/*#__PURE__*/_jsxDEV(Tooltip, {\n                      title: \"\",\n                      children: /*#__PURE__*/_jsxDEV(Button, {\n                        type: component === \"ConstantTxt\" ? \"primary\" : \"default\",\n                        onClick: handleStairAndConstantClick,\n                        children: \"CONSTANT\"\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 893,\n                        columnNumber: 25\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 892,\n                      columnNumber: 23\n                    }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                      title: \"\",\n                      children: /*#__PURE__*/_jsxDEV(Button, {\n                        type: component === \"Stair\" ? \"primary\" : \"default\",\n                        onClick: handleStairAndConstantClick,\n                        children: \"STAIR\"\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 899,\n                        columnNumber: 25\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 898,\n                      columnNumber: 23\n                    }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                      title: \"\",\n                      children: /*#__PURE__*/_jsxDEV(Button, {\n                        type: component === \"Heteronym\" ? \"primary\" : \"default\",\n                        onClick: handleStairAndConstantClick,\n                        children: \"HETERONYMS\"\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 905,\n                        columnNumber: 25\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 904,\n                      columnNumber: 23\n                    }, this), /*#__PURE__*/_jsxDEV(Dropdown, {\n                      menu: {\n                        items: itemsSyllable\n                      },\n                      placement: \"bottom\",\n                      children: /*#__PURE__*/_jsxDEV(Button, {\n                        type: component === \"Fixed\" ? \"primary\" : \"default\",\n                        children: syllableCount === \"none\" ? 'HUMAN CURVE' : syllableCount + ' SYLLABLE'\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 911,\n                        columnNumber: 25\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 910,\n                      columnNumber: 23\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 890,\n                    columnNumber: 21\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 889,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 880,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 879,\n              columnNumber: 15\n            }, this), shortDescription(component), /*#__PURE__*/_jsxDEV(\"div\", {\n              style: {\n                width: \"100%\"\n              },\n              children: renderSelectedComponent()\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 926,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Flex, {\n              vertical: true,\n              justify: \"center\",\n              wrap: \"wrap\",\n              gap: \"small\",\n              ref: ref2,\n              children: renderSelectedComponentLyric()\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 931,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n              title: \"Setting\",\n              children: /*#__PURE__*/_jsxDEV(FloatButton, {\n                style: {\n                  width: 50,\n                  height: 50,\n                  right: 15,\n                  display: 'flex',\n                  alignItems: 'center',\n                  justifyContent: 'center'\n                },\n                onClick: () => setOpenSetting(true),\n                ref: ref3,\n                icon: /*#__PURE__*/_jsxDEV(SettingOutlined, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 942,\n                  columnNumber: 74\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 935,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 934,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n              title: \"Tour\",\n              children: /*#__PURE__*/_jsxDEV(FloatButton, {\n                style: {\n                  width: 50,\n                  height: 50,\n                  right: 90,\n                  display: 'flex',\n                  alignItems: 'center',\n                  justifyContent: 'center'\n                },\n                onClick: handleBeginTour,\n                icon: /*#__PURE__*/_jsxDEV(QuestionOutlined, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 953,\n                  columnNumber: 52\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 946,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 945,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Image, {\n              preview: false,\n              src: divide_1,\n              style: {\n                width: '100%'\n              }\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 956,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Typography, {\n              style: {\n                width: \"100%\",\n                paddingLeft: \"30px\",\n                paddingRight: \"40px\"\n              },\n              children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n                id: \"part-1\",\n                level: 2,\n                style: {\n                  margin: 0\n                },\n                children: \"How to use\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 965,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Collapse, {\n                activeKey: selectedNum\n                // accordion\n                ,\n                onChange: onChangeCollapse\n                // defaultActiveKey={selectedNum} \n                ,\n                ghost: true,\n                items: items_3\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 968,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 961,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 877,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Drawer, {\n            title: \"Options\",\n            placement: \"right\",\n            onClose: () => setOpenSetting(false),\n            open: openSetting,\n            width: 430,\n            children: /*#__PURE__*/_jsxDEV(Flex, {\n              vertical: true,\n              gap: \"middle\",\n              children: [/*#__PURE__*/_jsxDEV(Space, {\n                children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                  children: \"# Coordinate Display Mode\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1028,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Radio.Group, {\n                  onChange: onChangeHz,\n                  value: showNotesPar ? 'notes' : 'hz',\n                  defaultValue: \"notes\",\n                  buttonStyle: \"solid\",\n                  children: [/*#__PURE__*/_jsxDEV(Radio.Button, {\n                    value: \"hz\",\n                    children: \" Hz \"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 1030,\n                    columnNumber: 21\n                  }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                    value: \"notes\",\n                    children: \"Notes\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 1031,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1029,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1033,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1027,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                  children: \"# Pitch Display Range\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1037,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                  range: true,\n                  step: 10,\n                  min: 50,\n                  max: 600,\n                  onChange: onChangeRange,\n                  tooltip: {\n                    formatter: formatterHz\n                  },\n                  marks: marksRange,\n                  defaultValue: [100, 300]\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1038,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1036,\n                columnNumber: 17\n              }, this), component !== \"Fixed\" && component !== \"Stair\" && component !== \"Heteronym\" && /*#__PURE__*/_jsxDEV(\"div\", {\n                children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                  children: \"# Pitch Indicator Horizontal Position\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1053,\n                  columnNumber: 21\n                }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                  step: 0.1,\n                  min: 0,\n                  max: 1,\n                  onChange: onChangePosition,\n                  tooltip: {\n                    formatter: formatterPos\n                  },\n                  defaultValue: 0.5,\n                  marks: marksBallPos\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1054,\n                  columnNumber: 21\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1052,\n                columnNumber: 19\n              }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                  children: \"# Pitch Indicator Speed\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1069,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                  step: 0.05,\n                  min: 0,\n                  max: 1,\n                  onChange: onChangeSpeed,\n                  defaultValue: 0.3,\n                  tooltip: {\n                    formatter: null\n                  }\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1070,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1068,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                children: [/*#__PURE__*/_jsxDEV(Space, {\n                  children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Auto-Start When Voice Detected\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 1082,\n                    columnNumber: 21\n                  }, this), /*#__PURE__*/_jsxDEV(Switch, {\n                    defaultChecked: false,\n                    onChange: EnableVoluneMode\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 1083,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1081,\n                  columnNumber: 19\n                }, this), enableVol && /*#__PURE__*/_jsxDEV(Slider, {\n                  step: 1,\n                  min: 50,\n                  max: 90,\n                  onChange: onChangeThreshold,\n                  tooltip: {\n                    formatter: formatterdB\n                  },\n                  defaultValue: 70,\n                  marks: marksVol\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1087,\n                  columnNumber: 21\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1080,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 1101,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Button, {\n                onClick: onClose,\n                children: \"Close\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 1102,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 1002,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1001,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Tour, {\n            open: openTour,\n            onClose: () => setOpenTour(false),\n            steps: steps\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1105,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 875,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 873,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 872,\n      columnNumber: 7\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 871,\n    columnNumber: 5\n  }, this)\n\n  // </div>\n  ;\n};\n_s(Sample, \"MmQDC+JxRi2spsBk4FTzUSXpKek=\", false, function () {\n  return [useTemString, useLocation];\n});\n_c = Sample;\nexport default Sample;\nvar _c;\n$RefreshReg$(_c, \"Sample\");","map":{"version":3,"names":["React","useState","useEffect","useRef","Button","Flex","SettingOutlined","CustomerServiceOutlined","Col","Row","Tour","ConfigProvider","CaretRightOutlined","Slider","Input","Layout","Dropdown","Drawer","Radio","RedoOutlined","PauseOutlined","StepForwardOutlined","StepBackwardOutlined","Tooltip","FloatButton","Space","Switch","ConstantTxt","Fixed","Stair","Heteronym","UploadOutlined","message","Upload","hark","useLocation","Typography","Collapse","Image","divide_1","QuestionOutlined","useTemString","pdfToText","AudioPlayer","jsxDEV","_jsxDEV","Fragment","_Fragment","TextArea","Title","Paragraph","Text","Link","Content","marksRange","marksBallPos","marksVol","itemsMenu","label","key","Sample","genderName","gender","setGender","_s","items_3","stairFilenames","heteronymFilenames","shortDescription","size","initialRange","setInitialRange","config","setConfig","SRATE","fxmin","fxlow","fxhigh","fxmax","COLORS","realVoiceColor","targetVoiceColor","closeVoiceColor","openSetting","setOpenSetting","txtShow","setTxtShow","txtShowSwitch","setTxtShowSwitch","openTour","setOpenTour","isPlaying","setIsPlaying","isRetry","setIsRetry","enableVol","setEnableVol","isOpenTextbox","setIsOpenTextbox","showNextPre","setShowNextPre","showListen","setShowListen","location","ref1","ref2","ref3","parentRef","volume","setVolume","threshold","setThreshold","maxLyricCount","setMaxLyricCount","playLyricCount","setPlayLyricCount","divisor","setDivisor","ballPosition","setBallPosition","showNotesPar","setShowNotesPar","component","setComponent","currentSelection","setCurrentSelection","syllableCount","setSyllableCount","baseFilenames","setBaseFilenames","fileContent","setFileContent","selectedNum","setSelectedNum","audioPlayer","audioPlayerNew","audioSrcFromChild","setAudioSrcFromChild","isListen","setIsListen","selectedItem","setSelectedItem","setPlaying","setPlayingPause","handleBeginTour","onClickMenu","e","onClose","ClearTxt","renderContent","children","fileName","_jsxFileName","lineNumber","columnNumber","vertical","gap","Group","onChange","onChangeHz","defaultValue","buttonStyle","value","range","step","min","max","onChangeRange","tooltip","formatter","formatterHz","marks","onChangePosition","formatterPos","onChangeSpeed","defaultChecked","EnableVoluneMode","onChangeThreshold","formatterdB","onClick","handleTextInput","content","target","separators","splitContent","split","map","s","trim","filter","Boolean","console","log","length","props","name","accept","beforeUpload","file","type","error","then","text","catch","reader","FileReader","onload","_e$target","result","readAsText","info","status","success","changeOnEnter","shiftKey","handleAudioSrc","newAudioSrc","playAudio","current","audio","play","navigator","mediaDevices","getUserMedia","video","stream","harkInstance","on","stop","steps","title","description","placement","cover","style","textAlign","queryParams","URLSearchParams","search","init","get","handleStairAndConstantClick","innerText","handleMenuClick","componentType","genderType","syllableCountType","tt","renderTruncatedFilenames","filenames","index","isNearEnd","startIndex","showCondition","className","handlePlayLyricCountChange","newCount","itemsSyllable","onChangeStairSwitch","renderSelectedComponent","ref","onAudioSrcChange","onPlayLyricCountChange","heteronymFile","MainButtons","justify","wrap","shape","icon","autoPlayAfterSrcChange","src","display","disabled","onChangePrevious","onChangePause","onChangeNext","renderSelectedComponentLyric","Compact","maxCount","rows","placeholder","height","resize","onKeyDown","maxIndexToShow","shouldShow","align","checkedChildren","unCheckedChildren","rangeValue","positionValue","speedValue","mappedValue","Math","round","tem","toFixed","onChangeCollapse","Array","isArray","span","marginTop","theme","token","colorPrimary","borderRadius","menu","items","width","right","alignItems","justifyContent","preview","paddingLeft","paddingRight","id","level","margin","activeKey","ghost","open","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/Route/Sample.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { Button, Flex, } from 'antd';\r\nimport { SettingOutlined, CustomerServiceOutlined } from '@ant-design/icons';\r\nimport { Col, Row, Tour, ConfigProvider } from 'antd';\r\nimport { CaretRightOutlined } from '@ant-design/icons';\r\nimport { Slider, Input } from 'antd';\r\nimport { Breadcrumb, Layout, Menu, Dropdown, theme, Avatar } from 'antd';\r\nimport { Drawer, Cascader, Radio } from 'antd';\r\nimport { RedoOutlined, PauseOutlined, StepForwardOutlined, StepBackwardOutlined } from '@ant-design/icons';\r\nimport { Tooltip, FloatButton, Space, Switch } from 'antd';\r\nimport '../CSS/sample.css';\r\nimport { Modal } from 'antd';\r\nimport ConstantTxt from '../Canvas/ConstantTxt'\r\nimport Fixed from '../Canvas/Fixed'\r\nimport Stair from '../Canvas/Stair'\r\nimport Heteronym from '../Canvas/Heteronym'\r\nimport type { RadioChangeEvent } from 'antd';\r\nimport type { TourProps } from 'antd';\r\nimport ReactAudioPlayer from 'react-audio-player';\r\nimport type { SliderSingleProps } from 'antd';\r\nimport type { UploadProps } from 'antd';\r\nimport { UploadOutlined, ArrowLeftOutlined, RollbackOutlined } from '@ant-design/icons';\r\nimport { message, Upload } from 'antd';\r\nimport hark from 'hark';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { Typography } from 'antd';\r\nimport type { CollapseProps } from 'antd';\r\nimport { Collapse } from 'antd';\r\nimport { Image } from 'antd';\r\nimport divide_1 from '../icon/Divider2-half.png'\r\nimport { UserOutlined } from '@ant-design/icons';\r\nimport { QuestionOutlined } from '@ant-design/icons';\r\nimport { adjustCanvasScale, map, drawBackground, generateNotesAndFrequencies } from '../function/canvasDefault';\r\nimport { useTemString } from '../hooks/useTemString';\r\nimport { useCanvasHooks } from '../hooks/useCanvasHooks';\r\nimport type { MenuProps } from 'antd';\r\n// @ts-ignore\r\nimport pdfToText from 'react-pdftotext';\r\nimport useCanvasAdjustHeight from '../hooksUseEffect/useCanvasAdjustHeight';\r\nimport AudioPlayer from 'react-h5-audio-player';\r\n\r\n\r\nconst { TextArea } = Input;\r\nconst { Title, Paragraph, Text, Link } = Typography;\r\ntype MenuTheme = 'show' | 'hide';\r\n// const fontSizePara = 17;\r\n// const fontAlign = \"justify\";\r\n// const paragraphStyle:React.CSSProperties = {\r\n//   textAlign: fontAlign,  \r\n//   fontSize: fontSizePara,\r\n//   fontFamily: \"'Roboto', 'sans-serif'\",\r\n// };\r\n\r\n\r\nconst { Content } = Layout;\r\n\r\nconst marksRange: SliderSingleProps['marks'] = {\r\n  50: '50Hz',\r\n  600: '600Hz'\r\n};\r\n\r\nconst marksBallPos: SliderSingleProps['marks'] = {\r\n  0: '0%',\r\n  1: '100%'\r\n};\r\nconst marksVol: SliderSingleProps['marks'] = {\r\n  50: '50dB',\r\n  90: '90dB'\r\n};\r\n\r\nconst itemsMenu: MenuProps['items'] = [\r\n  {\r\n    label: 'Profile',\r\n    key: 'Profile',\r\n  },\r\n  {\r\n    label: 'Settings',\r\n    key: 'Settings',\r\n  },\r\n  {\r\n    label: 'Other',\r\n    key: 'Other',\r\n  },\r\n];\r\ninterface SampleProps {\r\n  genderName: string;\r\n  gender: string;\r\n  setGender: (str: string)=>void;\r\n}\r\n\r\nconst Sample: React.FC<SampleProps> = ({genderName, gender,setGender }) => {\r\n\r\n  // strings\r\n  const {\r\n    items_3,\r\n    stairFilenames,\r\n    heteronymFilenames,\r\n    shortDescription,\r\n  } = useTemString();\r\n\r\n  // Canvas values\r\n  const size = [400, 1400];\r\n  const [initialRange, setInitialRange] = useState<number[]>([100, 300]);\r\n  const [config, setConfig] = useState({\r\n    SRATE: 48000,\r\n    fxmin: 50,\r\n    fxlow: 50 + 50, // This initial value will be updated by useEffect below\r\n    fxhigh: 600 - 200, // This initial value will be updated by useEffect below\r\n    fxmax: 600\r\n  });\r\n  const COLORS = {\r\n    realVoiceColor: '#d679de', // red\r\n    targetVoiceColor: '#4669C8', // blue\r\n    closeVoiceColor: '#15dbcc', // yellow\r\n  };\r\n\r\n  // open/close \r\n  const [openSetting, setOpenSetting] = useState(false);\r\n  const [txtShow, setTxtShow] = useState<string>(\"true\");\r\n  const [txtShowSwitch, setTxtShowSwitch] = useState<MenuTheme>('show');\r\n  const [openTour, setOpenTour] = useState<boolean>(false);\r\n  const [isPlaying, setIsPlaying] = useState(true);\r\n  const [isRetry, setIsRetry] = useState(false);\r\n  const [enableVol, setEnableVol] = useState<boolean>(false);\r\n  const [isOpenTextbox, setIsOpenTextbox] = useState<boolean>(false);\r\n  const [showNextPre, setShowNextPre] = useState<boolean>(false);\r\n  const [showListen, setShowListen] = useState<boolean>(false);\r\n\r\n  // special vatiables\r\n  const location = useLocation();\r\n  const ref1 = useRef(null);\r\n  const ref2 = useRef(null);\r\n  const ref3 = useRef(null);\r\n  const parentRef = useRef<HTMLDivElement>(null);\r\n\r\n  // initial Value\r\n  const [volume, setVolume] = useState(0);\r\n  const [threshold, setThreshold] = useState<number>(70);\r\n  const [maxLyricCount, setMaxLyricCount] = useState<number>(2);\r\n  const [playLyricCount, setPlayLyricCount] = useState<number>(0);\r\n  const [divisor, setDivisor] = useState<number>(10);\r\n  const [ballPosition, setBallPosition] = useState<number>(0.5);\r\n\r\n  // Hz/Notes\r\n  const [showNotesPar, setShowNotesPar] = useState(false);\r\n\r\n  // selected choice\r\n  const [component, setComponent] = useState<string>(\"ConstantTxt\");\r\n  const [currentSelection, setCurrentSelection] = useState('Constant');\r\n  // const [gender, setGender] = useState<string>(\"Female\");\r\n  // const [genderName, setGenderName] = useState<string>(\"Fem01\");\r\n  const [syllableCount, setSyllableCount] = useState<string>(\"none\");\r\n  const [baseFilenames, setBaseFilenames] = useState<string[]>([]);\r\n  const [fileContent, setFileContent] = useState<string[]>([]);\r\n  const [selectedNum,setSelectedNum]=useState<string[]>([\"2\"]);\r\n\r\n  // auido\r\n  const audioPlayer = useRef<ReactAudioPlayer>(null);\r\n  const audioPlayerNew = useRef<AudioPlayer>(null);\r\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState<string>('');\r\n  const [isListen, setIsListen] = useState<number>(1);\r\n\r\n  // profile (Need to rebuild)\r\n  const [selectedItem, setSelectedItem] = useState('Settings');\r\n\r\n  // \r\n  const setPlaying = () => {\r\n    setIsPlaying(true);\r\n  };\r\n  const setPlayingPause = () => {\r\n    setIsPlaying(false);\r\n  };\r\n  const handleBeginTour = () => {\r\n    setOpenTour(true);\r\n  };\r\n  const onClickMenu: MenuProps['onClick'] = (e) => {\r\n    setSelectedItem(e.key);\r\n  };\r\n  const onClose = () => {\r\n    setOpenSetting(false);\r\n  };\r\n  const ClearTxt = () => {\r\n    setFileContent([]);\r\n    setMaxLyricCount(1);\r\n  };\r\n  // render profile page\r\n  const renderContent = () => {\r\n    switch (selectedItem) {\r\n      case 'Profile':\r\n        return <p>profile</p>;\r\n      case 'Settings':\r\n        return (<div>\r\n          <Flex vertical gap=\"middle\">\r\n            <Space>\r\n              <p># Coordinate Display Mode</p>\r\n              <Radio.Group onChange={onChangeHz} defaultValue=\"notes\" buttonStyle=\"solid\">\r\n                <Radio.Button value=\"hz\"> Hz </Radio.Button>\r\n                <Radio.Button value=\"notes\">Notes</Radio.Button>\r\n              </Radio.Group>\r\n              <br />\r\n            </Space>\r\n\r\n            <div>\r\n              <p># Pitch Display Range</p>\r\n              <Slider\r\n                range\r\n                step={10}\r\n                min={50}\r\n                max={600}\r\n                onChange={onChangeRange}\r\n                tooltip={{\r\n                  formatter: formatterHz,\r\n                }}\r\n                marks={marksRange}\r\n                defaultValue={[100, 300]} />\r\n            </div>\r\n\r\n\r\n            {component !== \"Fixed\" && component !== \"Stair\" && (\r\n              <div>\r\n                <p># Pitch Indicator Horizontal Position</p>\r\n                <Slider\r\n                  step={0.1}\r\n                  min={0}\r\n                  max={1}\r\n                  onChange={onChangePosition}\r\n                  tooltip={{\r\n                    formatter: formatterPos,\r\n                  }}\r\n                  defaultValue={0.5}\r\n                  marks={marksBallPos}\r\n                />\r\n              </div>\r\n            )}\r\n\r\n            {component !== \"Fixed\" && component !== \"Stair\" && component !== \"Heteronym\" && (\r\n              <div>\r\n                <p># Pitch Indicator Horizontal Position</p>\r\n                <Slider\r\n                  step={0.1}\r\n                  min={0}\r\n                  max={1}\r\n                  onChange={onChangePosition}\r\n                  tooltip={{\r\n                    formatter: formatterPos,\r\n                  }}\r\n                  defaultValue={0.5}\r\n                  marks={marksBallPos}\r\n                />\r\n              </div>\r\n            )}\r\n\r\n            <div>\r\n              <p># Pitch Indicator Speed</p>\r\n              <Slider\r\n                step={0.05}\r\n                min={0}\r\n                max={1}\r\n                onChange={onChangeSpeed}\r\n                defaultValue={0.3}\r\n                tooltip={{ formatter: null }}\r\n              />\r\n            </div>\r\n\r\n            <div>\r\n              <Space>\r\n                <p># Auto-Start When Voice Detected</p>\r\n                <Switch defaultChecked={false} onChange={EnableVoluneMode} />\r\n              </Space>\r\n\r\n              {enableVol &&\r\n                <Slider\r\n                  step={1}\r\n                  min={50}\r\n                  max={90}\r\n                  onChange={onChangeThreshold}\r\n                  tooltip={{\r\n                    formatter: formatterdB,\r\n\r\n                  }}\r\n                  defaultValue={70}\r\n                  marks={marksVol}\r\n                />\r\n              }\r\n            </div>\r\n\r\n            <br />\r\n            <Button onClick={onClose}>Close</Button>\r\n          </Flex>\r\n\r\n        </div>)\r\n      case 'Other':\r\n        return <p>other</p>;\r\n      default:\r\n        return null;\r\n    }\r\n  };\r\n\r\n  // Constant Page upload and input\r\n  const handleTextInput = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n    const content = e.target.value as string;\r\n    const separators = /[;,./\\n]/;\r\n    const splitContent = content.split(separators)\r\n      .map(s => s.trim())\r\n      .filter(Boolean);\r\n    console.log(splitContent);\r\n    setFileContent(splitContent);\r\n    setMaxLyricCount(splitContent.length - 1);\r\n    setPlayLyricCount(0);\r\n  }\r\n  const props: UploadProps = {\r\n    name: 'file',\r\n    accept: '.txt, .pdf',\r\n    beforeUpload: (file) => {\r\n      if (file.type !== 'text/plain' && file.type !== 'application/pdf') {\r\n        message.error(`${file.name} is not a valid text/pdf file.`);\r\n        return false;\r\n      }\r\n      if (file.type === 'application/pdf') {\r\n        pdfToText(file)\r\n          .then((text: string) => {\r\n            const separators = /[;,./\\n]/;\r\n            const splitContent = text.split(separators)\r\n              .map((s: string) => s.trim())\r\n              .filter(Boolean);\r\n            console.log(splitContent);\r\n            setFileContent(splitContent);\r\n            setMaxLyricCount(splitContent.length - 1);\r\n            setPlayLyricCount(0);\r\n          })\r\n          .catch((error: any) => { // Explicitly specify the type of 'error' parameter as 'any'\r\n            message.error('Error reading PDF file:', error);\r\n          });\r\n        return false;\r\n      }\r\n      if (file.type === 'text/plain') {\r\n        const reader = new FileReader();\r\n        reader.onload = (e: ProgressEvent<FileReader>) => {\r\n          if (e.target?.result) {\r\n            const content = e.target.result as string;\r\n            // const separators = /[;,./]/;\r\n            const separators = /[;,./\\n]/;\r\n            const splitContent = content.split(separators)\r\n              .map(s => s.trim())\r\n              .filter(Boolean);\r\n            console.log(splitContent);\r\n            setFileContent(splitContent);\r\n            setMaxLyricCount(splitContent.length - 1);\r\n            setPlayLyricCount(0);\r\n          }\r\n        };\r\n\r\n        reader.readAsText(file);\r\n\r\n        return false;\r\n      }\r\n    },\r\n    onChange(info) {\r\n      if (info.file.status === 'done') {\r\n        message.success(`${info.file.name} file read successfully`);\r\n      } else if (info.file.status === 'error') {\r\n        message.error(`${info.file.name} file read failed.`);\r\n      }\r\n    },\r\n  };\r\n  const changeOnEnter = (e: any) => {\r\n    if (e.key === 'Enter' && !e.shiftKey) {\r\n      console.log(\"Enter Key Pressed!\");\r\n      handleTextInput(e);\r\n    }\r\n  }\r\n\r\n  // audio\r\n  const handleAudioSrc = (newAudioSrc: string) => {\r\n    setAudioSrcFromChild(newAudioSrc);\r\n  };\r\n  const playAudio = () => {\r\n\r\n      // if (audioPlayer.current && audioPlayer.current.audioEl.current) {\r\n      // audioPlayer.current.audioEl.current.play()\r\n      if (audioPlayerNew.current && audioPlayerNew.current.audio.current) {\r\n      audioPlayerNew.current.audio.current.play()\r\n        .then(() => {\r\n          setIsListen(isListen + 1);\r\n        })\r\n        .catch(error => {\r\n          console.error('Fail play audios: ', error);\r\n        });\r\n    }\r\n\r\n  };\r\n\r\n  // Volume\r\n  useEffect(() => {\r\n    navigator.mediaDevices.getUserMedia({ audio: true, video: false })\r\n      .then(stream => {\r\n        const harkInstance = hark(stream, {});\r\n\r\n        harkInstance.on('volume_change', (volume, threshold) => {\r\n          setVolume(volume);\r\n        });\r\n\r\n        return () => harkInstance.stop();\r\n      })\r\n      .catch(error => {\r\n        console.error('Error accessing the microphone', error);\r\n      });\r\n  }, []);\r\n  useEffect(() => {\r\n    if (volume > threshold - 100 && enableVol) {\r\n      setIsPlaying(true);\r\n    }\r\n  }, [volume]);\r\n\r\n  // Tour\r\n  const steps: TourProps['steps'] = [\r\n    {\r\n      title: 'Canvas Display',\r\n      description: 'Visualize your voice pitch and target pitch curve in real-time.',\r\n      placement: 'top',\r\n      target: () => ref1.current,\r\n    },\r\n    {\r\n      title: 'Function Buttons',\r\n      cover: (\r\n        <ul style={{ textAlign: 'left' }}>\r\n          <li>Start/Stop: Begin or stop recording.</li>\r\n          <li>Retry: Clear display and restart.</li>\r\n          <li>Upload txt/pdf File (optional): Upload text or pdf for you (in .txt/.pdf format) to read while recording.</li>\r\n          <li>Previous Next (if text uploaded): Switch between lines of text.</li>\r\n        </ul>\r\n      ),\r\n      target: () => ref2.current,\r\n    },\r\n    {\r\n      title: 'Slider',\r\n      description: 'Use this slides to change the target pitch value that you want to aim for.',\r\n      target: () => parentRef.current as HTMLDivElement,\r\n    },\r\n    {\r\n      title: 'Options menu',\r\n      description: 'Switch between different exercises and adjust settings such as the pitch display range.',\r\n      target: () => ref3.current,\r\n    },\r\n\r\n  ];\r\n  useEffect(() => {\r\n    const queryParams = new URLSearchParams(location.search);\r\n    const init = queryParams.get('init');\r\n    if (init === 'true') {\r\n      handleBeginTour();\r\n    }\r\n  }, [location]);\r\n\r\n  // Options of different Exercise \r\n  const handleStairAndConstantClick = (e: any) => {\r\n    setPlayLyricCount(0);\r\n    setCurrentSelection(e.target.innerText);\r\n    console.log(e.target.innerText);\r\n    if (e.target.innerText === \"Constant\" || e.target.innerText === \"CONSTANT\") {\r\n      setComponent(\"ConstantTxt\");\r\n      setSelectedNum([\"2\"]);\r\n\r\n    } else if (e.target.innerText === \"Stair\" || e.target.innerText === \"STAIR\") {\r\n      setComponent(\"Stair\");\r\n      setSelectedNum([\"3\"]);\r\n\r\n    } else {\r\n      setComponent(\"Heteronym\");\r\n      setSelectedNum([\"4\"]);\r\n    }\r\n    setSyllableCount(\"none\");\r\n  }\r\n  // const saveGender = (e: any) => {\r\n  //   const [genderType, genderNameType] = e.key.split('-');\r\n  //   setGender(genderType);\r\n  //   setGenderName(genderNameType);\r\n  //   console.log(genderType);\r\n  //   console.log('genderName', genderName)\r\n  // }\r\n  const handleMenuClick = (e: any) => {\r\n    setPlayLyricCount(0);\r\n    const [componentType, genderType, syllableCountType] = e.key.split('-');\r\n    if (componentType == \"Constant\") {\r\n      setCurrentSelection(\"Constant\");\r\n    } else if (componentType == \"ConstantTxt\") {\r\n      setCurrentSelection(\"Constant\");\r\n    } else if (componentType == \"Stair\") {\r\n      setCurrentSelection(\"Staircase\");\r\n    } else {\r\n      let tt = \"Syllables \" + syllableCountType\r\n      setCurrentSelection(tt);\r\n      setSelectedNum([\"5\"]);\r\n\r\n    }\r\n\r\n    setComponent(componentType);\r\n    setGender(genderType);\r\n    setSyllableCount(syllableCountType);\r\n\r\n    setCurrentSelection(e.key + \"syllable \" + genderName);\r\n  };\r\n  const renderTruncatedFilenames = (filenames: string[]) => {\r\n    return filenames.map((text, index) => {\r\n      const isNearEnd = filenames.length - playLyricCount <= 2;\r\n      const startIndex = isNearEnd ? filenames.length - 3 : playLyricCount;\r\n      const showCondition = index >= startIndex && index <= startIndex + 2;\r\n      return (\r\n        showCondition && (\r\n          <li key={index} className={playLyricCount === index ? 'highlighted' : ''}>{text}</li>\r\n        )\r\n      );\r\n    });\r\n  };\r\n  const handlePlayLyricCountChange = (newCount: number) => {\r\n    setPlayLyricCount(newCount);\r\n  };\r\n  // const itemsMale: MenuProps['items'] = [\r\n  //   {\r\n  //     key: 'male',\r\n  //     label: \"Male01\",\r\n  //     onClick: saveGender,\r\n  //   },\r\n  // ];\r\n  // const itemsFemale: MenuProps['items'] = [\r\n  //   {\r\n  //     key: 'Female-Fem01',\r\n  //     label: \"Fem01\",\r\n  //     onClick: saveGender,\r\n  //   },\r\n  //   {\r\n  //     key: 'Female-Fem02',\r\n  //     label: \"Fem02\",\r\n  //     onClick: saveGender,\r\n  //   },\r\n  //   {\r\n  //     key: 'Female-Fem03',\r\n  //     label: \"Fem03\",\r\n  //     onClick: saveGender,\r\n  //   },\r\n  //   {\r\n  //     key: 'Female-Fem04',\r\n  //     label: \"Fem04\",\r\n  //     onClick: saveGender,\r\n  //   },\r\n  //   {\r\n  //     key: 'Female-Fem05',\r\n  //     label: \"Fem05\",\r\n  //     onClick: saveGender,\r\n  //   },\r\n  //   {\r\n  //     key: 'Female-Fem06',\r\n  //     label: \"Fem06\",\r\n  //     onClick: saveGender,\r\n  //   },\r\n  //   {\r\n  //     key: 'Female-Fem07',\r\n  //     label: \"Fem07\",\r\n  //     onClick: saveGender,\r\n  //   },\r\n  // ];\r\n  // const itemsAvatar: MenuProps['items'] = [\r\n  //   {\r\n  //     key: '1',\r\n  //     label: 'Male',\r\n  //     children: [\r\n  //       ...itemsMale\r\n  //     ],\r\n  //   },\r\n  //   {\r\n  //     key: '2',\r\n  //     label: 'Female',\r\n  //     children: [\r\n  //       ...itemsFemale\r\n  //     ],\r\n  //   },\r\n  // ];\r\n\r\n  /**\r\n * Defines the items for the syllable menu based on the gender.\r\n * If the gender is 'none', it only includes a single item prompting the user to select an avatar.\r\n * Otherwise, it includes multiple items representing the number of syllables, with corresponding click handlers.\r\n */\r\n  const itemsSyllable: MenuProps['items'] = gender === 'none' ? [\r\n    {\r\n      key: 'SelectAvatar',\r\n      label: 'Please select avatar',\r\n    },\r\n  ] : [\r\n    {\r\n      key: `Fixed-${gender}-2`,\r\n      label: \"2 syllables\",\r\n      onClick: handleMenuClick,\r\n    },\r\n    {\r\n      key: `Fixed-${gender}-3`,\r\n      label: \"3 syllables\",\r\n      onClick: handleMenuClick,\r\n    },\r\n    {\r\n      key: `Fixed-${gender}-4`,\r\n      label: \"4 syllables\",\r\n      onClick: handleMenuClick,\r\n    },\r\n    {\r\n      key: `Fixed-${gender}-5`,\r\n      label: \"5 syllables\",\r\n      onClick: handleMenuClick,\r\n    },\r\n  ];\r\n  const onChangeStairSwitch = (value: boolean) => {\r\n    setTxtShowSwitch(value ? 'hide' : 'show');\r\n    setTxtShow(value ? 'true' : 'false');\r\n  };\r\n  const renderSelectedComponent = (): React.ReactNode => {\r\n    switch (component) {\r\n      // case 'Constant':\r\n      //   return <Constant ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\r\n      case 'ConstantTxt':\r\n        return <ConstantTxt ref={parentRef} initialRange={initialRange} divisor={divisor} ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\r\n      case 'Stair':\r\n        return <Stair setShowNotesPar={setShowNotesPar} setMaxLyricCount={setMaxLyricCount} initialRange={initialRange} divisor={divisor} txtShow={txtShow} playLyricCount={playLyricCount} setPlayingPause={setPlayingPause} isRetry={isRetry} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\r\n      case 'Fixed':\r\n        return <Fixed setMaxLyricCount={setMaxLyricCount} setIsListen={setIsListen} isListen={isListen} initialRange={initialRange} divisor={divisor} setPlayingPause={setPlayingPause} isRetry={isRetry} onAudioSrcChange={handleAudioSrc} setBaseFilenames={setBaseFilenames} onPlayLyricCountChange={handlePlayLyricCountChange} syllableCount={syllableCount} gender={gender} genderName={genderName} COLORS={COLORS} showNotesPar={showNotesPar} playLyricCount={playLyricCount} size={size} config={config} isPlaying={isPlaying} />;\r\n      case 'Heteronym':\r\n        return <Heteronym setMaxLyricCount={setMaxLyricCount} initialRange={initialRange} divisor={divisor} txtShow={txtShow} playLyricCount={playLyricCount} setPlayingPause={setPlayingPause} isRetry={isRetry} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} heteronymFile={heteronymFilenames} />;\r\n      default:\r\n        return <span>Canvas: Picture</span>;\r\n    }\r\n  }\r\n  const MainButtons = (): React.ReactNode => {\r\n    return (\r\n      <Flex justify=\"center\" wrap=\"wrap\" gap=\"small\">\r\n\r\n        <Tooltip title=\"Retry\">\r\n          <Button onClick={() => setIsRetry(!isRetry)} shape=\"circle\" icon={<RedoOutlined />} />\r\n        </Tooltip>\r\n        {/* <ReactAudioPlayer\r\n          className=\"audio-player-hidden\"\r\n          src={audioSrcFromChild}\r\n          ref={audioPlayer}\r\n        /> */}\r\n\r\n        <AudioPlayer    \r\n        autoPlayAfterSrcChange={false}\r\n        src={audioSrcFromChild} \r\n        ref={audioPlayerNew}\r\n        style={{display: 'none'}}\r\n        />\r\n        {showListen &&\r\n          <Tooltip title=\"Listen\">\r\n            <Button disabled={component !== \"Fixed\"} shape=\"circle\" onClick={playAudio} icon={<CustomerServiceOutlined />} />\r\n          </Tooltip>\r\n        }\r\n\r\n        {\r\n          showNextPre &&\r\n          <Tooltip title=\"Previous\">\r\n            <Button shape=\"circle\" onClick={onChangePrevious} icon={<StepBackwardOutlined />} />\r\n          </Tooltip>\r\n        }\r\n        <Tooltip title={isPlaying ? \"Pause\" : \"Play\"}>\r\n          <Button onClick={onChangePause} shape=\"circle\" icon={isPlaying ? <PauseOutlined /> : <CaretRightOutlined />} />\r\n        </Tooltip>\r\n        {\r\n          showNextPre &&\r\n          <Tooltip title=\"Next\">\r\n            <Button shape=\"circle\" onClick={onChangeNext} icon={<StepForwardOutlined />} />\r\n          </Tooltip>\r\n        }\r\n\r\n      </Flex>\r\n    );\r\n  };\r\n  const renderSelectedComponentLyric = (): React.ReactNode => {\r\n    switch (component) {\r\n\r\n      case 'ConstantTxt':\r\n        return (\r\n          <div className='lyric'>\r\n\r\n            <Space size=\"middle\">\r\n              {MainButtons()}\r\n              <Space.Compact>\r\n\r\n                <Tooltip title=\"Clear existing files and upload new ones\">\r\n                  <Button onClick={ClearTxt}>Clear text</Button>\r\n                </Tooltip>\r\n\r\n                <Upload maxCount={1} {...props}>\r\n                  <Button icon={<UploadOutlined />}>Upload Text/pdf File</Button>\r\n\r\n                </Upload>\r\n\r\n                <Tooltip title=\"Open the Textbox and enter or paste your text\">\r\n                  <Button onClick={() => setIsOpenTextbox(!isOpenTextbox)}>\r\n                    {!isOpenTextbox ? \"Open Textbox\" : \"Close Textbox\"}\r\n                  </Button>\r\n                </Tooltip>\r\n              </Space.Compact>\r\n\r\n            </Space>\r\n            <>\r\n              {isOpenTextbox && fileContent.length === 0 && (\r\n                <TextArea rows={4} placeholder='Enter or paste Text Entry' style={{ height: 40, resize: 'none' }} onKeyDown={changeOnEnter} />\r\n              )\r\n\r\n              }\r\n\r\n            </>\r\n            <ul>\r\n              {fileContent.map((text, index) => {\r\n                const maxIndexToShow = playLyricCount + 2 >= fileContent.length ? fileContent.length - 1 : playLyricCount + 2;\r\n\r\n                const shouldShow = index >= playLyricCount && index <= maxIndexToShow;\r\n                const isNearEnd = fileContent.length - playLyricCount <= 2;\r\n                const startIndex = isNearEnd ? fileContent.length - 3 : playLyricCount;\r\n                const showCondition = index >= startIndex && index <= startIndex + 2;\r\n\r\n                return (\r\n                  showCondition && (\r\n                    <li key={index} className={playLyricCount === index ? 'highlighted' : ''}>{text}</li>\r\n                  )\r\n                );\r\n              })}\r\n            </ul>\r\n          </div>\r\n        )\r\n      case 'Stair':\r\n        return (\r\n          <div className='lyric'>\r\n            <Flex align=\"center\" gap=\"middle\">\r\n              {MainButtons()}\r\n              <Switch defaultChecked checkedChildren=\"show\" unCheckedChildren=\"hide\" onChange={onChangeStairSwitch} />\r\n\r\n            </Flex>\r\n            {(() => {\r\n              if (txtShow === 'true') {\r\n                return (\r\n                  <ul>\r\n                    {renderTruncatedFilenames(stairFilenames)}\r\n                  </ul>\r\n                );\r\n              }\r\n              return null;\r\n            })()}\r\n\r\n          </div>\r\n        )\r\n      case 'Heteronym':\r\n        return (\r\n          <div className='lyric'>\r\n            {MainButtons()}\r\n            {(() => {\r\n              if (txtShow === 'true') {\r\n                return (\r\n                  <ul>\r\n                    {renderTruncatedFilenames(heteronymFilenames)}\r\n                  </ul>\r\n                );\r\n              }\r\n              return null;\r\n            })()}\r\n\r\n          </div>\r\n        )\r\n      case 'Fixed':\r\n        return (\r\n          <div className='lyric'>\r\n            {MainButtons()}\r\n            <ul>\r\n              {renderTruncatedFilenames(baseFilenames)}\r\n            </ul>\r\n          </div>\r\n        )\r\n      default:\r\n        return <span>Canvas: Picture</span>;\r\n    }\r\n  }\r\n  useEffect(() => {\r\n    if (component == \"ConstantTxt\" && fileContent.length === 0) {\r\n      setShowNextPre(false);\r\n      setShowListen(false);\r\n    } else if (component == \"ConstantTxt\" && fileContent.length != 0) {\r\n      setShowNextPre(true);\r\n      setShowListen(false);\r\n    }\r\n    else if (component == \"Fixed\") {\r\n      setShowNextPre(true);\r\n      setShowListen(true);\r\n    } else if (component == \"Stair\") {\r\n      setShowNextPre(true);\r\n      setShowListen(false);\r\n    } else if (component == \"Heteronym\") {\r\n      setShowNextPre(true);\r\n      setShowListen(false);\r\n    } else {\r\n      setShowNextPre(true);\r\n      setShowListen(false);\r\n    }\r\n  }\r\n    , [component, fileContent]);\r\n\r\n  // Options Changing functions\r\n  const onChangeRange = (rangeValue: number[]) => {\r\n    setInitialRange([rangeValue[0], rangeValue[1]]);\r\n  }\r\n  const onChangePosition = (positionValue: number) => {\r\n    setBallPosition(positionValue);\r\n  }\r\n  const onChangeSpeed = (speedValue: number) => {\r\n    const mappedValue = Math.round((speedValue * 20) + 4);\r\n    setDivisor(mappedValue);\r\n  }\r\n  const onChangeHz = ({ target: { value } }: RadioChangeEvent) => {\r\n    console.log(value);\r\n    if (value === 'hz') {\r\n      setShowNotesPar(false);\r\n    } else {\r\n      setShowNotesPar(true);\r\n    }\r\n  }\r\n  const EnableVoluneMode = (e: boolean) => {\r\n    console.log(e);\r\n    if (e) {\r\n      setEnableVol(true);\r\n\r\n    } else {\r\n      setEnableVol(false);\r\n\r\n    }\r\n  }\r\n\r\n  // Button functions\r\n  const onChangePause = () => {\r\n    setIsPlaying(!isPlaying);\r\n  }\r\n  const onChangePrevious = () => {\r\n    const tem = playLyricCount;\r\n    if (tem <= 0) {\r\n      setPlayLyricCount(0);\r\n    } else {\r\n      setPlayLyricCount(tem - 1);\r\n    }\r\n  };\r\n  const onChangeNext = () => {\r\n    const tem = playLyricCount;\r\n    if (tem >= maxLyricCount) {\r\n      setPlayLyricCount(maxLyricCount);\r\n    } else {\r\n      setPlayLyricCount(tem + 1);\r\n    }\r\n  };\r\n\r\n  // tooltips\r\n  const onChangeThreshold = (e: number) => { setThreshold(e); };\r\n  const formatterdB = (value: number | undefined) => `${value} dB`;\r\n  const formatterHz = (value: number | undefined) => `${value} Hz`;\r\n  const formatterPos = (value: number | undefined) => `${value ? (value * 100).toFixed(0) : '0'}%`;\r\n\r\n  // onChangeCollapse\r\n  const onChangeCollapse = (e:string | string[]) => {\r\n    console.log(e);\r\n    if (Array.isArray(e)) {\r\n      setSelectedNum(e);\r\n    } else {\r\n      setSelectedNum([e]); \r\n    }\r\n  }\r\n  return (\r\n    <Row>\r\n      <Col span={24}>\r\n        <Layout className=\"layoutSample\">\r\n\r\n          <Content >\r\n\r\n            <Flex align=\"center\" justify=\"center\" gap=\"middle\" vertical>\r\n\r\n              <div style={{ marginTop: \"2vw\" }}>\r\n                <ConfigProvider\r\n                  theme={{\r\n                    token: {\r\n                      colorPrimary: \"rgb(132, 118, 171)\",\r\n                      borderRadius: 0,\r\n                    },\r\n                  }}\r\n                >\r\n\r\n                  <Space size=\"middle\">\r\n                    <Space.Compact>\r\n\r\n                      <Tooltip title=\"\">\r\n                        <Button type={component === \"ConstantTxt\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\r\n                          CONSTANT\r\n                        </Button>\r\n                      </Tooltip>\r\n\r\n                      <Tooltip title=\"\">\r\n                        <Button type={component === \"Stair\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\r\n                          STAIR\r\n                        </Button>\r\n                      </Tooltip>\r\n\r\n                      <Tooltip title=\"\">\r\n                        <Button type={component === \"Heteronym\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\r\n                          HETERONYMS\r\n                        </Button>\r\n                      </Tooltip>\r\n\r\n                      <Dropdown menu={{ items: itemsSyllable }} placement=\"bottom\">\r\n                        <Button type={component === \"Fixed\" ? \"primary\" : \"default\"}>\r\n                          {syllableCount === \"none\" ? 'HUMAN CURVE' : syllableCount + ' SYLLABLE'}\r\n                        </Button>\r\n                      </Dropdown>\r\n                    </Space.Compact>\r\n\r\n                  </Space>\r\n\r\n                </ConfigProvider>\r\n\r\n              </div>\r\n              {shortDescription(component)}\r\n\r\n\r\n\r\n              <div style={{ width: \"100%\" }}>\r\n                {renderSelectedComponent()}\r\n              </div>\r\n\r\n\r\n              <Flex vertical justify=\"center\" wrap=\"wrap\" gap=\"small\" ref={ref2} >\r\n                {renderSelectedComponentLyric()}\r\n              </Flex>\r\n              <Tooltip title=\"Setting\">\r\n                <FloatButton style={{\r\n                  width: 50,\r\n                  height: 50,\r\n                  right: 15,\r\n                  display: 'flex',\r\n                  alignItems: 'center',\r\n                  justifyContent: 'center'\r\n                }} onClick={() => setOpenSetting(true)} ref={ref3} icon={<SettingOutlined />} />\r\n              </Tooltip>\r\n\r\n              <Tooltip title=\"Tour\">\r\n                <FloatButton style={{\r\n                  width: 50,\r\n                  height: 50,\r\n                  right: 90,\r\n                  display: 'flex',\r\n                  alignItems: 'center',\r\n                  justifyContent: 'center'\r\n                }} onClick={handleBeginTour} icon={<QuestionOutlined />} />\r\n              </Tooltip>\r\n\r\n              <Image\r\n                preview={false}\r\n                src={divide_1}\r\n                style={{ width: '100%' }}\r\n              />\r\n              <Typography\r\n                style={{\r\n                  width: \"100%\", paddingLeft: \"30px\", paddingRight: \"40px\",\r\n                }}>\r\n                <Typography.Title id=\"part-1\" level={2} style={{ margin: 0 }}>\r\n                  How to use\r\n                </Typography.Title>\r\n                <Collapse \r\n                activeKey={selectedNum} \r\n                // accordion\r\n                onChange={onChangeCollapse}\r\n                // defaultActiveKey={selectedNum} \r\n                ghost \r\n                items={items_3} />\r\n              </Typography>\r\n            </Flex>\r\n\r\n            {/* <Modal\r\n              title=\"Settings\"\r\n              open={isModalOpen}\r\n              className='AvatarModal'\r\n              onCancel={() => setIsModalOpen(false)}\r\n              footer={null}\r\n            >\r\n              <div style={{ textAlign: 'center' }}>\r\n                <Avatar size={64} icon={<UserOutlined />} />\r\n                <p>Jane Smith</p>\r\n\r\n                <Menu disabledOverflow={true}\r\n                  onClick={onClickMenu}\r\n                  style={{ justifyContent: \"center\" }}\r\n                  mode=\"horizontal\"\r\n                  selectedKeys={[selectedItem]}\r\n                  items={itemsMenu} />\r\n\r\n              </div>\r\n              {renderContent()}\r\n\r\n            </Modal> */}\r\n\r\n            <Drawer title=\"Options\" placement=\"right\" onClose={() => setOpenSetting(false)} open={openSetting} width={430}>\r\n              <Flex vertical gap=\"middle\">\r\n                {/* <Space>\r\n                  <p># Model Selection: </p>\r\n                  <Dropdown menu={{ items: itemsAvatar, selectable: true }} placement=\"bottom\">\r\n                    <Button>{genderName === \"none\" ? \"Model Voice\" : gender === \"Female\" ? genderName : 'Male01'}</Button>\r\n                  </Dropdown>\r\n                </Space> */}\r\n\r\n                {/* <Space>\r\n                  <p># Exercise Selection: </p>\r\n                </Space>\r\n                <Space>\r\n\r\n                  <Button onClick={handleStairAndConstantClick}>Constant</Button>\r\n\r\n                  <Button onClick={handleStairAndConstantClick}>Stair</Button>\r\n\r\n                  <Button onClick={handleStairAndConstantClick}> Heteronym </Button>\r\n\r\n                  <Dropdown menu={{ items: itemsSyllable }} placement=\"bottom\">\r\n                    <Button>{syllableCount === \"none\" ? 'Human Curve' : syllableCount + ' syllable'}</Button>\r\n                  </Dropdown>\r\n\r\n                </Space> */}\r\n\r\n                <Space>\r\n                  <p># Coordinate Display Mode</p>\r\n                  <Radio.Group onChange={onChangeHz} value={showNotesPar ? 'notes' : 'hz'} defaultValue=\"notes\" buttonStyle=\"solid\">\r\n                    <Radio.Button value=\"hz\"> Hz </Radio.Button>\r\n                    <Radio.Button value=\"notes\">Notes</Radio.Button>\r\n                  </Radio.Group>\r\n                  <br />\r\n                </Space>\r\n\r\n                <div>\r\n                  <p># Pitch Display Range</p>\r\n                  <Slider\r\n                    range\r\n                    step={10}\r\n                    min={50}\r\n                    max={600}\r\n                    onChange={onChangeRange}\r\n                    tooltip={{\r\n                      formatter: formatterHz,\r\n                    }}\r\n                    marks={marksRange}\r\n                    defaultValue={[100, 300]} />\r\n                </div>\r\n\r\n                {component !== \"Fixed\" && component !== \"Stair\" && component !== \"Heteronym\" && (\r\n                  <div>\r\n                    <p># Pitch Indicator Horizontal Position</p>\r\n                    <Slider\r\n                      step={0.1}\r\n                      min={0}\r\n                      max={1}\r\n                      onChange={onChangePosition}\r\n                      tooltip={{\r\n                        formatter: formatterPos,\r\n                      }}\r\n                      defaultValue={0.5}\r\n                      marks={marksBallPos}\r\n                    />\r\n                  </div>\r\n                )}\r\n\r\n                <div>\r\n                  <p># Pitch Indicator Speed</p>\r\n                  <Slider\r\n                    step={0.05}\r\n                    min={0}\r\n                    max={1}\r\n                    onChange={onChangeSpeed}\r\n                    defaultValue={0.3}\r\n                    tooltip={{ formatter: null }}\r\n                  />\r\n                </div>\r\n\r\n                <div>\r\n                  <Space>\r\n                    <p># Auto-Start When Voice Detected</p>\r\n                    <Switch defaultChecked={false} onChange={EnableVoluneMode} />\r\n                  </Space>\r\n\r\n                  {enableVol &&\r\n                    <Slider\r\n                      step={1}\r\n                      min={50}\r\n                      max={90}\r\n                      onChange={onChangeThreshold}\r\n                      tooltip={{\r\n                        formatter: formatterdB,\r\n                      }}\r\n                      defaultValue={70}\r\n                      marks={marksVol}\r\n                    />\r\n                  }\r\n                </div>\r\n\r\n                <br />\r\n                <Button onClick={onClose}>Close</Button>\r\n              </Flex>\r\n            </Drawer>\r\n            <Tour open={openTour} onClose={() => setOpenTour(false)} steps={steps} />\r\n          </Content>\r\n        </Layout>\r\n\r\n      </Col>\r\n    </Row>\r\n\r\n    // </div>\r\n  );\r\n}\r\n\r\nexport default Sample;\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}