{"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, Menu, Dropdown, Avatar } 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 { Modal } from 'antd';\nimport ConstantTxt from '../Canvas/ConstantTxt';\nimport Fixed from '../Canvas/Fixed';\nimport Stair from '../Canvas/Stair';\nimport Heteronym from '../Canvas/Heteronym';\nimport ReactAudioPlayer from 'react-audio-player';\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 { UserOutlined } from '@ant-design/icons';\nimport { QuestionOutlined } from '@ant-design/icons';\nimport { useTemString } from '../hooks/useTemString';\n// @ts-ignore\nimport pdfToText from 'react-pdftotext';\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  isModalOpen,\n  setIsModalOpen,\n  showModal,\n  handleCancel\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 [isListen, setIsListen] = useState(1);\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(\"Female\");\n  const [genderName, setGenderName] = useState(\"Fem01\");\n  const [syllableCount, setSyllableCount] = useState(\"none\");\n  const [baseFilenames, setBaseFilenames] = useState([]);\n  const [fileContent, setFileContent] = useState([]);\n\n  // auido\n  const audioPlayer = useRef(null);\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState('');\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: 187,\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: 192,\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: 194,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                  value: \"notes\",\n                  children: \"Notes\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 195,\n                  columnNumber: 17\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 193,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 197,\n                columnNumber: 15\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 191,\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: 201,\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: 202,\n                columnNumber: 15\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 200,\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: 218,\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: 219,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 217,\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: 235,\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: 236,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 234,\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: 251,\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: 252,\n                columnNumber: 15\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 250,\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: 264,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(Switch, {\n                  defaultChecked: false,\n                  onChange: EnableVoluneMode\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 265,\n                  columnNumber: 17\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 263,\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: 269,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 262,\n              columnNumber: 13\n            }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 284,\n              columnNumber: 13\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: onClose,\n              children: \"Close\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 285,\n              columnNumber: 13\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 190,\n            columnNumber: 11\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 189,\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: 290,\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().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: 421,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Retry: Clear display and restart.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 422,\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: 423,\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: 424,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 420,\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    } else if (e.target.innerText === \"Stair\" || e.target.innerText === \"STAIR\") {\n      setComponent(\"Stair\");\n    } else {\n      setComponent(\"Heteronym\");\n    }\n    setSyllableCount(\"none\");\n  };\n  const saveGender = e => {\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    }\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: 497,\n        columnNumber: 11\n      }, this);\n    });\n  };\n  const handlePlayLyricCountChange = newCount => {\n    setPlayLyricCount(newCount);\n  };\n  const itemsMale = [{\n    key: 'male',\n    label: \"Male01\",\n    onClick: saveGender\n  }];\n  const itemsFemale = [{\n    key: 'Female-Fem01',\n    label: \"Fem01\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem02',\n    label: \"Fem02\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem03',\n    label: \"Fem03\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem04',\n    label: \"Fem04\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem05',\n    label: \"Fem05\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem06',\n    label: \"Fem06\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem07',\n    label: \"Fem07\",\n    onClick: saveGender\n  }];\n  const itemsAvatar = [{\n    key: '1',\n    label: 'Male',\n    children: [...itemsMale]\n  }, {\n    key: '2',\n    label: 'Female',\n    children: [...itemsFemale]\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: 607,\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: 609,\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: 611,\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: 613,\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: 615,\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: 623,\n            columnNumber: 77\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 623,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 622,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(ReactAudioPlayer, {\n        className: \"audio-player-hidden\",\n        src: audioSrcFromChild,\n        ref: audioPlayer\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 625,\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: 632,\n            columnNumber: 95\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 632,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 631,\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: 639,\n            columnNumber: 69\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 639,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 638,\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: 643,\n            columnNumber: 76\n          }, this) : /*#__PURE__*/_jsxDEV(CaretRightOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 643,\n            columnNumber: 96\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 643,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 642,\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: 648,\n            columnNumber: 65\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 648,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 647,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 620,\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: 667,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 666,\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: 671,\n                    columnNumber: 33\n                  }, this),\n                  children: \"Upload Text/pdf File\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 671,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 670,\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: 676,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 675,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 664,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 662,\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: 685,\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: 702,\n                columnNumber: 21\n              }, this);\n            })\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 691,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 660,\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: 714,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 712,\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: 720,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 711,\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: 737,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 732,\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: 751,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 749,\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: 757,\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    console.log(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  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: [shortDescription(component), /*#__PURE__*/_jsxDEV(\"div\", {\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: 872,\n                        columnNumber: 19\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 871,\n                      columnNumber: 17\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: 878,\n                        columnNumber: 17\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 877,\n                      columnNumber: 17\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: 884,\n                        columnNumber: 17\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 883,\n                      columnNumber: 17\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: 890,\n                        columnNumber: 17\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 889,\n                      columnNumber: 17\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 869,\n                    columnNumber: 15\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 868,\n                  columnNumber: 15\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 859,\n                columnNumber: 15\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 858,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n              style: {\n                width: \"100%\"\n              },\n              children: renderSelectedComponent()\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 901,\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: 906,\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: 917,\n                  columnNumber: 74\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 910,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 909,\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: 928,\n                  columnNumber: 52\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 921,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 920,\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: 931,\n              columnNumber: 7\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: 940,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Collapse, {\n                defaultActiveKey: ['2'],\n                ghost: true,\n                items: items_3\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 943,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 936,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 849,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(Modal, {\n            title: \"Settings\",\n            open: isModalOpen,\n            className: \"AvatarModal\",\n            onCancel: () => setIsModalOpen(false),\n            footer: null,\n            children: [/*#__PURE__*/_jsxDEV(\"div\", {\n              style: {\n                textAlign: 'center'\n              },\n              children: [/*#__PURE__*/_jsxDEV(Avatar, {\n                size: 64,\n                icon: /*#__PURE__*/_jsxDEV(UserOutlined, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 955,\n                  columnNumber: 41\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 955,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n                children: \"Jane Smith\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 956,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Menu, {\n                disabledOverflow: true,\n                onClick: onClickMenu,\n                style: {\n                  justifyContent: \"center\"\n                },\n                mode: \"horizontal\",\n                selectedKeys: [selectedItem],\n                items: itemsMenu\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 958,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 954,\n              columnNumber: 15\n            }, this), renderContent()]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 947,\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: \"# Model Selection: \"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 973,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Dropdown, {\n                  menu: {\n                    items: itemsAvatar,\n                    selectable: true\n                  },\n                  placement: \"bottom\",\n                  children: /*#__PURE__*/_jsxDEV(Button, {\n                    children: genderName === \"none\" ? \"Model Voice\" : gender === \"Female\" ? genderName : 'Male01'\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 975,\n                    columnNumber: 21\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 974,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 972,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Space, {\n                children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                  children: \"# Coordinate Display Mode\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 997,\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: 999,\n                    columnNumber: 21\n                  }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                    value: \"notes\",\n                    children: \"Notes\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 1000,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 998,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1002,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 996,\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: 1006,\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: 1007,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1005,\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: 1022,\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: 1023,\n                  columnNumber: 21\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1021,\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: 1038,\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: 1039,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1037,\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: 1051,\n                    columnNumber: 21\n                  }, this), /*#__PURE__*/_jsxDEV(Switch, {\n                    defaultChecked: false,\n                    onChange: EnableVoluneMode\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 1052,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1050,\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: 1056,\n                  columnNumber: 21\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1049,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 1070,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Button, {\n                onClick: onClose,\n                children: \"Close\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 1071,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 971,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 970,\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: 1074,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 847,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 845,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 844,\n      columnNumber: 7\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 843,\n    columnNumber: 5\n  }, this)\n\n  // </div>\n  ;\n};\n_s(Sample, \"+9zO5kuGVbx0oqDXilnqHxToAMc=\", 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","Menu","Dropdown","Avatar","Drawer","Radio","RedoOutlined","PauseOutlined","StepForwardOutlined","StepBackwardOutlined","Tooltip","FloatButton","Space","Switch","Modal","ConstantTxt","Fixed","Stair","Heteronym","ReactAudioPlayer","UploadOutlined","message","Upload","hark","useLocation","Typography","Collapse","Image","divide_1","UserOutlined","QuestionOutlined","useTemString","pdfToText","jsxDEV","_jsxDEV","Fragment","_Fragment","TextArea","Title","Paragraph","Text","Link","Content","marksRange","marksBallPos","marksVol","itemsMenu","label","key","Sample","isModalOpen","setIsModalOpen","showModal","handleCancel","_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","isListen","setIsListen","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","gender","setGender","genderName","setGenderName","syllableCount","setSyllableCount","baseFilenames","setBaseFilenames","fileContent","setFileContent","audioPlayer","audioSrcFromChild","setAudioSrcFromChild","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","audioEl","play","navigator","mediaDevices","getUserMedia","audio","video","stream","harkInstance","on","stop","steps","title","description","placement","cover","style","textAlign","queryParams","URLSearchParams","search","init","get","handleStairAndConstantClick","innerText","saveGender","genderType","genderNameType","handleMenuClick","componentType","syllableCountType","tt","renderTruncatedFilenames","filenames","index","isNearEnd","startIndex","showCondition","className","handlePlayLyricCountChange","newCount","itemsMale","itemsFemale","itemsAvatar","itemsSyllable","onChangeStairSwitch","renderSelectedComponent","ref","onAudioSrcChange","onPlayLyricCountChange","heteronymFile","MainButtons","justify","wrap","shape","icon","src","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","span","theme","token","colorPrimary","borderRadius","menu","items","width","right","display","alignItems","justifyContent","preview","paddingLeft","paddingRight","id","level","margin","defaultActiveKey","ghost","open","onCancel","footer","disabledOverflow","mode","selectedKeys","selectable","_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\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  isModalOpen: boolean;\r\n  showModal: () => void;\r\n  handleCancel: () => void;\r\n  setIsModalOpen: (boolean: boolean) => void;\r\n}\r\n\r\nconst Sample: React.FC<SampleProps> = ({ isModalOpen, setIsModalOpen, showModal, handleCancel }) => {\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 [isListen, setIsListen] = useState<number>(1);\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\r\n  // auido\r\n  const audioPlayer = useRef<ReactAudioPlayer>(null);\r\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState<string>('');\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    if (audioPlayer.current && audioPlayer.current.audioEl.current) {\r\n      audioPlayer.current.audioEl.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    } else if (e.target.innerText === \"Stair\"|| e.target.innerText === \"STAIR\" ) {\r\n      setComponent(\"Stair\");\r\n    } else {\r\n      setComponent(\"Heteronym\");\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    }\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        {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    console.log(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  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              \r\n              {/* <div className=\"currentSelection blueFont\">\r\n                <p>{currentSelection} Exercise</p>\r\n              </div> */}\r\n              {shortDescription(component)}\r\n      \r\n      \r\n              <div>\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              <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 defaultActiveKey={['2']} ghost 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":[]}