{"ast":null,"code":"var _jsxFileName = \"/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/src/Route/Sample.tsx\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect, useRef } from 'react';\nimport { Button, Flex } from 'antd';\nimport { SettingOutlined, CustomerServiceOutlined } from '@ant-design/icons';\nimport { Col, Row, Tour, ConfigProvider } from 'antd';\nimport { CaretRightOutlined } from '@ant-design/icons';\nimport { Slider, Input } from 'antd';\nimport { Layout, Dropdown } from 'antd';\nimport { Drawer, Radio } from 'antd';\nimport { RedoOutlined, PauseOutlined, StepForwardOutlined, StepBackwardOutlined } from '@ant-design/icons';\nimport { Tooltip, FloatButton, Space, Switch } from 'antd';\nimport '../CSS/sample.css';\nimport ConstantTxt from '../Canvas/ConstantTxt';\nimport Fixed from '../Canvas/Fixed';\nimport Stair from '../Canvas/Stair';\nimport Heteronym from '../Canvas/Heteronym';\nimport { UploadOutlined } from '@ant-design/icons';\nimport { message, Upload } from 'antd';\nimport hark from 'hark';\nimport { useLocation } from 'react-router-dom';\nimport { Typography } from 'antd';\nimport { Collapse } from 'antd';\nimport { Image } from 'antd';\nimport divide_1 from '../icon/Divider2-half.png';\nimport { QuestionOutlined } from '@ant-design/icons';\nimport { useTemString } from '../hooks/useTemString';\n// @ts-ignore\nimport pdfToText from 'react-pdftotext';\nimport AudioPlayer from 'react-h5-audio-player';\nimport { createFromIconfontCN } from '@ant-design/icons';\nimport { useOptionsHooks } from '../hooks/useOptionsHooks';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst PlayIcon = createFromIconfontCN({\n  scriptUrl: '//at.alicdn.com/t/c/font_4566050_zpduwnlv2t.js'\n});\n_c = PlayIcon;\nconst {\n  TextArea\n} = Input;\nconst {\n  Title,\n  Paragraph,\n  Text,\n  Link\n} = Typography;\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 Sample = ({\n  genderName,\n  gender,\n  setGender,\n  audioKey,\n  audioSrc,\n  fetchAudioData,\n  handleIconClick,\n  itemsAvatar\n}) => {\n  _s();\n  const {\n    // gender,\n    // setGender,\n    // genderName,\n    audioPlayerNew\n    // audioKey,\n    // audioSrc,\n\n    // fetchAudioData,\n\n    // handleIconClick,\n    // itemsAvatar\n  } = useOptionsHooks();\n\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, setCOLORS] = useState({\n    realVoiceColor: '#d679de',\n    targetVoiceColor: '#4669C8',\n    closeVoiceColor: '#15dbcc'\n  });\n  const [COLORSMode, setCOLORSMode] = useState(\"de\");\n  // const COLORS = {\n  //   realVoiceColor: '#d679de', // red\n  //   targetVoiceColor: '#4669C8', // blue\n  //   closeVoiceColor: '#15dbcc', // yellow\n  // };\n\n  // open/close \n  const [openSetting, setOpenSetting] = useState(false);\n  const [txtShow, setTxtShow] = useState(\"true\");\n  const [txtShowSwitch, setTxtShowSwitch] = useState('show');\n  const [openTour, setOpenTour] = useState(false);\n  const [isPlaying, setIsPlaying] = useState(true);\n  const [isRetry, setIsRetry] = useState(false);\n  const [enableVol, setEnableVol] = useState(false);\n  const [isOpenTextbox, setIsOpenTextbox] = useState(false);\n  const [showNextPre, setShowNextPre] = useState(false);\n  const [showListen, setShowListen] = useState(false);\n\n  // special vatiables\n  const location = useLocation();\n  const ref12 = useRef(null);\n  const ref1 = useRef(null);\n  const ref2 = useRef(null);\n  const ref3 = useRef(null);\n  const parentRef = useRef(null);\n\n  // initial Value\n  const [volume, setVolume] = useState(0);\n  const [threshold, setThreshold] = useState(70);\n  const [maxLyricCount, setMaxLyricCount] = useState(2);\n  const [playLyricCount, setPlayLyricCount] = useState(0);\n  const [divisor, setDivisor] = useState(10);\n  const [ballPosition, setBallPosition] = useState(0.5);\n\n  // Hz/Notes\n  const [showNotesPar, setShowNotesPar] = useState(false);\n\n  // selected choice\n  const [component, setComponent] = useState(\"ConstantTxt\");\n  const [currentSelection, setCurrentSelection] = useState('Constant');\n  // const [gender, setGender] = useState<string>(\"Female\");\n  // const [genderName, setGenderName] = useState<string>(\"Fem01\");\n  const [syllableCount, setSyllableCount] = useState(\"none\");\n  const [baseFilenames, setBaseFilenames] = useState([]);\n  const [fileContent, setFileContent] = useState([]);\n  const [selectedNum, setSelectedNum] = useState([\"2\"]);\n\n  // auido\n  const audioPlayer = useRef(null);\n  // const audioPlayerNew = useRef<AudioPlayer>(null);\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState('');\n  const [isListen, setIsListen] = useState(1);\n\n  // profile (Need to rebuild)\n  const [selectedItem, setSelectedItem] = useState('Settings');\n\n  // \n  const setPlaying = () => {\n    setIsPlaying(true);\n  };\n  const setPlayingPause = () => {\n    setIsPlaying(false);\n  };\n  const handleBeginTour = () => {\n    setOpenTour(true);\n  };\n  const onClickMenu = e => {\n    setSelectedItem(e.key);\n  };\n  const onClose = () => {\n    setOpenSetting(false);\n  };\n  const ClearTxt = () => {\n    setFileContent([]);\n    setMaxLyricCount(1);\n  };\n\n  // Constant Page upload and input\n  const handleTextInput = e => {\n    const content = e.target.value;\n    const separators = /[;,./\\n]/;\n    const splitContent = content.split(separators).map(s => s.trim()).filter(Boolean);\n    console.log(splitContent);\n    setFileContent(splitContent);\n    setMaxLyricCount(splitContent.length - 1);\n    setPlayLyricCount(0);\n  };\n  const props = {\n    name: 'file',\n    accept: '.txt, .pdf',\n    beforeUpload: file => {\n      if (file.type !== 'text/plain' && file.type !== 'application/pdf') {\n        message.error(`${file.name} is not a valid text/pdf file.`);\n        return false;\n      }\n      if (file.type === 'application/pdf') {\n        pdfToText(file).then(text => {\n          const separators = /[;,./\\n]/;\n          const splitContent = text.split(separators).map(s => s.trim()).filter(Boolean);\n          console.log(splitContent);\n          setFileContent(splitContent);\n          setMaxLyricCount(splitContent.length - 1);\n          setPlayLyricCount(0);\n        }).catch(error => {\n          // Explicitly specify the type of 'error' parameter as 'any'\n          message.error('Error reading PDF file:', error);\n        });\n        return false;\n      }\n      if (file.type === 'text/plain') {\n        const reader = new FileReader();\n        reader.onload = e => {\n          var _e$target;\n          if ((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.result) {\n            const content = e.target.result;\n            // const separators = /[;,./]/;\n            const separators = /[;,./\\n]/;\n            const splitContent = content.split(separators).map(s => s.trim()).filter(Boolean);\n            console.log(splitContent);\n            setFileContent(splitContent);\n            setMaxLyricCount(splitContent.length - 1);\n            setPlayLyricCount(0);\n          }\n        };\n        reader.readAsText(file);\n        return false;\n      }\n    },\n    onChange(info) {\n      if (info.file.status === 'done') {\n        message.success(`${info.file.name} file read successfully`);\n      } else if (info.file.status === 'error') {\n        message.error(`${info.file.name} file read failed.`);\n      }\n    }\n  };\n  const changeOnEnter = e => {\n    if (e.key === 'Enter' && !e.shiftKey) {\n      console.log(\"Enter Key Pressed!\");\n      handleTextInput(e);\n    }\n  };\n\n  // audio\n  const handleAudioSrc = newAudioSrc => {\n    setAudioSrcFromChild(newAudioSrc);\n  };\n  const playAudio = () => {\n    // if (audioPlayer.current && audioPlayer.current.audioEl.current) {\n    // audioPlayer.current.audioEl.current.play()\n    if (audioPlayerNew.current && audioPlayerNew.current.audio.current) {\n      audioPlayerNew.current.audio.current.play().then(() => {\n        setIsListen(isListen + 1);\n      }).catch(error => {\n        console.error('Fail play audios: ', error);\n      });\n    }\n  };\n\n  // options audio\n  useEffect(() => {\n    fetchAudioData();\n  }, [genderName]);\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: 'Pitch Exercises',\n    description: 'Switch between different exercises',\n    placement: 'top',\n    target: () => ref12.current\n  }, {\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: 348,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Retry: Clear display and restart.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 349,\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: 350,\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: 351,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 347,\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: 'Adjust settings such as the pitch display range.',\n    target: () => ref3.current\n  }];\n  useEffect(() => {\n    const queryParams = new URLSearchParams(location.search);\n    const init = queryParams.get('init');\n    if (init === 'true') {\n      handleBeginTour();\n    }\n  }, [location]);\n\n  // Options of different Exercise \n  const handleStairAndConstantClick = e => {\n    setPlayLyricCount(0);\n    setCurrentSelection(e.target.innerText);\n    console.log(e.target.innerText);\n    if (e.target.innerText === \"Constant\" || e.target.innerText === \"CONSTANT\") {\n      setComponent(\"ConstantTxt\");\n      setSelectedNum([\"2\"]);\n    } else if (e.target.innerText === \"Stair\" || e.target.innerText === \"STAIR\") {\n      setComponent(\"Stair\");\n      setSelectedNum([\"3\"]);\n    } else {\n      setComponent(\"Heteronym\");\n      setSelectedNum([\"4\"]);\n    }\n    setSyllableCount(\"none\");\n  };\n  // const saveGender = (e: any) => {\n  //   const [genderType, genderNameType] = e.key.split('-');\n  //   setGender(genderType);\n  //   setGenderName(genderNameType);\n  //   console.log(genderType);\n  //   console.log('genderName', genderName)\n  // }\n  const handleMenuClick = e => {\n    setPlayLyricCount(0);\n    const [componentType, genderType, syllableCountType] = e.key.split('-');\n    if (componentType == \"Constant\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"ConstantTxt\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"Stair\") {\n      setCurrentSelection(\"Staircase\");\n    } else {\n      let tt = \"Syllables \" + syllableCountType;\n      setCurrentSelection(tt);\n      setSelectedNum([\"5\"]);\n    }\n    setComponent(componentType);\n    setGender(genderType);\n    setSyllableCount(syllableCountType);\n    setCurrentSelection(e.key + \"syllable \" + genderName);\n  };\n  const renderTruncatedFilenames = filenames => {\n    return filenames.map((text, index) => {\n      const isNearEnd = filenames.length - playLyricCount <= 2;\n      const startIndex = isNearEnd ? filenames.length - 3 : playLyricCount;\n      const showCondition = index >= startIndex && index <= startIndex + 2;\n      return showCondition && /*#__PURE__*/_jsxDEV(\"li\", {\n        className: playLyricCount === index ? 'highlighted' : '',\n        children: text\n      }, index, false, {\n        fileName: _jsxFileName,\n        lineNumber: 431,\n        columnNumber: 11\n      }, this);\n    });\n  };\n  const handlePlayLyricCountChange = newCount => {\n    setPlayLyricCount(newCount);\n  };\n\n  /**\n  * Defines the items for the syllable menu based on the gender.\n  * If the gender is 'none', it only includes a single item prompting the user to select an avatar.\n  * Otherwise, it includes multiple items representing the number of syllables, with corresponding click handlers.\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: 482,\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: 484,\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: 486,\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: 488,\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: 490,\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: 498,\n            columnNumber: 77\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 498,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 497,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(AudioPlayer, {\n        autoPlayAfterSrcChange: false,\n        src: audioSrcFromChild,\n        ref: audioPlayerNew,\n        style: {\n          display: 'none'\n        }\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 506,\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: 514,\n            columnNumber: 95\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 514,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 513,\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: 521,\n            columnNumber: 69\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 521,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 520,\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: 525,\n            columnNumber: 76\n          }, this) : /*#__PURE__*/_jsxDEV(CaretRightOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 525,\n            columnNumber: 96\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 525,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 524,\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: 530,\n            columnNumber: 65\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 530,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 529,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 495,\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: 549,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 548,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Upload PDF or .txt file to read during practice\",\n                children: /*#__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: 554,\n                      columnNumber: 35\n                    }, this),\n                    children: \"Upload File\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 554,\n                    columnNumber: 21\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 553,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 552,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Type/Paste text to read during parctice\",\n                children: /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: () => setIsOpenTextbox(!isOpenTextbox),\n                  children: !isOpenTextbox ? \"Enter Text\" : \"Close Textbox\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 558,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 557,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 546,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 544,\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: 567,\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: 584,\n                columnNumber: 21\n              }, this);\n            })\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 573,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 542,\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(Tooltip, {\n              title: \"Show/Hide 5-syllable phrases to read\",\n              children: /*#__PURE__*/_jsxDEV(Switch, {\n                defaultChecked: true,\n                checkedChildren: \"show\",\n                unCheckedChildren: \"hide\",\n                onChange: onChangeStairSwitch\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 598,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 597,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 594,\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: 605,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 593,\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: 622,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 617,\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: 636,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 634,\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: 642,\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 onChangeColor = ({\n    target: {\n      value\n    }\n  }) => {\n    console.log(value);\n    if (value === 'de') {\n      setCOLORSMode(value);\n      setCOLORS({\n        realVoiceColor: '#d679de',\n        targetVoiceColor: '#4669C8',\n        closeVoiceColor: '#15dbcc'\n      });\n    } else {\n      setCOLORSMode(value);\n      setCOLORS({\n        realVoiceColor: '#3399ff',\n        targetVoiceColor: '#ff0000',\n        closeVoiceColor: 'yellow'\n      });\n    }\n  };\n  const EnableVoluneMode = e => {\n    console.log(e);\n    if (e) {\n      setEnableVol(true);\n    } else {\n      setEnableVol(false);\n    }\n  };\n\n  // Button functions\n  const onChangePause = () => {\n    setIsPlaying(!isPlaying);\n  };\n  const onChangePrevious = () => {\n    const tem = playLyricCount;\n    if (tem <= 0) {\n      setPlayLyricCount(0);\n    } else {\n      setPlayLyricCount(tem - 1);\n    }\n  };\n  const onChangeNext = () => {\n    const tem = playLyricCount;\n    if (tem >= maxLyricCount) {\n      setPlayLyricCount(maxLyricCount);\n    } else {\n      setPlayLyricCount(tem + 1);\n    }\n  };\n\n  // tooltips\n  const onChangeThreshold = e => {\n    setThreshold(e);\n  };\n  const formatterdB = value => `${value} dB`;\n  const formatterHz = value => `${value} Hz`;\n  const formatterPos = value => `${value ? (value * 100).toFixed(0) : '0'}%`;\n\n  // onChangeCollapse\n  const onChangeCollapse = e => {\n    console.log(e);\n    if (Array.isArray(e)) {\n      setSelectedNum(e);\n    } else {\n      setSelectedNum([e]);\n    }\n  };\n  return /*#__PURE__*/_jsxDEV(Row, {\n    children: /*#__PURE__*/_jsxDEV(Col, {\n      span: 24,\n      children: /*#__PURE__*/_jsxDEV(Layout, {\n        className: \"layoutSample\",\n        children: /*#__PURE__*/_jsxDEV(Content, {\n          children: [/*#__PURE__*/_jsxDEV(Flex, {\n            align: \"center\",\n            justify: \"center\",\n            gap: \"middle\",\n            vertical: true,\n            children: [/*#__PURE__*/_jsxDEV(\"div\", {\n              style: {\n                marginTop: \"2vw\"\n              },\n              children: /*#__PURE__*/_jsxDEV(ConfigProvider, {\n                theme: {\n                  token: {\n                    colorPrimary: \"rgb(132, 118, 171)\",\n                    borderRadius: 0\n                  }\n                },\n                children: /*#__PURE__*/_jsxDEV(Space, {\n                  size: \"middle\",\n                  ref: ref12,\n                  children: /*#__PURE__*/_jsxDEV(Space.Compact, {\n                    children: [/*#__PURE__*/_jsxDEV(Tooltip, {\n                      title: \"Switch to the Constant exercise\",\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: 778,\n                        columnNumber: 25\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 777,\n                      columnNumber: 23\n                    }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                      title: \"Switch to the Stair exercise\",\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: 784,\n                        columnNumber: 25\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 783,\n                      columnNumber: 23\n                    }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                      title: \"Switch to the Heteronyms exercise\",\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: 790,\n                        columnNumber: 25\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 789,\n                      columnNumber: 23\n                    }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                      title: \"Switch to the Human Curve exercise\",\n                      children: /*#__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: 796,\n                          columnNumber: 27\n                        }, this)\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 795,\n                        columnNumber: 25\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 794,\n                      columnNumber: 23\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 775,\n                    columnNumber: 21\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 774,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 765,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 764,\n              columnNumber: 15\n            }, this), shortDescription(component), /*#__PURE__*/_jsxDEV(\"div\", {\n              style: {\n                width: \"100%\"\n              },\n              children: renderSelectedComponent()\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 815,\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: 820,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(FloatButton, {\n              style: {\n                width: 60,\n                height: 60,\n                right: 15,\n                bottom: 30,\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center'\n              },\n              onClick: () => setOpenSetting(true),\n              ref: ref3,\n              shape: \"square\",\n              description: \"SETTINGS\",\n              icon: /*#__PURE__*/_jsxDEV(SettingOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 837,\n                columnNumber: 23\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 824,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(FloatButton, {\n              style: {\n                width: 60,\n                height: 60,\n                right: 100,\n                bottom: 30,\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center'\n              },\n              shape: \"square\",\n              description: \"TOUR\",\n              onClick: handleBeginTour,\n              icon: /*#__PURE__*/_jsxDEV(QuestionOutlined, {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 854,\n                columnNumber: 23\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 841,\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: 857,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Typography, {\n              style: {\n                width: \"100%\",\n                paddingLeft: \"30px\",\n                paddingRight: \"40px\"\n              },\n              children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n                id: \"part-1\",\n                level: 2,\n                style: {\n                  margin: 0\n                },\n                children: \"How to use\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 866,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Collapse, {\n                activeKey: selectedNum\n                // accordion\n                ,\n                onChange: onChangeCollapse\n                // defaultActiveKey={selectedNum} \n                ,\n                ghost: true,\n                items: items_3\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 869,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 862,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 762,\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: 884,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Dropdown.Button, {\n                  menu: {\n                    items: itemsAvatar\n                  },\n                  placement: \"bottom\",\n                  trigger: [\"click\"],\n                  overlayClassName: \"custom-dropdown\",\n                  buttonsRender: ([leftButton, rightButton]) => [/*#__PURE__*/_jsxDEV(Tooltip, {\n                    children: /*#__PURE__*/_jsxDEV(Button, {\n                      style: {\n                        display: 'flex',\n                        alignItems: 'center'\n                      },\n                      onClick: handleIconClick,\n                      icon: /*#__PURE__*/_jsxDEV(PlayIcon, {\n                        style: {\n                          fontSize: '1.7em'\n                        },\n                        type: \"icon-audioPlay\"\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 900,\n                        columnNumber: 29\n                      }, this),\n                      children: genderName === \"none\" ? \"Model Voice\" : gender === \"Female\" ? genderName : 'Male01'\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 893,\n                      columnNumber: 25\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 892,\n                    columnNumber: 23\n                  }, this), /*#__PURE__*/React.cloneElement(rightButton, {\n                    loading: false\n                  })]\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 886,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 883,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(AudioPlayer, {\n                autoPlayAfterSrcChange: false,\n                src: audioSrc,\n                ref: audioPlayerNew,\n                style: {\n                  display: 'none'\n                },\n                onEnded: () => console.log('audio ended'),\n                onError: e => console.log('audio error', e)\n              }, audioKey, false, {\n                fileName: _jsxFileName,\n                lineNumber: 925,\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: 935,\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: 937,\n                    columnNumber: 21\n                  }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                    value: \"notes\",\n                    children: \"Notes\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 938,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 936,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 940,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 934,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Space, {\n                children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                  children: \"# Pitch Display Color Scheme \"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 944,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(Radio.Group, {\n                  onChange: onChangeColor,\n                  value: COLORSMode === 'co' ? 'co' : 'de',\n                  defaultValue: \"default\",\n                  buttonStyle: \"solid\",\n                  children: [/*#__PURE__*/_jsxDEV(Radio.Button, {\n                    value: \"de\",\n                    children: \"TruVox \"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 946,\n                    columnNumber: 21\n                  }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                    value: \"co\",\n                    children: \"Colorblind\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 947,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 945,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 949,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 943,\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: 953,\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: 954,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 952,\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: 969,\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: 970,\n                  columnNumber: 21\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 968,\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: 985,\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: 986,\n                  columnNumber: 19\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 984,\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: 998,\n                    columnNumber: 21\n                  }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                    title: \"If enabled, an exercise will start if your microphone detects speech. If disabled, you must start exercises manually.\",\n                    children: /*#__PURE__*/_jsxDEV(Switch, {\n                      defaultChecked: false,\n                      onChange: EnableVoluneMode\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 1000,\n                      columnNumber: 23\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 999,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 997,\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: 1007,\n                  columnNumber: 21\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 996,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 1021,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Button, {\n                onClick: onClose,\n                children: \"Close\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 1022,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 881,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 880,\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: 1025,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 760,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 758,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 757,\n      columnNumber: 7\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 756,\n    columnNumber: 5\n  }, this)\n\n  // </div>\n  ;\n};\n_s(Sample, \"knX7njK9DU4vQZw1rhA+/XtUxZI=\", false, function () {\n  return [useOptionsHooks, useTemString, useLocation];\n});\n_c2 = Sample;\nexport default Sample;\nvar _c, _c2;\n$RefreshReg$(_c, \"PlayIcon\");\n$RefreshReg$(_c2, \"Sample\");","map":{"version":3,"names":["React","useState","useEffect","useRef","Button","Flex","SettingOutlined","CustomerServiceOutlined","Col","Row","Tour","ConfigProvider","CaretRightOutlined","Slider","Input","Layout","Dropdown","Drawer","Radio","RedoOutlined","PauseOutlined","StepForwardOutlined","StepBackwardOutlined","Tooltip","FloatButton","Space","Switch","ConstantTxt","Fixed","Stair","Heteronym","UploadOutlined","message","Upload","hark","useLocation","Typography","Collapse","Image","divide_1","QuestionOutlined","useTemString","pdfToText","AudioPlayer","createFromIconfontCN","useOptionsHooks","jsxDEV","_jsxDEV","Fragment","_Fragment","PlayIcon","scriptUrl","_c","TextArea","Title","Paragraph","Text","Link","Content","marksRange","marksBallPos","marksVol","Sample","genderName","gender","setGender","audioKey","audioSrc","fetchAudioData","handleIconClick","itemsAvatar","_s","audioPlayerNew","items_3","stairFilenames","heteronymFilenames","shortDescription","size","initialRange","setInitialRange","config","setConfig","SRATE","fxmin","fxlow","fxhigh","fxmax","COLORS","setCOLORS","realVoiceColor","targetVoiceColor","closeVoiceColor","COLORSMode","setCOLORSMode","openSetting","setOpenSetting","txtShow","setTxtShow","txtShowSwitch","setTxtShowSwitch","openTour","setOpenTour","isPlaying","setIsPlaying","isRetry","setIsRetry","enableVol","setEnableVol","isOpenTextbox","setIsOpenTextbox","showNextPre","setShowNextPre","showListen","setShowListen","location","ref12","ref1","ref2","ref3","parentRef","volume","setVolume","threshold","setThreshold","maxLyricCount","setMaxLyricCount","playLyricCount","setPlayLyricCount","divisor","setDivisor","ballPosition","setBallPosition","showNotesPar","setShowNotesPar","component","setComponent","currentSelection","setCurrentSelection","syllableCount","setSyllableCount","baseFilenames","setBaseFilenames","fileContent","setFileContent","selectedNum","setSelectedNum","audioPlayer","audioSrcFromChild","setAudioSrcFromChild","isListen","setIsListen","selectedItem","setSelectedItem","setPlaying","setPlayingPause","handleBeginTour","onClickMenu","e","key","onClose","ClearTxt","handleTextInput","content","target","value","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","onChange","info","status","success","changeOnEnter","shiftKey","handleAudioSrc","newAudioSrc","playAudio","current","audio","play","navigator","mediaDevices","getUserMedia","video","stream","harkInstance","on","stop","steps","title","description","placement","cover","style","textAlign","children","fileName","_jsxFileName","lineNumber","columnNumber","queryParams","URLSearchParams","search","init","get","handleStairAndConstantClick","innerText","handleMenuClick","componentType","genderType","syllableCountType","tt","renderTruncatedFilenames","filenames","index","isNearEnd","startIndex","showCondition","className","handlePlayLyricCountChange","newCount","itemsSyllable","label","onClick","onChangeStairSwitch","renderSelectedComponent","ref","onAudioSrcChange","onPlayLyricCountChange","heteronymFile","MainButtons","justify","wrap","gap","shape","icon","autoPlayAfterSrcChange","src","display","disabled","onChangePrevious","onChangePause","onChangeNext","renderSelectedComponentLyric","Compact","maxCount","rows","placeholder","height","resize","onKeyDown","maxIndexToShow","shouldShow","align","defaultChecked","checkedChildren","unCheckedChildren","onChangeRange","rangeValue","onChangePosition","positionValue","onChangeSpeed","speedValue","mappedValue","Math","round","onChangeHz","onChangeColor","EnableVoluneMode","tem","onChangeThreshold","formatterdB","formatterHz","formatterPos","toFixed","onChangeCollapse","Array","isArray","span","vertical","marginTop","theme","token","colorPrimary","borderRadius","menu","items","width","right","bottom","alignItems","justifyContent","preview","paddingLeft","paddingRight","id","level","margin","activeKey","ghost","open","trigger","overlayClassName","buttonsRender","leftButton","rightButton","fontSize","cloneElement","loading","onEnded","onError","Group","defaultValue","buttonStyle","range","step","min","max","tooltip","formatter","marks","_c2","$RefreshReg$"],"sources":["/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/src/Route/Sample.tsx"],"sourcesContent":["import 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 { Breadcrumb, Layout, Menu, Dropdown, theme, Avatar } from 'antd';\nimport { Drawer, Cascader, 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 type { RadioChangeEvent } from 'antd';\nimport type { TourProps } from 'antd';\nimport ReactAudioPlayer from 'react-audio-player';\nimport type { SliderSingleProps } from 'antd';\nimport type { UploadProps } from 'antd';\nimport { UploadOutlined, ArrowLeftOutlined, RollbackOutlined } from '@ant-design/icons';\nimport { message, Upload } from 'antd';\nimport hark from 'hark';\nimport { useLocation } from 'react-router-dom';\nimport { Typography } from 'antd';\nimport type { CollapseProps } 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 { adjustCanvasScale, map, drawBackground, generateNotesAndFrequencies } from '../function/canvasDefault';\nimport { useTemString } from '../hooks/useTemString';\nimport { useCanvasHooks } from '../hooks/useCanvasHooks';\nimport type { MenuProps } from 'antd';\n// @ts-ignore\nimport pdfToText from 'react-pdftotext';\nimport useCanvasAdjustHeight from '../hooksUseEffect/useCanvasAdjustHeight';\nimport AudioPlayer from 'react-h5-audio-player';\nimport { createFromIconfontCN } from '@ant-design/icons';\nimport { useOptionsHooks } from '../hooks/useOptionsHooks';\n\nconst PlayIcon = createFromIconfontCN({\n  scriptUrl: '//at.alicdn.com/t/c/font_4566050_zpduwnlv2t.js',\n});\n\nconst { TextArea } = Input;\nconst { Title, Paragraph, Text, Link } = Typography;\ntype MenuTheme = 'show' | 'hide';\n\n\nconst { Content } = Layout;\n\nconst marksRange: SliderSingleProps['marks'] = {\n  50: '50Hz',\n  600: '600Hz'\n};\n\nconst marksBallPos: SliderSingleProps['marks'] = {\n  0: '0%',\n  1: '100%'\n};\nconst marksVol: SliderSingleProps['marks'] = {\n  50: '50dB',\n  90: '90dB'\n};\n\n\ninterface SampleProps {\n  genderName: string;\n  gender: string;\n  setGender: (str: string) => void;\n  audioKey: number;\n  audioSrc: string;\n  fetchAudioData: () => void;\n  handleIconClick: (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;\n  itemsAvatar: MenuProps['items'];\n}\n\nconst Sample: React.FC<SampleProps> = ({\n  genderName, \n  gender, \n  setGender,\n  audioKey,\n  audioSrc,\n  fetchAudioData,\n  handleIconClick,\n  itemsAvatar,\n\n}) => {\n  const {\n    // gender,\n    // setGender,\n    // genderName,\n    audioPlayerNew,\n    // audioKey,\n    // audioSrc,\n\n    // fetchAudioData,\n\n    // handleIconClick,\n    // itemsAvatar\n\n  } = useOptionsHooks();\n\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<number[]>([100, 300]);\n  const [config, setConfig] = useState({\n    SRATE: 48000,\n    fxmin: 50,\n    fxlow: 50 + 50, // This initial value will be updated by useEffect below\n    fxhigh: 600 - 200, // This initial value will be updated by useEffect below\n    fxmax: 600\n  });\n  const [COLORS, setCOLORS] = useState({\n    realVoiceColor: '#d679de', \n    targetVoiceColor: '#4669C8', \n    closeVoiceColor: '#15dbcc', \n  }\n);\nconst [COLORSMode,setCOLORSMode] = useState(\"de\");\n  // const COLORS = {\n  //   realVoiceColor: '#d679de', // red\n  //   targetVoiceColor: '#4669C8', // blue\n  //   closeVoiceColor: '#15dbcc', // yellow\n  // };\n\n  // open/close \n  const [openSetting, setOpenSetting] = useState(false);\n  const [txtShow, setTxtShow] = useState<string>(\"true\");\n  const [txtShowSwitch, setTxtShowSwitch] = useState<MenuTheme>('show');\n  const [openTour, setOpenTour] = useState<boolean>(false);\n  const [isPlaying, setIsPlaying] = useState(true);\n  const [isRetry, setIsRetry] = useState(false);\n  const [enableVol, setEnableVol] = useState<boolean>(false);\n  const [isOpenTextbox, setIsOpenTextbox] = useState<boolean>(false);\n  const [showNextPre, setShowNextPre] = useState<boolean>(false);\n  const [showListen, setShowListen] = useState<boolean>(false);\n\n  // special vatiables\n  const location = useLocation();\n  const ref12 = useRef(null);\n  const ref1 = useRef(null);\n  const ref2 = useRef(null);\n  const ref3 = useRef(null);\n  const parentRef = useRef<HTMLDivElement>(null);\n\n  // initial Value\n  const [volume, setVolume] = useState(0);\n  const [threshold, setThreshold] = useState<number>(70);\n  const [maxLyricCount, setMaxLyricCount] = useState<number>(2);\n  const [playLyricCount, setPlayLyricCount] = useState<number>(0);\n  const [divisor, setDivisor] = useState<number>(10);\n  const [ballPosition, setBallPosition] = useState<number>(0.5);\n\n  // Hz/Notes\n  const [showNotesPar, setShowNotesPar] = useState(false);\n\n  // selected choice\n  const [component, setComponent] = useState<string>(\"ConstantTxt\");\n  const [currentSelection, setCurrentSelection] = useState('Constant');\n  // const [gender, setGender] = useState<string>(\"Female\");\n  // const [genderName, setGenderName] = useState<string>(\"Fem01\");\n  const [syllableCount, setSyllableCount] = useState<string>(\"none\");\n  const [baseFilenames, setBaseFilenames] = useState<string[]>([]);\n  const [fileContent, setFileContent] = useState<string[]>([]);\n  const [selectedNum, setSelectedNum] = useState<string[]>([\"2\"]);\n\n  // auido\n  const audioPlayer = useRef<ReactAudioPlayer>(null);\n  // const audioPlayerNew = useRef<AudioPlayer>(null);\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState<string>('');\n  const [isListen, setIsListen] = useState<number>(1);\n\n  // profile (Need to rebuild)\n  const [selectedItem, setSelectedItem] = useState('Settings');\n\n  // \n  const setPlaying = () => {\n    setIsPlaying(true);\n  };\n  const setPlayingPause = () => {\n    setIsPlaying(false);\n  };\n  const handleBeginTour = () => {\n    setOpenTour(true);\n  };\n  const onClickMenu: MenuProps['onClick'] = (e) => {\n    setSelectedItem(e.key);\n  };\n  const onClose = () => {\n    setOpenSetting(false);\n  };\n  const ClearTxt = () => {\n    setFileContent([]);\n    setMaxLyricCount(1);\n  };\n\n  // Constant Page upload and input\n  const handleTextInput = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n    const content = e.target.value as string;\n    const separators = /[;,./\\n]/;\n    const splitContent = content.split(separators)\n      .map(s => s.trim())\n      .filter(Boolean);\n    console.log(splitContent);\n    setFileContent(splitContent);\n    setMaxLyricCount(splitContent.length - 1);\n    setPlayLyricCount(0);\n  }\n  const props: UploadProps = {\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)\n          .then((text: string) => {\n            const separators = /[;,./\\n]/;\n            const splitContent = text.split(separators)\n              .map((s: string) => s.trim())\n              .filter(Boolean);\n            console.log(splitContent);\n            setFileContent(splitContent);\n            setMaxLyricCount(splitContent.length - 1);\n            setPlayLyricCount(0);\n          })\n          .catch((error: any) => { // 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: ProgressEvent<FileReader>) => {\n          if (e.target?.result) {\n            const content = e.target.result as string;\n            // const separators = /[;,./]/;\n            const separators = /[;,./\\n]/;\n            const splitContent = content.split(separators)\n              .map(s => s.trim())\n              .filter(Boolean);\n            console.log(splitContent);\n            setFileContent(splitContent);\n            setMaxLyricCount(splitContent.length - 1);\n            setPlayLyricCount(0);\n          }\n        };\n\n        reader.readAsText(file);\n\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: any) => {\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: string) => {\n    setAudioSrcFromChild(newAudioSrc);\n  };\n  const playAudio = () => {\n\n    // if (audioPlayer.current && audioPlayer.current.audioEl.current) {\n    // audioPlayer.current.audioEl.current.play()\n    if (audioPlayerNew.current && audioPlayerNew.current.audio.current) {\n      audioPlayerNew.current.audio.current.play()\n        .then(() => {\n          setIsListen(isListen + 1);\n        })\n        .catch(error => {\n          console.error('Fail play audios: ', error);\n        });\n    }\n\n  };\n\n  // options audio\n  useEffect(() => {\n    fetchAudioData();\n  }, [genderName]);\n\n  // Volume\n  useEffect(() => {\n    navigator.mediaDevices.getUserMedia({ audio: true, video: false })\n      .then(stream => {\n        const harkInstance = hark(stream, {});\n\n        harkInstance.on('volume_change', (volume, threshold) => {\n          setVolume(volume);\n        });\n\n        return () => harkInstance.stop();\n      })\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: TourProps['steps'] = [\n    {\n      title: 'Pitch Exercises',\n      description: 'Switch between different exercises',\n      placement: 'top',\n      target: () => ref12.current,\n    },\n    {\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    {\n      title: 'Function Buttons',\n      cover: (\n        <ul style={{ textAlign: 'left' }}>\n          <li>Start/Stop: Begin or stop recording.</li>\n          <li>Retry: Clear display and restart.</li>\n          <li>Upload txt/pdf File (optional): Upload text or pdf for you (in .txt/.pdf format) to read while recording.</li>\n          <li>Previous Next (if text uploaded): Switch between lines of text.</li>\n        </ul>\n      ),\n      target: () => ref2.current,\n    },\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 as HTMLDivElement,\n    },\n    {\n      title: 'Options menu',\n      description: 'Adjust settings such as the pitch display range.',\n      target: () => ref3.current,\n    },\n\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: any) => {\n    setPlayLyricCount(0);\n    setCurrentSelection(e.target.innerText);\n    console.log(e.target.innerText);\n    if (e.target.innerText === \"Constant\" || e.target.innerText === \"CONSTANT\") {\n      setComponent(\"ConstantTxt\");\n      setSelectedNum([\"2\"]);\n\n    } else if (e.target.innerText === \"Stair\" || e.target.innerText === \"STAIR\") {\n      setComponent(\"Stair\");\n      setSelectedNum([\"3\"]);\n\n    } else {\n      setComponent(\"Heteronym\");\n      setSelectedNum([\"4\"]);\n    }\n    setSyllableCount(\"none\");\n  }\n  // const saveGender = (e: any) => {\n  //   const [genderType, genderNameType] = e.key.split('-');\n  //   setGender(genderType);\n  //   setGenderName(genderNameType);\n  //   console.log(genderType);\n  //   console.log('genderName', genderName)\n  // }\n  const handleMenuClick = (e: any) => {\n    setPlayLyricCount(0);\n    const [componentType, genderType, syllableCountType] = e.key.split('-');\n    if (componentType == \"Constant\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"ConstantTxt\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"Stair\") {\n      setCurrentSelection(\"Staircase\");\n    } else {\n      let tt = \"Syllables \" + syllableCountType\n      setCurrentSelection(tt);\n      setSelectedNum([\"5\"]);\n\n    }\n\n    setComponent(componentType);\n    setGender(genderType);\n    setSyllableCount(syllableCountType);\n\n    setCurrentSelection(e.key + \"syllable \" + genderName);\n  };\n  const renderTruncatedFilenames = (filenames: string[]) => {\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 (\n        showCondition && (\n          <li key={index} className={playLyricCount === index ? 'highlighted' : ''}>{text}</li>\n        )\n      );\n    });\n  };\n  const handlePlayLyricCountChange = (newCount: number) => {\n    setPlayLyricCount(newCount);\n  };\n\n\n  /**\n * Defines the items for the syllable menu based on the gender.\n * If the gender is 'none', it only includes a single item prompting the user to select an avatar.\n * Otherwise, it includes multiple items representing the number of syllables, with corresponding click handlers.\n */\n  const itemsSyllable: MenuProps['items'] = gender === 'none' ? [\n    {\n      key: 'SelectAvatar',\n      label: 'Please select avatar',\n    },\n  ] : [\n    {\n      key: `Fixed-${gender}-2`,\n      label: \"2 syllables\",\n      onClick: handleMenuClick,\n    },\n    {\n      key: `Fixed-${gender}-3`,\n      label: \"3 syllables\",\n      onClick: handleMenuClick,\n    },\n    {\n      key: `Fixed-${gender}-4`,\n      label: \"4 syllables\",\n      onClick: handleMenuClick,\n    },\n    {\n      key: `Fixed-${gender}-5`,\n      label: \"5 syllables\",\n      onClick: handleMenuClick,\n    },\n  ];\n  const onChangeStairSwitch = (value: boolean) => {\n    setTxtShowSwitch(value ? 'hide' : 'show');\n    setTxtShow(value ? 'true' : 'false');\n  };\n  const renderSelectedComponent = (): React.ReactNode => {\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 <ConstantTxt ref={parentRef} initialRange={initialRange} divisor={divisor} ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\n      case 'Stair':\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} />;\n      case 'Fixed':\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} />;\n      case 'Heteronym':\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} />;\n      default:\n        return <span>Canvas: Picture</span>;\n    }\n  }\n  const MainButtons = (): React.ReactNode => {\n    return (\n      <Flex justify=\"center\" wrap=\"wrap\" gap=\"small\">\n\n        <Tooltip title=\"Retry\">\n          <Button onClick={() => setIsRetry(!isRetry)} shape=\"circle\" icon={<RedoOutlined />} />\n        </Tooltip>\n        {/* <ReactAudioPlayer\n          className=\"audio-player-hidden\"\n          src={audioSrcFromChild}\n          ref={audioPlayer}\n        /> */}\n\n        <AudioPlayer\n          autoPlayAfterSrcChange={false}\n          src={audioSrcFromChild}\n          ref={audioPlayerNew}\n          style={{ display: 'none' }}\n        />\n        {showListen &&\n          <Tooltip title=\"Listen\">\n            <Button disabled={component !== \"Fixed\"} shape=\"circle\" onClick={playAudio} icon={<CustomerServiceOutlined />} />\n          </Tooltip>\n        }\n\n        {\n          showNextPre &&\n          <Tooltip title=\"Previous\">\n            <Button shape=\"circle\" onClick={onChangePrevious} icon={<StepBackwardOutlined />} />\n          </Tooltip>\n        }\n        <Tooltip title={isPlaying ? \"Pause\" : \"Play\"}>\n          <Button onClick={onChangePause} shape=\"circle\" icon={isPlaying ? <PauseOutlined /> : <CaretRightOutlined />} />\n        </Tooltip>\n        {\n          showNextPre &&\n          <Tooltip title=\"Next\">\n            <Button shape=\"circle\" onClick={onChangeNext} icon={<StepForwardOutlined />} />\n          </Tooltip>\n        }\n\n      </Flex>\n    );\n  };\n  const renderSelectedComponentLyric = (): React.ReactNode => {\n    switch (component) {\n\n      case 'ConstantTxt':\n        return (\n          <div className='lyric'>\n\n            <Space size=\"middle\">\n              {MainButtons()}\n              <Space.Compact>\n\n                <Tooltip title=\"Clear existing files and upload new ones\">\n                  <Button onClick={ClearTxt}>Clear text</Button>\n                </Tooltip>\n\n                <Tooltip title=\"Upload PDF or .txt file to read during practice\">\n                  <Upload maxCount={1} {...props}>\n                    <Button icon={<UploadOutlined />}>Upload File</Button>\n                  </Upload>\n                </Tooltip>\n                <Tooltip title=\"Type/Paste text to read during parctice\">\n                  <Button onClick={() => setIsOpenTextbox(!isOpenTextbox)}>\n                    {!isOpenTextbox ? \"Enter Text\" : \"Close Textbox\"}\n                  </Button>\n                </Tooltip>\n              </Space.Compact>\n\n            </Space>\n            <>\n              {isOpenTextbox && fileContent.length === 0 && (\n                <TextArea rows={4} placeholder='Enter or paste Text Entry' style={{ height: 40, resize: 'none' }} onKeyDown={changeOnEnter} />\n              )\n\n              }\n\n            </>\n            <ul>\n              {fileContent.map((text, index) => {\n                const maxIndexToShow = playLyricCount + 2 >= fileContent.length ? fileContent.length - 1 : playLyricCount + 2;\n\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\n                return (\n                  showCondition && (\n                    <li key={index} className={playLyricCount === index ? 'highlighted' : ''}>{text}</li>\n                  )\n                );\n              })}\n            </ul>\n          </div>\n        )\n      case 'Stair':\n        return (\n          <div className='lyric'>\n            <Flex align=\"center\" gap=\"middle\">\n              {MainButtons()}\n\n              <Tooltip title=\"Show/Hide 5-syllable phrases to read\">\n                <Switch defaultChecked checkedChildren=\"show\" unCheckedChildren=\"hide\" onChange={onChangeStairSwitch} />\n              </Tooltip>\n\n            </Flex>\n            {(() => {\n              if (txtShow === 'true') {\n                return (\n                  <ul>\n                    {renderTruncatedFilenames(stairFilenames)}\n                  </ul>\n                );\n              }\n              return null;\n            })()}\n\n          </div>\n        )\n      case 'Heteronym':\n        return (\n          <div className='lyric'>\n            {MainButtons()}\n            {(() => {\n              if (txtShow === 'true') {\n                return (\n                  <ul>\n                    {renderTruncatedFilenames(heteronymFilenames)}\n                  </ul>\n                );\n              }\n              return null;\n            })()}\n\n          </div>\n        )\n      case 'Fixed':\n        return (\n          <div className='lyric'>\n            {MainButtons()}\n            <ul>\n              {renderTruncatedFilenames(baseFilenames)}\n            </ul>\n          </div>\n        )\n      default:\n        return <span>Canvas: Picture</span>;\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    }\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  }\n    , [component, fileContent]);\n\n  // Options Changing functions\n  const onChangeRange = (rangeValue: number[]) => {\n    setInitialRange([rangeValue[0], rangeValue[1]]);\n  }\n  const onChangePosition = (positionValue: number) => {\n    setBallPosition(positionValue);\n  }\n  const onChangeSpeed = (speedValue: number) => {\n    const mappedValue = Math.round((speedValue * 20) + 4);\n    setDivisor(mappedValue);\n  }\n  const onChangeHz = ({ target: { value } }: RadioChangeEvent) => {\n    console.log(value);\n    if (value === 'hz') {\n      setShowNotesPar(false);\n    } else {\n      setShowNotesPar(true);\n    }\n  }\n  const onChangeColor = ({ target: { value } }: RadioChangeEvent) => {\n    console.log(value);\n    if (value === 'de') {\n      setCOLORSMode(value);\n      setCOLORS({\n        realVoiceColor: '#d679de', \n        targetVoiceColor: '#4669C8', \n        closeVoiceColor: '#15dbcc', \n      });\n\n    } else {\n      setCOLORSMode(value);\n      setCOLORS({\n        realVoiceColor: '#3399ff', \n        targetVoiceColor: '#ff0000', \n        closeVoiceColor: 'yellow', \n      });    \n    }\n  }\n\n  const EnableVoluneMode = (e: boolean) => {\n    console.log(e);\n    if (e) {\n      setEnableVol(true);\n\n    } else {\n      setEnableVol(false);\n\n    }\n  }\n\n  // Button functions\n  const onChangePause = () => {\n    setIsPlaying(!isPlaying);\n  }\n  const onChangePrevious = () => {\n    const tem = playLyricCount;\n    if (tem <= 0) {\n      setPlayLyricCount(0);\n    } else {\n      setPlayLyricCount(tem - 1);\n    }\n  };\n  const onChangeNext = () => {\n    const tem = playLyricCount;\n    if (tem >= maxLyricCount) {\n      setPlayLyricCount(maxLyricCount);\n    } else {\n      setPlayLyricCount(tem + 1);\n    }\n  };\n\n  // tooltips\n  const onChangeThreshold = (e: number) => { setThreshold(e); };\n  const formatterdB = (value: number | undefined) => `${value} dB`;\n  const formatterHz = (value: number | undefined) => `${value} Hz`;\n  const formatterPos = (value: number | undefined) => `${value ? (value * 100).toFixed(0) : '0'}%`;\n\n  // onChangeCollapse\n  const onChangeCollapse = (e: string | string[]) => {\n    console.log(e);\n    if (Array.isArray(e)) {\n      setSelectedNum(e);\n    } else {\n      setSelectedNum([e]);\n    }\n  }\n  return (\n    <Row>\n      <Col span={24}>\n        <Layout className=\"layoutSample\">\n\n          <Content >\n\n            <Flex align=\"center\" justify=\"center\" gap=\"middle\" vertical>\n\n              <div style={{ marginTop: \"2vw\" }}>\n                <ConfigProvider\n                  theme={{\n                    token: {\n                      colorPrimary: \"rgb(132, 118, 171)\",\n                      borderRadius: 0,\n                    },\n                  }}\n                >\n\n                  <Space size=\"middle\" ref={ref12}>\n                    <Space.Compact>\n\n                      <Tooltip title=\"Switch to the Constant exercise\">\n                        <Button type={component === \"ConstantTxt\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\n                          CONSTANT\n                        </Button>\n                      </Tooltip>\n\n                      <Tooltip title=\"Switch to the Stair exercise\">\n                        <Button type={component === \"Stair\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\n                          STAIR\n                        </Button>\n                      </Tooltip>\n\n                      <Tooltip title=\"Switch to the Heteronyms exercise\">\n                        <Button type={component === \"Heteronym\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\n                          HETERONYMS\n                        </Button>\n                      </Tooltip>\n                      <Tooltip title=\"Switch to the Human Curve exercise\">\n                        <Dropdown menu={{ items: itemsSyllable }} placement=\"bottom\">\n                          <Button type={component === \"Fixed\" ? \"primary\" : \"default\"}>\n                            {syllableCount === \"none\" ? 'HUMAN CURVE' : syllableCount + ' SYLLABLE'}\n                          </Button>\n                        </Dropdown>\n\n                      </Tooltip>\n\n\n                    </Space.Compact>\n\n                  </Space>\n\n                </ConfigProvider>\n\n              </div>\n              {shortDescription(component)}\n\n\n\n              <div style={{ width: \"100%\" }}>\n                {renderSelectedComponent()}\n              </div>\n\n\n              <Flex vertical justify=\"center\" wrap=\"wrap\" gap=\"small\" ref={ref2} >\n                {renderSelectedComponentLyric()}\n              </Flex>\n              {/* <Tooltip title=\"Settings\"> */}\n              <FloatButton style={{\n                width: 60,\n                height: 60,\n                right: 15,\n                bottom: 30,\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center'\n              }}\n                onClick={() => setOpenSetting(true)}\n                ref={ref3}\n                shape=\"square\"\n                description=\"SETTINGS\"\n                icon={<SettingOutlined />} />\n              {/* </Tooltip> */}\n\n              {/* <Tooltip title=\"Tour\"> */}\n              <FloatButton\n                style={{\n                  width: 60,\n                  height: 60,\n                  right: 100,\n                  bottom: 30,\n                  display: 'flex',\n                  alignItems: 'center',\n                  justifyContent: 'center'\n                }}\n                shape=\"square\"\n                description=\"TOUR\"\n                onClick={handleBeginTour}\n                icon={<QuestionOutlined />} />\n              {/* </Tooltip>   */}\n\n              <Image\n                preview={false}\n                src={divide_1}\n                style={{ width: '100%' }}\n              />\n              <Typography\n                style={{\n                  width: \"100%\", paddingLeft: \"30px\", paddingRight: \"40px\",\n                }}>\n                <Typography.Title id=\"part-1\" level={2} style={{ margin: 0 }}>\n                  How to use\n                </Typography.Title>\n                <Collapse\n                  activeKey={selectedNum}\n                  // accordion\n                  onChange={onChangeCollapse}\n                  // defaultActiveKey={selectedNum} \n                  ghost\n                  items={items_3} />\n              </Typography>\n            </Flex>\n\n\n            <Drawer title=\"Options\" placement=\"right\" onClose={() => setOpenSetting(false)} open={openSetting} width={430}>\n              <Flex vertical gap=\"middle\">\n\n                <Space>\n                  <p># Model Selection: </p>\n\n                  <Dropdown.Button\n                    menu={{ items: itemsAvatar }}\n                    placement=\"bottom\"\n                    trigger={[\"click\"]}\n                    overlayClassName='custom-dropdown'\n                    buttonsRender={([leftButton, rightButton]) => [\n                      <Tooltip>\n                        <Button\n                          style={{\n                            display: 'flex',\n                            alignItems: 'center',\n                          }}\n                          onClick={handleIconClick}\n                          icon={\n                            <PlayIcon\n                              style={{\n                                fontSize: '1.7em',\n                              }}\n\n                              type=\"icon-audioPlay\"\n                            />\n                          }\n                        >\n                          {genderName === \"none\" ? \"Model Voice\" : gender === \"Female\" ? genderName : 'Male01'}\n\n                        </Button>\n\n                      </Tooltip>\n\n                      ,\n\n                      React.cloneElement(rightButton as React.ReactElement<any, string>, { loading: false }),\n\n                    ]}\n                  >\n\n                  </Dropdown.Button>\n\n                </Space>\n                <AudioPlayer    \n        autoPlayAfterSrcChange={false}\n        src={audioSrc} \n        ref={audioPlayerNew}\n        key={audioKey}\n        style={{display: 'none'}}\n        onEnded={() => console.log('audio ended')}\n        onError={(e) => console.log('audio error', e)}\n        />\n                <Space>\n                  <p># Coordinate Display Mode</p>\n                  <Radio.Group onChange={onChangeHz} value={showNotesPar ? 'notes' : 'hz'} defaultValue=\"notes\" buttonStyle=\"solid\">\n                    <Radio.Button value=\"hz\"> Hz </Radio.Button>\n                    <Radio.Button value=\"notes\">Notes</Radio.Button>\n                  </Radio.Group>\n                  <br />\n                </Space>\n\n                <Space>\n                  <p># Pitch Display Color Scheme </p>\n                  <Radio.Group onChange={onChangeColor} value={(COLORSMode === 'co') ? 'co' : 'de'} defaultValue=\"default\" buttonStyle=\"solid\">\n                    <Radio.Button value=\"de\">TruVox </Radio.Button>\n                    <Radio.Button value=\"co\">Colorblind</Radio.Button>\n                  </Radio.Group>\n                  <br />\n                </Space>\n\n                <div>\n                  <p># Pitch Display Range</p>\n                  <Slider\n                    range\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                </div>\n\n                {component !== \"Fixed\" && component !== \"Stair\" && component !== \"Heteronym\" && (\n                  <div>\n                    <p># Pitch Indicator Horizontal Position</p>\n                    <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                    />\n                  </div>\n                )}\n\n                <div>\n                  <p># Pitch Indicator Speed</p>\n                  <Slider\n                    step={0.05}\n                    min={0}\n                    max={1}\n                    onChange={onChangeSpeed}\n                    defaultValue={0.3}\n                    tooltip={{ formatter: null }}\n                  />\n                </div>\n\n                <div>\n                  <Space>\n                    <p># Auto-Start When Voice Detected</p>\n                    <Tooltip title=\"If enabled, an exercise will start if your microphone detects speech. If disabled, you must start exercises manually.\">\n                      <Switch defaultChecked={false} onChange={EnableVoluneMode} />\n\n                    </Tooltip>\n\n                  </Space>\n\n                  {enableVol &&\n                    <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                    />\n                  }\n                </div>\n\n                <br />\n                <Button onClick={onClose}>Close</Button>\n              </Flex>\n            </Drawer>\n            <Tour open={openTour} onClose={() => setOpenTour(false)} steps={steps} />\n          </Content>\n        </Layout>\n\n      </Col>\n    </Row>\n\n    // </div>\n  );\n}\n\nexport default Sample;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}