{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\Route\\\\Sample.tsx\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect, useRef } from 'react';\nimport { Button, Flex } from 'antd';\nimport { SettingOutlined, CustomerServiceOutlined } from '@ant-design/icons';\nimport { Col, Row, Tour } from 'antd';\nimport { CaretRightOutlined } from '@ant-design/icons';\nimport { Slider } 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 ReactAudioPlayer from 'react-audio-player';\nimport { UploadOutlined } from '@ant-design/icons';\nimport { message, Upload } from 'antd';\nimport hark from 'hark';\nimport { useLocation } from 'react-router-dom';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n// import mammoth from 'mammoth';\n// import useCookieState from '../function/useCookieState';\n// import { useCookieState } from 'ahooks';\nconst {\n  Header,\n  Content\n} = Layout;\nconst options = [{\n  value: 'Female',\n  label: 'Female Voice',\n  children: [{\n    value: 'Fixed',\n    label: 'Traing 1'\n  }]\n}, {\n  value: 'Male',\n  label: 'Male Voice',\n  children: [{\n    value: 'Fixed',\n    label: 'Traing 1'\n  }]\n}, {\n  value: 'TargetCurve',\n  label: 'Target Curve',\n  children: [{\n    value: 'Constant',\n    label: 'Constant'\n  }, {\n    value: 'ConstantTxt',\n    label: 'Constant with user input'\n  }, {\n    value: 'Stair',\n    label: 'Stair Case'\n  }]\n}];\nconst highlightedStyle = {\n  color: 'rgb(75, 216, 43)',\n  fontSize: '25px'\n};\nconst style = {\n  display: 'relative',\n  height: 300\n};\nconst marksRange = {\n  50: '50Hz',\n  600: '600Hz'\n};\nconst marksBall = {\n  0: 'Slowest',\n  1: 'Fastest'\n};\nconst marksBallPos = {\n  0: '0%',\n  1: '100%'\n};\nconst marksVol = {\n  50: '50dB',\n  90: '90dB'\n};\nfunction Sample() {\n  _s();\n  const [open, setOpen] = useState(false);\n  const [txtShow, setTxtShow] = useState(\"true\");\n  const [txtShowBoo, setTxtShowBoo] = useState(true);\n  const size = [400, 1400];\n  const location = useLocation();\n  // const config = {\n  //   SRATE: 48000,\n  //   fxmin: 50,\n  //   fxlow: 100,\n  //   fxhigh: 400,\n  //   fxmax: 600\n  // };\n  const [initialRange, setInitialRange] = useState([100, 300]);\n  // const [initialRange, setInitialRange] = useCookieState<number[]>('initialRange',[100,300]);\n  const [config, setConfig] = useState({\n    SRATE: 48000,\n    fxmin: 50,\n    fxlow: 50 + 50,\n    // This initial value will be updated by useEffect below\n    fxhigh: 600 - 200,\n    // This initial value will be updated by useEffect below\n    fxmax: 600\n  });\n  const COLORS = {\n    realVoiceColor: '#FF0000',\n    // red\n    targetVoiceColor: '#00008B',\n    // blue\n    closeVoiceColor: '#FFFF00' // yellow\n  };\n  const [maxLyricCount, setMaxLyricCount] = useState(2);\n  const [isPlaying, setIsPlaying] = useState(true);\n  const [isRetry, setIsRetry] = useState(false);\n  const setPlaying = () => {\n    setIsPlaying(true);\n  };\n  const setPlayingPause = () => {\n    setIsPlaying(false);\n  };\n  const handleRetry = () => {\n    setIsRetry(!isRetry);\n  };\n  const ref1 = useRef(null);\n  const ref2 = useRef(null);\n  const ref3 = useRef(null);\n  const [volume, setVolume] = useState(0);\n  const [divisor, setDivisor] = useState(10);\n  const [openTour, setOpenTour] = useState(false);\n  const [isFixed, setIsFixed] = useState(true);\n  const [showNotesPar, setShowNotesPar] = useState(true);\n  const [component, setComponent] = useState(\"ConstantTxt\");\n  // const [component, setComponent] = useCookieState<string | number>(\"Constant\", \"initialValue\");\n  // const [component, setComponent] = useCookieState<string>('component11',\"Constant\");\n  const [ballPosition, setBallPosition] = useState(0.5);\n  // const [selectedComponent, setSelectedComponent] = useState<React.ReactNode>(<Constant ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />);\n  const [currentSelection, setCurrentSelection] = useState('Constant'); //The initial state is empty\n  const [playCount, setPlayCount] = useState(0);\n  const [enableVol, setEnableVol] = useState(false);\n  const [playLyricCount, setPlayLyricCount] = useState(0);\n  const [gender, setGender] = useState(\"none\");\n  const [genderName, setGenderName] = useState(\"none\");\n  const [syllableCount, setSyllableCount] = useState(\"none\");\n  const [baseFilenames, setBaseFilenames] = useState([]);\n  const [stairFilenames, setStairFilenames] = useState([\"Bigger and better\", \"Drum and bugle corps\", \"He has a good job\", \"Before and after\", \"Come back right away\", \"Blow up the balloon\"]);\n  const [heteronymFilenames, setHeteronymFilenames] = useState([\"ADdress adDRESS\", \"CONduct conDUCT\", \"CONflict conFLICT\", \"CONtent conTENT\", \"CONsole conSOLE\", \"CONtest conTEST\", \"CONtrast conTRAST\", \"CONtract conTRACT\", \"DEsert deSERT\", \"CONvert conVERT\", \"EScort esCORT\", \"EXport exPORT\", \"CONvict conVICT\", \"EXtract exTRACT\", \"IMport imPORT\", \"DIgest diGEST\", \"INcrease inCREASE\", \"INsult inSULT\", \"PROduce proDUCE\", \"REcord reCORD\", \"TRANSfer transFER\", \"IMprint imPRINT\", \"INsert inSERT\", \"COMpound comPOUND\", \"INvalid inVALID\", \"OBject obJECT\", \"MINute minUTE\", \"PERmit perMIT\", \"PROject proJECT\", \"PREsent preSENT\"]);\n  const audioPlayer = useRef(null);\n  const [isListen, setIsListen] = useState(1);\n  const [inputValue, setInputValue] = useState('');\n  const [threshold, setThreshold] = useState(70);\n  // const [showThreshold, setShowThreshold] = useState<boolean>(false);\n  const [displayText, setDisplayText] = useState('Input Txt');\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState('');\n  const [fileContent, setFileContent] = useState([]);\n  const [showNextPre, setShowNextPre] = useState(false);\n  const [showListen, setShowListen] = useState(false);\n  const [enablePre, setEnablePre] = useState(false);\n  const [enableNext, setEnableNext] = useState(true);\n  const parentRef = useRef(null);\n\n  // const [showPre, SetShowPre] = useState<boolean>(false);\n  const [tooltipVisible, setTooltipVisible] = useState(false);\n  const handleChangeInputDevice = value => {\n    console.log(`selected ${value}`);\n  };\n\n  // const drawerRef = useRef(null);\n  const handleAfterOpenChange = open => {\n    if (open) {\n      setTooltipVisible(true);\n      scrollDrawerContent();\n    } else {\n      setTooltipVisible(false);\n    }\n  };\n  const scrollDrawerContent = () => {\n    const drawerElement = document.querySelector('.ant-drawer-body');\n    const scrollOffset = 13;\n    if (drawerElement) {\n      drawerElement.scrollTop = scrollOffset;\n    }\n  };\n  const handleBeginTour = () => {\n    // Open the tour\n    setOpenTour(true);\n    window.scrollTo(0, 0);\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  const handleInputChange = e => {\n    setInputValue(e.target.value);\n  };\n  const props = {\n    name: 'file',\n    accept: '.txt',\n    beforeUpload: file => {\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    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 handleSubmit = () => {\n    setDisplayText(inputValue);\n  };\n  const handleAudioSrc = newAudioSrc => {\n    setAudioSrcFromChild(newAudioSrc);\n  };\n  const steps = [{\n    title: 'Canvas Display',\n    description: 'Visualize your voice pitch and target pitch curve in real-time.',\n    placement: 'top',\n    target: () => ref1.current\n  }, {\n    title: 'Function Buttons',\n    // description: 'Save your changes.',\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: 322,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Retry: Clear display and restart.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 323,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Upload txt File (optional): Upload text for you (in .txt format) to read while recording.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 324,\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: 325,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 321,\n      columnNumber: 9\n    }, this),\n    target: () => ref2.current\n  }, {\n    title: 'Slider',\n    description: 'Use this slides to change the target pitch value that you want to aim for.',\n    target: () => parentRef.current\n  }, {\n    title: 'Options menu',\n    description: 'Switch between different exercises and adjust settings such as the pitch display range.',\n    target: () => ref3.current\n  }];\n  const saveGender = e => {\n    const [genderType, genderNameType] = e.key.split('-');\n    setGender(genderType);\n    setGenderName(genderNameType);\n    console.log('genderName', genderName);\n  };\n  const handleStairAndConstantClick = e => {\n    setCurrentSelection(e.target.innerText);\n    if (e.target.innerText === \"Constant\") {\n      setComponent(\"ConstantTxt\");\n    } else if (e.target.innerText === \"Stair\") {\n      setComponent(\"Stair\");\n    } else {\n      setComponent(e.target.innerText);\n    }\n    setSyllableCount(\"none\");\n  };\n  const renderTruncatedFilenames = filenames => {\n    return filenames.map((text, index) => {\n      const maxIndexToShow = playLyricCount + 2 >= filenames.length ? filenames.length - 1 : playLyricCount + 2;\n      const shouldShow = index >= playLyricCount && index <= maxIndexToShow;\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: 373,\n        columnNumber: 9\n      }, this);\n    });\n  };\n  const handleMenuClick = e => {\n    console.log('choose:', e);\n    const [componentType, genderType, syllableCountType] = e.key.split('-');\n    if (componentType == \"Constant\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"ConstantTxt\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"Stair\") {\n      setCurrentSelection(\"Staircase\");\n    } else {\n      let tt = \"Syllables \" + syllableCountType;\n      setCurrentSelection(tt);\n    }\n\n    // setComponent(e.key);  \n    setComponent(componentType);\n    setGender(genderType);\n    setSyllableCount(syllableCountType);\n    setCurrentSelection(e.key + \"syllable \" + genderName);\n  };\n  const playAudio = () => {\n    // if (audioPlayer.current && audioPlayer.current.audioEl.current) {\n    //   audioPlayer.current.audioEl.current.play();\n    //   setIsListen(isListen+1);\n    // }\n    if (audioPlayer.current && audioPlayer.current.audioEl.current) {\n      audioPlayer.current.audioEl.current.play().then(() => {\n        setIsListen(isListen + 1);\n      }).catch(error => {\n        console.error('Fail play audios: ', error);\n      });\n    }\n  };\n  const handlePlayLyricCountChange = newCount => {\n    setPlayLyricCount(newCount);\n  };\n  const itemsMale = [{\n    key: 'male',\n    label: \"Male01\",\n    onClick: saveGender\n  }];\n  const itemsFemale = [{\n    key: 'Female-Fem01',\n    label: \"Fem01\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem02',\n    label: \"Fem02\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem03',\n    label: \"Fem03\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem04',\n    label: \"Fem04\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem05',\n    label: \"Fem05\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem06',\n    label: \"Fem06\",\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem07',\n    label: \"Fem07\",\n    onClick: saveGender\n  }];\n  const itemsAvatar = [{\n    key: '1',\n    label: 'Male',\n    children: [...itemsMale]\n  }, {\n    key: '2',\n    label: 'Female',\n    children: [...itemsFemale]\n  }];\n\n  /**\r\n  * Defines the items for the syllable menu based on the gender.\r\n  * If the gender is 'none', it only includes a single item prompting the user to select an avatar.\r\n  * Otherwise, it includes multiple items representing the number of syllables, with corresponding click handlers.\r\n  */\n  const itemsSyllable = gender === 'none' ? [{\n    key: 'SelectAvatar',\n    label: 'Please select avatar'\n  }] : [{\n    key: `Fixed-${gender}-2`,\n    label: \"2 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-3`,\n    label: \"3 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-4`,\n    label: \"4 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-5`,\n    label: \"5 syllables\",\n    onClick: handleMenuClick\n  }];\n  const handleAudio = () => {\n    setPlayCount(prevCount => prevCount + 1); // Increment counter with each click\n  };\n  const showDrawer = () => {\n    setOpen(true);\n  };\n  const onChangeStair = e => {\n    setTxtShow(e.target.value);\n    // setTxtShowBoo(e.target.value);\n    // console.log(txtShow);\n    console.log(e);\n  };\n  // useEffect(() => {\n  //   if (txtShow) {\n  //     set \n  //   } else {\n\n  //   }\n  // },[txtShow]);\n\n  const ClearTxt = () => {\n    setFileContent([]);\n    setMaxLyricCount(1);\n    setPlayCount(0);\n  };\n  const onClose = () => {\n    setOpen(false);\n  };\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        // console.log('Volume:', volume, 'Threshold:', 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  // useEffect(() => {\n  //   setConfig(prevConfig => ({\n  //     ...prevConfig,\n  //     fxlow: prevConfig.fxmin + 50,\n  //     fxhigh: prevConfig.fxmax - 50\n  //   }));\n  // }, [config.fxmin, config.fxmax]);\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          setPlaying: setPlaying,\n          COLORS: COLORS,\n          showNotesPar: showNotesPar,\n          size: size,\n          config: config,\n          isPlaying: isPlaying\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 584,\n          columnNumber: 16\n        }, this);\n      case 'Stair':\n        return /*#__PURE__*/_jsxDEV(Stair, {\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          playCount: playCount,\n          size: size,\n          config: config,\n          isPlaying: isPlaying\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 586,\n          columnNumber: 18\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          setPlaying: setPlaying,\n          isFixed: isFixed,\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          playCount: playCount,\n          size: size,\n          config: config,\n          isPlaying: isPlaying\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 588,\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          playCount: playCount,\n          size: size,\n          config: config,\n          isPlaying: isPlaying,\n          heteronymFile: heteronymFilenames\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 590,\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: 592,\n          columnNumber: 16\n        }, this);\n    }\n  };\n  const renderSelectedComponentLyric = () => {\n    switch (component) {\n      // case 'Constant':\n      //   return (\n      //     <div className='lyric'>\n      //       <ul>\n      //       </ul>\n      //     </div>\n      //   )\n      case 'ConstantTxt':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [/*#__PURE__*/_jsxDEV(Space, {\n            size: \"middle\",\n            children: /*#__PURE__*/_jsxDEV(Space.Compact, {\n              children: [/*#__PURE__*/_jsxDEV(Button, {\n                onClick: ClearTxt,\n                icon: /*#__PURE__*/_jsxDEV(RedoOutlined, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 613,\n                  columnNumber: 50\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 613,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Upload, {\n                maxCount: 1,\n                ...props,\n                children: /*#__PURE__*/_jsxDEV(Button, {\n                  icon: /*#__PURE__*/_jsxDEV(UploadOutlined, {}, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 616,\n                    columnNumber: 33\n                  }, this),\n                  children: \"Upload Txt File\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 616,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 615,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 610,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 609,\n            columnNumber: 13\n          }, this), /*#__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: 632,\n                columnNumber: 21\n              }, this);\n            })\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 621,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 607,\n          columnNumber: 11\n        }, this);\n      case 'Stair':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [/*#__PURE__*/_jsxDEV(Radio.Group, {\n            onChange: onChangeStair,\n            defaultValue: \"off\",\n            children: [/*#__PURE__*/_jsxDEV(Radio.Button, {\n              value: \"true\",\n              children: \"Show\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 643,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n              value: \"false\",\n              children: \"Hide\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 644,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 642,\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: 649,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 641,\n          columnNumber: 11\n        }, this);\n      case 'Heteronym':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [/*#__PURE__*/_jsxDEV(Radio.Group, {\n            onChange: onChangeStair,\n            defaultValue: \"off\",\n            children: [/*#__PURE__*/_jsxDEV(Radio.Button, {\n              value: \"true\",\n              children: \"Show\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 663,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n              value: \"false\",\n              children: \"Hide\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 664,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 662,\n            columnNumber: 13\n          }, this), (() => {\n            if (txtShow === 'true') {\n              return /*#__PURE__*/_jsxDEV(\"ul\", {\n                children: renderTruncatedFilenames(heteronymFilenames)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 669,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 661,\n          columnNumber: 11\n        }, this);\n      case 'Fixed':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: /*#__PURE__*/_jsxDEV(\"ul\", {\n            children: renderTruncatedFilenames(baseFilenames)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 682,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 681,\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: 688,\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  useEffect(() => {}, [playLyricCount]);\n  const onChangeRange = rangeValue => {\n    console.log(rangeValue[1]);\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\n  // useEffect(() => {\n  //   console.log(showNotesPar)\n  // }, [showNotesPar])\n\n  const EnableVoluneMode = e => {\n    console.log(e);\n    if (e) {\n      setEnableVol(true);\n    } else {\n      setEnableVol(false);\n    }\n  };\n  // Pause function\n  const onChangePause = () => {\n    setIsPlaying(!isPlaying);\n  };\n  const onChangePrevious = () => {\n    const tem = playLyricCount;\n    if (tem <= 0) {\n      setPlayLyricCount(0);\n    } else {\n      setPlayLyricCount(tem - 1);\n    }\n  };\n  const onChangeNext = () => {\n    const tem = playLyricCount;\n    console.log(playLyricCount);\n    if (tem >= maxLyricCount) {\n      setPlayLyricCount(maxLyricCount);\n    } else {\n      setPlayLyricCount(tem + 1);\n    }\n  };\n  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  const formatterSpd = value => {\n    if (value === undefined) {\n      return '0';\n    }\n    const mappedValue = (value - 5) * (50 / 15);\n    return `${mappedValue.toFixed(0)}`;\n  };\n  return (\n    /*#__PURE__*/\n    // <div className=\"app-container\" >\n    _jsxDEV(Row, {\n      children: /*#__PURE__*/_jsxDEV(Col, {\n        span: 24,\n        children: /*#__PURE__*/_jsxDEV(Layout, {\n          style: {\n            backgroundColor: \"rgb(232,232,232)\"\n          },\n          className: \"layout\",\n          children: /*#__PURE__*/_jsxDEV(Content, {\n            children: [/*#__PURE__*/_jsxDEV(Flex, {\n              style: {\n                maxWidth: \"100vw\"\n              },\n              align: \"center\",\n              justify: \"center\",\n              gap: \"middle\",\n              vertical: true,\n              children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                className: \"currentSelection\",\n                children: /*#__PURE__*/_jsxDEV(\"p\", {\n                  children: [\"Current Choice: \", currentSelection]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 805,\n                  columnNumber: 7\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 804,\n                columnNumber: 5\n              }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                children: renderSelectedComponent()\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 807,\n                columnNumber: 5\n              }, this), /*#__PURE__*/_jsxDEV(Flex, {\n                vertical: true,\n                justify: \"center\",\n                wrap: \"wrap\",\n                gap: \"small\",\n                ref: ref2,\n                children: [renderSelectedComponentLyric(), /*#__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: handleRetry,\n                      shape: \"circle\",\n                      icon: /*#__PURE__*/_jsxDEV(RedoOutlined, {}, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 829,\n                        columnNumber: 62\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 829,\n                      columnNumber: 11\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 828,\n                    columnNumber: 9\n                  }, this), /*#__PURE__*/_jsxDEV(ReactAudioPlayer, {\n                    className: \"audio-player-hidden\",\n                    src: audioSrcFromChild,\n                    ref: audioPlayer\n                    // autoPlay\n                    // controls\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 831,\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: 840,\n                        columnNumber: 93\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 840,\n                      columnNumber: 11\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 839,\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: 847,\n                        columnNumber: 67\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 847,\n                      columnNumber: 11\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 846,\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: 851,\n                        columnNumber: 76\n                      }, this) : /*#__PURE__*/_jsxDEV(CaretRightOutlined, {}, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 851,\n                        columnNumber: 96\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 851,\n                      columnNumber: 11\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 850,\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: 857,\n                        columnNumber: 63\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 857,\n                      columnNumber: 11\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 855,\n                    columnNumber: 11\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 826,\n                  columnNumber: 7\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 813,\n                columnNumber: 5\n              }, this), /*#__PURE__*/_jsxDEV(Button, {\n                onClick: showDrawer,\n                children: \"Options/Setting\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 865,\n                columnNumber: 5\n              }, this), /*#__PURE__*/_jsxDEV(Button, {\n                onClick: handleBeginTour,\n                children: \"Begin Tour\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 868,\n                columnNumber: 5\n              }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Setting\",\n                children: /*#__PURE__*/_jsxDEV(FloatButton, {\n                  style: {\n                    width: 50,\n                    height: 50,\n                    display: 'flex',\n                    alignItems: 'center',\n                    justifyContent: 'center'\n                  },\n                  onClick: showDrawer,\n                  ref: ref3,\n                  icon: /*#__PURE__*/_jsxDEV(SettingOutlined, {}, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 879,\n                    columnNumber: 48\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 873,\n                  columnNumber: 7\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 872,\n                columnNumber: 5\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 803,\n              columnNumber: 3\n            }, this), /*#__PURE__*/_jsxDEV(Drawer, {\n              title: \"Options\",\n              placement: \"right\",\n              onClose: onClose,\n              open: open,\n              afterOpenChange: handleAfterOpenChange,\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: \"# Avatar Selection: \"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 887,\n                    columnNumber: 9\n                  }, this), /*#__PURE__*/_jsxDEV(Dropdown, {\n                    menu: {\n                      items: itemsAvatar,\n                      selectable: true\n                    },\n                    placement: \"bottom\",\n                    children: /*#__PURE__*/_jsxDEV(Button, {\n                      children: genderName === \"none\" ? \"Avatar Voice\" : gender === \"Female\" ? genderName : 'Male01'\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 889,\n                      columnNumber: 11\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 888,\n                    columnNumber: 9\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 886,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: /*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Exercise Selection: \"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 894,\n                    columnNumber: 9\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 893,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: [/*#__PURE__*/_jsxDEV(Button, {\n                    onClick: handleStairAndConstantClick,\n                    children: \"Constant\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 898,\n                    columnNumber: 9\n                  }, this), /*#__PURE__*/_jsxDEV(Button, {\n                    onClick: handleStairAndConstantClick,\n                    children: \"Stair\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 900,\n                    columnNumber: 9\n                  }, this), /*#__PURE__*/_jsxDEV(Button, {\n                    onClick: handleStairAndConstantClick,\n                    children: \" Heteronym \"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 902,\n                    columnNumber: 10\n                  }, this), /*#__PURE__*/_jsxDEV(Dropdown, {\n                    menu: {\n                      items: itemsSyllable\n                    },\n                    placement: \"bottom\",\n                    children: /*#__PURE__*/_jsxDEV(Button, {\n                      children: syllableCount === \"none\" ? 'Human Curve' : syllableCount + ' syllable'\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 905,\n                      columnNumber: 11\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 904,\n                    columnNumber: 9\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 896,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Coordinate Display Mode\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 911,\n                    columnNumber: 9\n                  }, this), /*#__PURE__*/_jsxDEV(Radio.Group, {\n                    onChange: onChangeHz,\n                    defaultValue: \"a\",\n                    buttonStyle: \"solid\",\n                    children: [/*#__PURE__*/_jsxDEV(Radio.Button, {\n                      value: \"hz\",\n                      children: \" Hz \"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 913,\n                      columnNumber: 11\n                    }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                      value: \"notes\",\n                      children: \"Notes\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 914,\n                      columnNumber: 11\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 912,\n                    columnNumber: 9\n                  }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 916,\n                    columnNumber: 9\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 910,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Pitch Display Range\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 920,\n                    columnNumber: 7\n                  }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                    range: true,\n                    step: 10,\n                    min: 50,\n                    max: 600,\n                    onChange: onChangeRange\n                    // tooltipPlacement={bottom}\n                    ,\n                    tooltip: {\n                      placement: 'bottom',\n                      formatter: formatterHz,\n                      open: tooltipVisible\n                    }\n                    // tooltip={{ formatter: formatterHz}}\n                    ,\n                    marks: marksRange,\n                    defaultValue: [100, 300]\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 921,\n                    columnNumber: 7\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 919,\n                  columnNumber: 7\n                }, this), component !== \"Fixed\" && component !== \"Stair\" && /*#__PURE__*/_jsxDEV(\"div\", {\n                  children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Pitch Indicator Horizontal Position\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 941,\n                    columnNumber: 11\n                  }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                    step: 0.1,\n                    min: 0,\n                    max: 1,\n                    onChange: onChangePosition\n                    // tooltip={{ formatter: formatterPos }}\n                    ,\n                    tooltip: {\n                      placement: 'bottom',\n                      formatter: formatterPos,\n                      open: tooltipVisible\n                    },\n                    defaultValue: 0.5,\n                    marks: marksBallPos\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 942,\n                    columnNumber: 11\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 940,\n                  columnNumber: 9\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: 961,\n                    columnNumber: 11\n                  }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                    step: 0.1,\n                    min: 0,\n                    max: 1,\n                    onChange: onChangePosition\n                    // tooltip={{ formatter: formatterPos }}\n                    ,\n                    tooltip: {\n                      placement: 'bottom',\n                      formatter: formatterPos,\n                      open: tooltipVisible\n                    },\n                    defaultValue: 0.5,\n                    marks: marksBallPos\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 962,\n                    columnNumber: 11\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 960,\n                  columnNumber: 9\n                }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Pitch Indicator Speed\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 980,\n                    columnNumber: 7\n                  }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                    step: 0.05,\n                    min: 0,\n                    max: 1,\n                    onChange: onChangeSpeed\n                    // tooltip={{ formatter: formatterPos }}\n                    // tooltip={{\n                    //   placement: 'bottom',\n                    //   formatter: formatterPos,\n                    //   open: tooltipVisible,\n                    // }}\n                    ,\n                    defaultValue: 0.3,\n                    tooltip: {\n                      formatter: null\n                    }\n                    // marks={marksBall}\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 981,\n                    columnNumber: 7\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 979,\n                  columnNumber: 7\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: 1000,\n                      columnNumber: 9\n                    }, this), /*#__PURE__*/_jsxDEV(Switch, {\n                      defaultChecked: false,\n                      onChange: EnableVoluneMode\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 1001,\n                      columnNumber: 9\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 999,\n                    columnNumber: 9\n                  }, this), enableVol && /*#__PURE__*/_jsxDEV(Slider, {\n                    step: 1,\n                    min: 50,\n                    max: 90,\n                    onChange: onChangeThreshold,\n                    tooltip: {\n                      placement: 'bottom',\n                      formatter: formatterdB,\n                      open: tooltipVisible\n                    },\n                    defaultValue: 70,\n                    marks: marksVol\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 1005,\n                    columnNumber: 9\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 998,\n                  columnNumber: 9\n                }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1022,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: onClose,\n                  children: \"Close\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1023,\n                  columnNumber: 7\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 885,\n                columnNumber: 5\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 884,\n              columnNumber: 3\n            }, this), /*#__PURE__*/_jsxDEV(Tour, {\n              open: openTour,\n              onClose: () => setOpenTour(false),\n              steps: steps\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1028,\n              columnNumber: 3\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 801,\n            columnNumber: 1\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 799,\n          columnNumber: 9\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 798,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 797,\n      columnNumber: 7\n    }, this)\n\n    // </div>\n  );\n}\n_s(Sample, \"1VcwD8czKseqM+A4yUxrmpcVM2U=\", false, function () {\n  return [useLocation];\n});\n_c = Sample;\nexport default Sample;\nvar _c;\n$RefreshReg$(_c, \"Sample\");","map":{"version":3,"names":["React","useState","useEffect","useRef","Button","Flex","SettingOutlined","CustomerServiceOutlined","Col","Row","Tour","CaretRightOutlined","Slider","Layout","Dropdown","Drawer","Radio","RedoOutlined","PauseOutlined","StepForwardOutlined","StepBackwardOutlined","Tooltip","FloatButton","Space","Switch","ConstantTxt","Fixed","Stair","Heteronym","ReactAudioPlayer","UploadOutlined","message","Upload","hark","useLocation","jsxDEV","_jsxDEV","Header","Content","options","value","label","children","highlightedStyle","color","fontSize","style","display","height","marksRange","marksBall","marksBallPos","marksVol","Sample","_s","open","setOpen","txtShow","setTxtShow","txtShowBoo","setTxtShowBoo","size","location","initialRange","setInitialRange","config","setConfig","SRATE","fxmin","fxlow","fxhigh","fxmax","COLORS","realVoiceColor","targetVoiceColor","closeVoiceColor","maxLyricCount","setMaxLyricCount","isPlaying","setIsPlaying","isRetry","setIsRetry","setPlaying","setPlayingPause","handleRetry","ref1","ref2","ref3","volume","setVolume","divisor","setDivisor","openTour","setOpenTour","isFixed","setIsFixed","showNotesPar","setShowNotesPar","component","setComponent","ballPosition","setBallPosition","currentSelection","setCurrentSelection","playCount","setPlayCount","enableVol","setEnableVol","playLyricCount","setPlayLyricCount","gender","setGender","genderName","setGenderName","syllableCount","setSyllableCount","baseFilenames","setBaseFilenames","stairFilenames","setStairFilenames","heteronymFilenames","setHeteronymFilenames","audioPlayer","isListen","setIsListen","inputValue","setInputValue","threshold","setThreshold","displayText","setDisplayText","audioSrcFromChild","setAudioSrcFromChild","fileContent","setFileContent","showNextPre","setShowNextPre","showListen","setShowListen","enablePre","setEnablePre","enableNext","setEnableNext","parentRef","tooltipVisible","setTooltipVisible","handleChangeInputDevice","console","log","handleAfterOpenChange","scrollDrawerContent","drawerElement","document","querySelector","scrollOffset","scrollTop","handleBeginTour","window","scrollTo","queryParams","URLSearchParams","search","init","get","handleInputChange","e","target","props","name","accept","beforeUpload","file","reader","FileReader","onload","_e$target","result","content","separators","splitContent","split","map","s","trim","filter","Boolean","length","readAsText","onChange","info","status","success","error","handleSubmit","handleAudioSrc","newAudioSrc","steps","title","description","placement","current","cover","textAlign","fileName","_jsxFileName","lineNumber","columnNumber","saveGender","genderType","genderNameType","key","handleStairAndConstantClick","innerText","renderTruncatedFilenames","filenames","text","index","maxIndexToShow","shouldShow","isNearEnd","startIndex","showCondition","className","handleMenuClick","componentType","syllableCountType","tt","playAudio","audioEl","play","then","catch","handlePlayLyricCountChange","newCount","itemsMale","onClick","itemsFemale","itemsAvatar","itemsSyllable","handleAudio","prevCount","showDrawer","onChangeStair","ClearTxt","onClose","navigator","mediaDevices","getUserMedia","audio","video","stream","harkInstance","on","stop","renderSelectedComponent","ref","onAudioSrcChange","onPlayLyricCountChange","heteronymFile","renderSelectedComponentLyric","Compact","icon","maxCount","Group","defaultValue","onChangeRange","rangeValue","onChangePosition","positionValue","onChangeSpeed","speedValue","mappedValue","Math","round","onChangeHz","EnableVoluneMode","onChangePause","onChangePrevious","tem","onChangeNext","onChangeThreshold","formatterdB","formatterHz","formatterPos","toFixed","formatterSpd","undefined","span","backgroundColor","maxWidth","align","justify","gap","vertical","wrap","shape","src","disabled","width","alignItems","justifyContent","afterOpenChange","menu","items","selectable","buttonStyle","range","step","min","max","tooltip","formatter","marks","defaultChecked","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/Route/Sample.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { Button, Flex, Segmented } from 'antd';\r\nimport { PoweroffOutlined, PauseCircleFilled, PlayCircleFilled } from '@ant-design/icons';\r\nimport { AppstoreOutlined, MailOutlined, SettingOutlined, CustomerServiceOutlined } from '@ant-design/icons';\r\nimport { Col, Row, Tour } from 'antd';\r\nimport { FrownOutlined, SmileOutlined, CaretRightOutlined, CheckOutlined, CloseOutlined } from '@ant-design/icons';\r\nimport { Slider, Input } from 'antd';\r\nimport { Breadcrumb, Layout, Menu, Dropdown, theme } from 'antd';\r\nimport { Drawer, Cascader, Radio } from 'antd';\r\nimport { Select } from 'antd';\r\nimport { SearchOutlined, RedoOutlined, PauseOutlined, StepForwardOutlined, StepBackwardOutlined } from '@ant-design/icons';\r\nimport { Tooltip, FloatButton, Space, Switch } from 'antd';\r\nimport '../CSS/sample.css';\r\nimport Constant from '../Canvas/Constant'\r\nimport ConstantTxt from '../Canvas/ConstantTxt'\r\nimport Fixed from '../Canvas/Fixed'\r\nimport Stair from '../Canvas/Stair'\r\nimport Heteronym from '../Canvas/Heteronym'\r\nimport type { RadioChangeEvent } from 'antd';\r\nimport type { MenuProps } from 'antd';\r\nimport type { TourProps } from 'antd';\r\nimport ReactAudioPlayer from 'react-audio-player';\r\nimport Cookies from 'js-cookie';\r\nimport type { SliderSingleProps } from 'antd';\r\nimport type { UploadProps } from 'antd';\r\nimport { UploadOutlined, ArrowLeftOutlined, RollbackOutlined } from '@ant-design/icons';\r\nimport { message, Upload } from 'antd';\r\nimport hark from 'hark';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { render } from '@testing-library/react';\r\n// import mammoth from 'mammoth';\r\n// import useCookieState from '../function/useCookieState';\r\n// import { useCookieState } from 'ahooks';\r\nconst { Header, Content } = Layout;\r\n\r\n\r\ninterface FloatButtonProps {\r\n  // Other attribute definitions\r\n  children?: React.ReactNode; // Add this line to accept child elements\r\n}\r\ninterface Option {\r\n  value: string;\r\n  label: string;\r\n  disabled?: boolean;\r\n}\r\nconst options = [\r\n  {\r\n    value: 'Female',\r\n    label: 'Female Voice',\r\n    children: [\r\n      {\r\n        value: 'Fixed',\r\n        label: 'Traing 1',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    value: 'Male',\r\n    label: 'Male Voice',\r\n    children: [\r\n      {\r\n        value: 'Fixed',\r\n        label: 'Traing 1',\r\n      },\r\n    ],\r\n  },\r\n\r\n  {\r\n    value: 'TargetCurve',\r\n    label: 'Target Curve',\r\n    children: [\r\n      {\r\n        value: 'Constant',\r\n        label: 'Constant',\r\n      },\r\n      {\r\n        value: 'ConstantTxt',\r\n        label: 'Constant with user input',\r\n      },\r\n      {\r\n        value: 'Stair',\r\n        label: 'Stair Case',\r\n      },\r\n    ],\r\n  },\r\n];\r\nconst highlightedStyle = {\r\n  color: 'rgb(75, 216, 43)',\r\n  fontSize: '25px'\r\n};\r\nconst style: React.CSSProperties = {\r\n  display: 'relative',\r\n  height: 300,\r\n};\r\nconst marksRange: SliderSingleProps['marks'] = {\r\n  50: '50Hz',\r\n  600: '600Hz'\r\n};\r\n\r\nconst marksBall: SliderSingleProps['marks'] = {\r\n  0: 'Slowest',\r\n  1: 'Fastest'\r\n};\r\nconst marksBallPos: SliderSingleProps['marks'] = {\r\n  0: '0%',\r\n  1: '100%'\r\n};\r\n\r\nconst marksVol: SliderSingleProps['marks'] = {\r\n  50: '50dB',\r\n  90: '90dB'\r\n};\r\nfunction Sample() {\r\n  const [open, setOpen] = useState(false);\r\n  const [txtShow, setTxtShow] = useState<string>(\"true\");\r\n  const [txtShowBoo, setTxtShowBoo] = useState<boolean>(true);\r\n  const size = [400, 1400];\r\n  const location = useLocation();\r\n  // const config = {\r\n  //   SRATE: 48000,\r\n  //   fxmin: 50,\r\n  //   fxlow: 100,\r\n  //   fxhigh: 400,\r\n  //   fxmax: 600\r\n  // };\r\n  const [initialRange, setInitialRange] = useState<number[]>([100, 300]);\r\n  // const [initialRange, setInitialRange] = useCookieState<number[]>('initialRange',[100,300]);\r\n  const [config, setConfig] = useState({\r\n    SRATE: 48000,\r\n    fxmin: 50,\r\n    fxlow: 50 + 50, // This initial value will be updated by useEffect below\r\n    fxhigh: 600 - 200, // This initial value will be updated by useEffect below\r\n    fxmax: 600\r\n  });\r\n  const COLORS = {\r\n    realVoiceColor: '#FF0000', // red\r\n    targetVoiceColor: '#00008B', // blue\r\n    closeVoiceColor: '#FFFF00', // yellow\r\n  };\r\n\r\n  const [maxLyricCount, setMaxLyricCount] = useState<number>(2);\r\n  const [isPlaying, setIsPlaying] = useState(true);\r\n  const [isRetry, setIsRetry] = useState(false);\r\n  const setPlaying = () => {\r\n    setIsPlaying(true);\r\n  };\r\n  const setPlayingPause = () => {\r\n    setIsPlaying(false);\r\n  };\r\n  const handleRetry = () => {\r\n    setIsRetry(!isRetry);\r\n  };\r\n\r\n  const ref1 = useRef(null);\r\n  const ref2 = useRef(null);\r\n  \r\n  const ref3 = useRef(null);\r\n  const [volume, setVolume] = useState(0);\r\n  const [divisor, setDivisor] = useState<number>(10);\r\n  const [openTour, setOpenTour] = useState<boolean>(false);\r\n  const [isFixed, setIsFixed] = useState(true);\r\n  const [showNotesPar, setShowNotesPar] = useState(true);\r\n  const [component, setComponent] = useState<string>(\"ConstantTxt\");\r\n  // const [component, setComponent] = useCookieState<string | number>(\"Constant\", \"initialValue\");\r\n  // const [component, setComponent] = useCookieState<string>('component11',\"Constant\");\r\n  const [ballPosition, setBallPosition] = useState<number>(0.5);\r\n  // const [selectedComponent, setSelectedComponent] = useState<React.ReactNode>(<Constant ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />);\r\n  const [currentSelection, setCurrentSelection] = useState('Constant'); //The initial state is empty\r\n  const [playCount, setPlayCount] = useState(0);\r\n  const [enableVol, setEnableVol] = useState<boolean>(false);\r\n  const [playLyricCount, setPlayLyricCount] = useState<number>(0);\r\n  const [gender, setGender] = useState<string>(\"none\");\r\n  const [genderName, setGenderName] = useState<string>(\"none\");\r\n  const [syllableCount, setSyllableCount] = useState<string>(\"none\");\r\n  const [baseFilenames, setBaseFilenames] = useState<string[]>([]);\r\n  const [stairFilenames, setStairFilenames] = useState<string[]>([\r\n    \"Bigger and better\",\r\n    \"Drum and bugle corps\",\r\n    \"He has a good job\",\r\n    \"Before and after\",\r\n    \"Come back right away\",\r\n    \"Blow up the balloon\"\r\n  ]);\r\n  const [heteronymFilenames, setHeteronymFilenames] = useState<string[]>([\r\n    \"ADdress adDRESS\",\r\n    \"CONduct conDUCT\",\r\n    \"CONflict conFLICT\",\r\n    \"CONtent conTENT\",\r\n    \"CONsole conSOLE\",\r\n    \"CONtest conTEST\",\r\n    \"CONtrast conTRAST\",\r\n    \"CONtract conTRACT\",\r\n    \"DEsert deSERT\",\r\n    \"CONvert conVERT\",\r\n    \"EScort esCORT\",\r\n    \"EXport exPORT\",\r\n    \"CONvict conVICT\",\r\n    \"EXtract exTRACT\",\r\n    \"IMport imPORT\",\r\n    \"DIgest diGEST\",\r\n    \"INcrease inCREASE\",\r\n    \"INsult inSULT\",\r\n    \"PROduce proDUCE\",\r\n    \"REcord reCORD\",\r\n    \"TRANSfer transFER\",\r\n    \"IMprint imPRINT\",\r\n    \"INsert inSERT\",\r\n    \"COMpound comPOUND\",\r\n    \"INvalid inVALID\",\r\n    \"OBject obJECT\",\r\n    \"MINute minUTE\",\r\n    \"PERmit perMIT\",\r\n    \"PROject proJECT\",\r\n    \"PREsent preSENT\"\r\n  ]);\r\n  const audioPlayer = useRef<ReactAudioPlayer>(null);\r\n  const [isListen, setIsListen] = useState<number>(1);\r\n  const [inputValue, setInputValue] = useState('');\r\n  const [threshold, setThreshold] = useState<number>(70);\r\n  // const [showThreshold, setShowThreshold] = useState<boolean>(false);\r\n  const [displayText, setDisplayText] = useState('Input Txt');\r\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState<string>('');\r\n  const [fileContent, setFileContent] = useState<string[]>([]);\r\n  const [showNextPre, setShowNextPre] = useState<boolean>(false);\r\n  const [showListen, setShowListen] = useState<boolean>(false);\r\n  const [enablePre, setEnablePre] = useState<boolean>(false);\r\n  const [enableNext, setEnableNext] = useState<boolean>(true);\r\n  const parentRef = useRef<HTMLDivElement>(null);\r\n\r\n  // const [showPre, SetShowPre] = useState<boolean>(false);\r\n  const [tooltipVisible, setTooltipVisible] = useState(false);\r\n  const handleChangeInputDevice = (value: string) => {\r\n    console.log(`selected ${value}`);\r\n  };\r\n\r\n  // const drawerRef = useRef(null);\r\n    const handleAfterOpenChange = (open:boolean) => {\r\n      if (open) {\r\n        setTooltipVisible(true);\r\n        scrollDrawerContent();\r\n      } else {\r\n        setTooltipVisible(false);\r\n      }\r\n    };\r\n    const scrollDrawerContent = () => {\r\n      const drawerElement = document.querySelector('.ant-drawer-body');\r\n      const scrollOffset = 13;\r\n  \r\n      if (drawerElement) {\r\n        drawerElement.scrollTop = scrollOffset;\r\n      }\r\n    };\r\n\r\n  const handleBeginTour = () => {\r\n    // Open the tour\r\n    setOpenTour(true);\r\n    window.scrollTo(0, 0);\r\n  };\r\n  useEffect(() => {\r\n    const queryParams = new URLSearchParams(location.search);\r\n    const init = queryParams.get('init');\r\n    if (init === 'true') {\r\n      handleBeginTour();\r\n    }\r\n  }, [location]);\r\n  const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n    setInputValue(e.target.value);\r\n  };\r\n  const props: UploadProps = {\r\n    name: 'file',\r\n    accept: '.txt',\r\n    beforeUpload: (file) => {\r\n      const reader = new FileReader();\r\n      reader.onload = (e: ProgressEvent<FileReader>) => {\r\n        if (e.target?.result) {\r\n          const content = e.target.result as string;\r\n          // const separators = /[;,./]/;\r\n          const separators = /[;,./\\n]/;\r\n          const splitContent = content.split(separators)\r\n            .map(s => s.trim())\r\n            .filter(Boolean);\r\n          console.log(splitContent);\r\n          setFileContent(splitContent);\r\n          setMaxLyricCount(splitContent.length - 1);\r\n          setPlayLyricCount(0);\r\n        }\r\n      };\r\n\r\n      reader.readAsText(file);\r\n\r\n      return false;\r\n    },\r\n    onChange(info) {\r\n      if (info.file.status === 'done') {\r\n        message.success(`${info.file.name} file read successfully`);\r\n      } else if (info.file.status === 'error') {\r\n        message.error(`${info.file.name} file read failed.`);\r\n      }\r\n    },\r\n  };\r\n\r\n\r\n  const handleSubmit = () => {\r\n    setDisplayText(inputValue);\r\n  };\r\n\r\n  const handleAudioSrc = (newAudioSrc: string) => {\r\n    setAudioSrcFromChild(newAudioSrc);\r\n  };\r\n  const steps: TourProps['steps'] = [\r\n    {\r\n      title: 'Canvas Display',\r\n      description: 'Visualize your voice pitch and target pitch curve in real-time.',\r\n      placement: 'top',\r\n      target: () => ref1.current,\r\n    },\r\n    {\r\n      title: 'Function Buttons',\r\n      // description: 'Save your changes.',\r\n      cover: (\r\n        <ul style={{ textAlign: 'left' }}>\r\n          <li>Start/Stop: Begin or stop recording.</li>\r\n          <li>Retry: Clear display and restart.</li>\r\n          <li>Upload txt File (optional): Upload text for you (in .txt format) to read while recording.</li>\r\n          <li>Previous Next (if text uploaded): Switch between lines of text.</li>\r\n        </ul>\r\n      ),\r\n      target: () => ref2.current,\r\n    },\r\n    {\r\n      title: 'Slider',\r\n      description: 'Use this slides to change the target pitch value that you want to aim for.',\r\n      target: () => parentRef.current as HTMLDivElement,\r\n    },\r\n    {\r\n      title: 'Options menu',\r\n      description: 'Switch between different exercises and adjust settings such as the pitch display range.',\r\n      target: () => ref3.current,\r\n    },\r\n\r\n  ];\r\n\r\n\r\nconst saveGender = (e: any) => {\r\n  const [genderType, genderNameType] = e.key.split('-');\r\n  setGender(genderType);\r\n  setGenderName(genderNameType);\r\n  console.log('genderName', genderName)\r\n}\r\n\r\nconst handleStairAndConstantClick = (e: any) => {\r\n  setCurrentSelection(e.target.innerText);\r\n  if (e.target.innerText === \"Constant\"){\r\n    setComponent(\"ConstantTxt\");\r\n  } else if (e.target.innerText === \"Stair\") {\r\n    setComponent(\"Stair\");\r\n  } else {\r\n    setComponent(e.target.innerText);\r\n  }\r\n\r\n  setSyllableCount(\"none\");\r\n}\r\nconst renderTruncatedFilenames = (filenames: string[]) => {\r\n  return filenames.map((text, index) => {\r\n    const maxIndexToShow = playLyricCount + 2 >= filenames.length ? filenames.length - 1 : playLyricCount + 2;\r\n    const shouldShow = index >= playLyricCount && index <= maxIndexToShow;\r\n    const isNearEnd = filenames.length - playLyricCount <= 2;\r\n    const startIndex = isNearEnd ? filenames.length - 3 : playLyricCount;\r\n    const showCondition = index >= startIndex && index <= startIndex + 2;\r\n\r\n    return (\r\n      showCondition && (\r\n        <li key={index} className={playLyricCount === index ? 'highlighted' : ''}>{text}</li>\r\n      )\r\n    );\r\n  });\r\n};\r\n\r\nconst handleMenuClick = (e: any) => {\r\n    console.log('choose:', e);\r\n    const [componentType, genderType, syllableCountType] = e.key.split('-');\r\n    if (componentType == \"Constant\") {\r\n      setCurrentSelection(\"Constant\");\r\n    } else if (componentType == \"ConstantTxt\") {\r\n      setCurrentSelection(\"Constant\");\r\n    } else if (componentType == \"Stair\") {\r\n      setCurrentSelection(\"Staircase\");\r\n    } else {\r\n      let tt = \"Syllables \" + syllableCountType\r\n      setCurrentSelection(tt);\r\n    }\r\n\r\n    // setComponent(e.key);  \r\n    setComponent(componentType);\r\n    setGender(genderType);\r\n    setSyllableCount(syllableCountType);\r\n    setCurrentSelection(e.key+ \"syllable \" + genderName);\r\n  };\r\n  const playAudio = () => {\r\n    // if (audioPlayer.current && audioPlayer.current.audioEl.current) {\r\n    //   audioPlayer.current.audioEl.current.play();\r\n    //   setIsListen(isListen+1);\r\n    // }\r\n    if (audioPlayer.current && audioPlayer.current.audioEl.current) {\r\n      audioPlayer.current.audioEl.current.play()\r\n        .then(() => {\r\n          setIsListen(isListen + 1);\r\n        })\r\n        .catch(error => {\r\n          console.error('Fail play audios: ', error);\r\n        });\r\n    }\r\n  \r\n  };\r\n\r\n  const handlePlayLyricCountChange = (newCount: number) => {\r\n    setPlayLyricCount(newCount);\r\n  };\r\n\r\n  const itemsMale: MenuProps['items'] = [\r\n    {\r\n      key: 'male',\r\n      label: \"Male01\",\r\n      onClick: saveGender,\r\n    },\r\n  ];\r\n  \r\n  const itemsFemale: MenuProps['items'] = [\r\n    {\r\n      key: 'Female-Fem01',\r\n      label: \"Fem01\",\r\n      onClick: saveGender,\r\n    },\r\n    {\r\n      key: 'Female-Fem02',\r\n      label: \"Fem02\",\r\n      onClick: saveGender,\r\n    },\r\n    {\r\n      key: 'Female-Fem03',\r\n      label: \"Fem03\",\r\n      onClick: saveGender,\r\n    },\r\n    {\r\n      key: 'Female-Fem04',\r\n      label: \"Fem04\",\r\n      onClick: saveGender,\r\n    },\r\n    {\r\n      key: 'Female-Fem05',\r\n      label: \"Fem05\",\r\n      onClick: saveGender,\r\n    },\r\n    {\r\n      key: 'Female-Fem06',\r\n      label: \"Fem06\",\r\n      onClick: saveGender,\r\n    },\r\n    {\r\n      key: 'Female-Fem07',\r\n      label: \"Fem07\",\r\n      onClick: saveGender,\r\n    },\r\n  ];\r\n\r\n  const itemsAvatar: MenuProps['items'] = [\r\n    {\r\n      key: '1',\r\n      label: 'Male',\r\n      children: [\r\n        ...itemsMale\r\n      ],\r\n    },\r\n    {\r\n      key: '2',\r\n      label: 'Female',\r\n      children: [\r\n        ...itemsFemale\r\n      ],\r\n    },\r\n  ];\r\n\r\n  /**\r\n * Defines the items for the syllable menu based on the gender.\r\n * If the gender is 'none', it only includes a single item prompting the user to select an avatar.\r\n * Otherwise, it includes multiple items representing the number of syllables, with corresponding click handlers.\r\n */\r\n  const itemsSyllable: MenuProps['items'] = gender === 'none' ? [\r\n    {\r\n      key: 'SelectAvatar',\r\n      label: 'Please select avatar',\r\n    },\r\n  ] : [\r\n    {\r\n      key: `Fixed-${gender}-2`,\r\n      label: \"2 syllables\",\r\n      onClick: handleMenuClick,\r\n    },\r\n    {\r\n      key: `Fixed-${gender}-3`,\r\n      label: \"3 syllables\",\r\n      onClick: handleMenuClick,\r\n    },\r\n    {\r\n      key: `Fixed-${gender}-4`,\r\n      label: \"4 syllables\",\r\n      onClick: handleMenuClick,\r\n    },\r\n    {\r\n      key: `Fixed-${gender}-5`,\r\n      label: \"5 syllables\",\r\n      onClick: handleMenuClick,\r\n    },\r\n  ];\r\n\r\n  const handleAudio = () => {\r\n    setPlayCount(prevCount => prevCount + 1); // Increment counter with each click\r\n  };\r\n  const showDrawer = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n\r\n  const onChangeStair = (e: RadioChangeEvent) => {\r\n    setTxtShow(e.target.value);\r\n    // setTxtShowBoo(e.target.value);\r\n    // console.log(txtShow);\r\n    console.log(e);\r\n  };\r\n  // useEffect(() => {\r\n  //   if (txtShow) {\r\n  //     set \r\n  //   } else {\r\n\r\n  //   }\r\n  // },[txtShow]);\r\n\r\n  const ClearTxt = () => {\r\n    setFileContent([]);\r\n    setMaxLyricCount(1);\r\n    setPlayCount(0);\r\n  };\r\n  const onClose = () => {\r\n    setOpen(false);\r\n  };\r\n  useEffect(() => {\r\n    navigator.mediaDevices.getUserMedia({ audio: true, video: false })\r\n      .then(stream => {\r\n        const harkInstance = hark(stream, {});\r\n\r\n        harkInstance.on('volume_change', (volume, threshold) => {\r\n          // console.log('Volume:', volume, 'Threshold:', threshold);\r\n          setVolume(volume);\r\n        });\r\n\r\n        return () => harkInstance.stop();\r\n      })\r\n      .catch(error => {\r\n        console.error('Error accessing the microphone', error);\r\n      });\r\n  }, []);\r\n\r\n\r\n\r\n  useEffect(() => {\r\n    if (volume > threshold - 100 && enableVol) {\r\n      setIsPlaying(true);\r\n    }\r\n  }, [volume]);\r\n\r\n  // useEffect(() => {\r\n  //   setConfig(prevConfig => ({\r\n  //     ...prevConfig,\r\n  //     fxlow: prevConfig.fxmin + 50,\r\n  //     fxhigh: prevConfig.fxmax - 50\r\n  //   }));\r\n  // }, [config.fxmin, config.fxmax]);\r\n\r\n  const renderSelectedComponent = (): React.ReactNode => {\r\n    switch (component) {\r\n      // case 'Constant':\r\n      //   return <Constant ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\r\n      case 'ConstantTxt':\r\n        return <ConstantTxt ref={parentRef} initialRange={initialRange} divisor={divisor} ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\r\n      case 'Stair':\r\n          return <Stair setMaxLyricCount={setMaxLyricCount} initialRange={initialRange} divisor={divisor} txtShow={txtShow} playLyricCount={playLyricCount} setPlayingPause={setPlayingPause} isRetry={isRetry} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} playCount={playCount} size={size} config={config} isPlaying={isPlaying} />;\r\n      case 'Fixed':\r\n        return <Fixed setMaxLyricCount={setMaxLyricCount} setIsListen={setIsListen} isListen={isListen} initialRange={initialRange} divisor={divisor} setPlayingPause={setPlayingPause} isRetry={isRetry} setPlaying={setPlaying} isFixed={isFixed} onAudioSrcChange={handleAudioSrc} setBaseFilenames={setBaseFilenames} onPlayLyricCountChange={handlePlayLyricCountChange} syllableCount={syllableCount} gender={gender} genderName={genderName} COLORS={COLORS} showNotesPar={showNotesPar} playLyricCount={playLyricCount} playCount={playCount} size={size} config={config} isPlaying={isPlaying} />;\r\n      case 'Heteronym':\r\n        return <Heteronym setMaxLyricCount={setMaxLyricCount} initialRange={initialRange} divisor={divisor} txtShow={txtShow} playLyricCount={playLyricCount} setPlayingPause={setPlayingPause} isRetry={isRetry} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} playCount={playCount} size={size} config={config} isPlaying={isPlaying} heteronymFile={heteronymFilenames} />;\r\n        default:\r\n        return <span>Canvas: Picture</span>;\r\n    }\r\n  }\r\n\r\n  const renderSelectedComponentLyric = (): React.ReactNode => {\r\n    switch (component) {\r\n      // case 'Constant':\r\n      //   return (\r\n      //     <div className='lyric'>\r\n      //       <ul>\r\n      //       </ul>\r\n      //     </div>\r\n      //   )\r\n      case 'ConstantTxt':\r\n        return (\r\n          <div className='lyric'>\r\n\r\n            <Space size=\"middle\">\r\n              <Space.Compact>\r\n\r\n\r\n                <Button onClick={ClearTxt} icon={<RedoOutlined />}></Button>\r\n\r\n                <Upload maxCount={1} {...props}>\r\n                  <Button icon={<UploadOutlined />}>Upload Txt File</Button>\r\n                </Upload>\r\n              </Space.Compact>\r\n            </Space>\r\n\r\n            <ul>\r\n              {fileContent.map((text, index) => {\r\n                const maxIndexToShow = playLyricCount + 2 >= fileContent.length ? fileContent.length - 1 : playLyricCount + 2;\r\n                \r\n                const shouldShow = index >= playLyricCount && index <= maxIndexToShow;\r\n                const isNearEnd = fileContent.length - playLyricCount <= 2;\r\n                const startIndex = isNearEnd ? fileContent.length - 3 : playLyricCount;\r\n                const showCondition = index >= startIndex && index <= startIndex + 2;\r\n\r\n                return (\r\n                  showCondition && (\r\n                    <li key={index} className={playLyricCount === index ? 'highlighted' : ''}>{text}</li>\r\n                  )\r\n                );\r\n              })}\r\n            </ul>\r\n          </div>\r\n        )\r\n      case 'Stair':\r\n        return (\r\n          <div className='lyric'>\r\n            <Radio.Group onChange={onChangeStair} defaultValue=\"off\">\r\n              <Radio.Button value=\"true\">Show</Radio.Button>\r\n              <Radio.Button value=\"false\">Hide</Radio.Button>\r\n            </Radio.Group>\r\n            {(() => {\r\n              if (txtShow === 'true') {\r\n                return (\r\n                  <ul>                    \r\n                    {renderTruncatedFilenames(stairFilenames)}\r\n                  </ul>\r\n                );\r\n              }\r\n              return null;\r\n            })()}\r\n           \r\n          </div>\r\n        )\r\n      case 'Heteronym':\r\n        return (\r\n          <div className='lyric'>\r\n            <Radio.Group onChange={onChangeStair} defaultValue=\"off\">\r\n              <Radio.Button value=\"true\">Show</Radio.Button>\r\n              <Radio.Button value=\"false\">Hide</Radio.Button>\r\n            </Radio.Group>\r\n            {(() => {\r\n              if (txtShow === 'true') {\r\n                return (\r\n                  <ul>                    \r\n                    {renderTruncatedFilenames(heteronymFilenames)}\r\n                  </ul>\r\n                );\r\n              }\r\n              return null;\r\n            })()}\r\n           \r\n          </div>\r\n        )\r\n      case 'Fixed':\r\n        return (\r\n          <div className='lyric'>\r\n            <ul>\r\n            {renderTruncatedFilenames(baseFilenames)}\r\n            </ul>\r\n          </div>\r\n        )\r\n      default:\r\n        return <span>Canvas: Picture</span>;\r\n    }\r\n  }\r\n\r\n  useEffect(()=>{\r\n    if (component == \"ConstantTxt\" && fileContent.length === 0) {\r\n      setShowNextPre(false);\r\n      setShowListen(false);\r\n    } else if (component == \"ConstantTxt\" && fileContent.length != 0) {\r\n      setShowNextPre(true);\r\n      setShowListen(false);\r\n    }  \r\n    else if(component == \"Fixed\") {\r\n      setShowNextPre(true);\r\n      setShowListen(true);\r\n    } else if(component == \"Stair\") {\r\n      setShowNextPre(true);\r\n      setShowListen(false);\r\n    } else if(component == \"Heteronym\") {\r\n      setShowNextPre(true);\r\n      setShowListen(false);\r\n    } else {\r\n      setShowNextPre(true);\r\n      setShowListen(false);\r\n    }\r\n  }\r\n  ,[component,fileContent]);\r\n\r\n  useEffect(()=>{\r\n\r\n  },[playLyricCount]);\r\n  const onChangeRange = (rangeValue: number[]) => {\r\n    console.log(rangeValue[1]);\r\n    setInitialRange([rangeValue[0], rangeValue[1]]);\r\n\r\n  }\r\n\r\n  const onChangePosition = (positionValue: number) => {\r\n    setBallPosition(positionValue);\r\n  }\r\n\r\n  const onChangeSpeed = (speedValue: number) => {\r\n    const mappedValue = Math.round((speedValue * 20) + 4);\r\n    setDivisor(mappedValue);\r\n  }\r\n\r\n  const onChangeHz = ({ target: { value } }: RadioChangeEvent) => {\r\n    console.log(value);\r\n    if (value === 'hz') {\r\n      setShowNotesPar(false);\r\n    } else {\r\n      setShowNotesPar(true);\r\n    }\r\n  }\r\n\r\n  // useEffect(() => {\r\n  //   console.log(showNotesPar)\r\n  // }, [showNotesPar])\r\n\r\n  const EnableVoluneMode = (e: boolean) => {\r\n    console.log(e);\r\n    if (e) {\r\n      setEnableVol(true);\r\n\r\n    } else {\r\n      setEnableVol(false);\r\n\r\n    }\r\n  }\r\n  // Pause function\r\n  const onChangePause = () => {\r\n    setIsPlaying(!isPlaying);\r\n  }\r\n  const onChangePrevious = () => {\r\n    const tem = playLyricCount;\r\n    if (tem <= 0) {\r\n      setPlayLyricCount(0);\r\n    } else {\r\n      setPlayLyricCount(tem - 1);\r\n    }\r\n  };\r\n\r\n  const onChangeNext = () => {\r\n    const tem = playLyricCount;\r\n    console.log(playLyricCount);\r\n    if (tem >= maxLyricCount) {\r\n      setPlayLyricCount(maxLyricCount);\r\n    } else {\r\n      setPlayLyricCount(tem + 1);\r\n    }\r\n  };\r\n\r\n  const onChangeThreshold = (e: number) => {\r\n    setThreshold(e);\r\n  };\r\n  const formatterdB = (value: number | undefined) => `${value} dB`;\r\n  const formatterHz = (value: number | undefined) => `${value} Hz`;\r\n  const formatterPos = (value: number | undefined) => `${value ? (value * 100).toFixed(0) : '0'}%`;\r\n  const formatterSpd = (value: number | undefined) => {\r\n    if (value === undefined) {\r\n      return '0';\r\n    }\r\n    const mappedValue = (value - 5) * (50 / 15);\r\n    return `${mappedValue.toFixed(0)}`;\r\n  };\r\n  \r\n  \r\n  return (\r\n    // <div className=\"app-container\" >\r\n      <Row>\r\n        <Col span={24}>\r\n        <Layout style={{ backgroundColor: \"rgb(232,232,232)\" }} className=\"layout\">\r\n\r\n<Content>\r\n\r\n  <Flex style={{ maxWidth: \"100vw\" }} align=\"center\" justify=\"center\" gap=\"middle\" vertical>\r\n    <div className=\"currentSelection\">\r\n      <p>Current Choice: {currentSelection}</p>\r\n    </div>\r\n    <div>\r\n      {renderSelectedComponent()}\r\n    </div>\r\n\r\n\r\n    \r\n    <Flex vertical justify=\"center\" wrap=\"wrap\" gap=\"small\" ref={ref2} >\r\n    {renderSelectedComponentLyric()}\r\n      {/* <Flex justify=\"center\" wrap=\"wrap\" gap=\"small\">\r\n        {showListen && \r\n          <Tooltip title=\"Listen\">\r\n          <Button disabled={component !== \"Fixed\"} shape=\"circle\" onClick={playAudio} icon={<CustomerServiceOutlined />} />\r\n        </Tooltip>\r\n        }               \r\n        <Tooltip title={isPlaying ? \"Pause\" : \"Play\"}>\r\n          <Button onClick={onChangepause} shape=\"circle\" icon={isPlaying ? <PauseOutlined /> : <CaretRightOutlined />} />\r\n        </Tooltip>\r\n      </Flex> */}\r\n\r\n      <Flex justify=\"center\" wrap=\"wrap\" gap=\"small\">\r\n        \r\n        <Tooltip title=\"Retry\">\r\n          <Button onClick={handleRetry} shape=\"circle\" icon={<RedoOutlined />} />\r\n        </Tooltip>\r\n        <ReactAudioPlayer\r\n          className=\"audio-player-hidden\"\r\n          src={audioSrcFromChild}\r\n          ref={audioPlayer}\r\n        // autoPlay\r\n        // controls\r\n        />\r\n        {showListen && \r\n          <Tooltip title=\"Listen\">\r\n          <Button disabled={component !== \"Fixed\"} shape=\"circle\" onClick={playAudio} icon={<CustomerServiceOutlined />} />\r\n        </Tooltip>\r\n        }\r\n\r\n        {\r\n          showNextPre &&\r\n          <Tooltip title=\"Previous\">\r\n          <Button shape=\"circle\" onClick={onChangePrevious} icon={<StepBackwardOutlined />} />\r\n        </Tooltip>\r\n        }\r\n        <Tooltip title={isPlaying ? \"Pause\" : \"Play\"}>\r\n          <Button onClick={onChangePause} shape=\"circle\" icon={isPlaying ? <PauseOutlined /> : <CaretRightOutlined />} />\r\n        </Tooltip>\r\n        {\r\n          showNextPre &&\r\n          <Tooltip title=\"Next\">\r\n          {/* <Button disabled={component !== \"Fixed\" && component !== \"Stair\" && component !== \"ConstantTxt\"} shape=\"circle\" onClick={onChangeNext} icon={<StepForwardOutlined />} /> */}\r\n          <Button shape=\"circle\" onClick={onChangeNext} icon={<StepForwardOutlined />} />\r\n        </Tooltip>\r\n        }\r\n        \r\n      </Flex>\r\n    </Flex>\r\n\r\n\r\n    <Button onClick={showDrawer} >\r\n      Options/Setting\r\n    </Button>\r\n    <Button onClick={handleBeginTour}>\r\n      Begin Tour\r\n    </Button>\r\n\r\n    <Tooltip title=\"Setting\">\r\n      <FloatButton style={{\r\n        width: 50,\r\n        height: 50,\r\n        display: 'flex',\r\n        alignItems: 'center',\r\n        justifyContent: 'center'\r\n      }} onClick={showDrawer} ref={ref3} icon={<SettingOutlined />} />\r\n    </Tooltip>\r\n\r\n\r\n  </Flex>\r\n  <Drawer title=\"Options\" placement=\"right\" onClose={onClose} open={open} afterOpenChange={handleAfterOpenChange} width={430}>\r\n    <Flex vertical gap=\"middle\">\r\n      <Space>\r\n        <p># Avatar Selection: </p>\r\n        <Dropdown menu={{ items: itemsAvatar, selectable: true }} placement=\"bottom\">\r\n          <Button>{genderName === \"none\" ? \"Avatar Voice\" : gender === \"Female\" ? genderName : 'Male01'}</Button>\r\n        </Dropdown>\r\n      </Space>\r\n    \r\n      <Space>\r\n        <p># Exercise Selection: </p>\r\n      </Space>\r\n      <Space>\r\n\r\n        <Button onClick={handleStairAndConstantClick}>Constant</Button>\r\n        \r\n        <Button onClick={handleStairAndConstantClick}>Stair</Button>\r\n\r\n         <Button onClick={handleStairAndConstantClick}> Heteronym </Button>  \r\n\r\n        <Dropdown menu={{ items: itemsSyllable }} placement=\"bottom\">\r\n          <Button>{syllableCount === \"none\" ? 'Human Curve' : syllableCount + ' syllable'}</Button>\r\n        </Dropdown>\r\n\r\n      </Space>\r\n\r\n      <Space>\r\n        <p># Coordinate Display Mode</p>\r\n        <Radio.Group onChange={onChangeHz} defaultValue=\"a\" buttonStyle=\"solid\">\r\n          <Radio.Button value=\"hz\"> Hz </Radio.Button>\r\n          <Radio.Button value=\"notes\">Notes</Radio.Button>\r\n        </Radio.Group>\r\n        <br />\r\n      </Space>\r\n\r\n      <div>\r\n      <p># Pitch Display Range</p>\r\n      <Slider\r\n        range\r\n        step={10}\r\n        min={50}\r\n        max={600}\r\n        onChange={onChangeRange}\r\n        // tooltipPlacement={bottom}\r\n        tooltip={{\r\n          placement: 'bottom',\r\n          formatter: formatterHz,\r\n          open: tooltipVisible,\r\n        }}\r\n        // tooltip={{ formatter: formatterHz}}\r\n        marks={marksRange}\r\n        defaultValue={[100, 300]} />\r\n      </div>\r\n      \r\n        \r\n      {component !== \"Fixed\" && component !== \"Stair\" && (\r\n        <div>\r\n          <p># Pitch Indicator Horizontal Position</p>\r\n          <Slider\r\n            step={0.1}\r\n            min={0}\r\n            max={1}\r\n            onChange={onChangePosition}\r\n            // tooltip={{ formatter: formatterPos }}\r\n            tooltip={{\r\n              placement: 'bottom',\r\n              formatter: formatterPos,\r\n              open: tooltipVisible,\r\n            }}\r\n            defaultValue={0.5}\r\n            marks={marksBallPos}\r\n          />\r\n        </div>\r\n      )}      \r\n        \r\n      {component !== \"Fixed\" && component !== \"Stair\" && component !== \"Heteronym\" && (\r\n        <div>\r\n          <p># Pitch Indicator Horizontal Position</p>\r\n          <Slider\r\n            step={0.1}\r\n            min={0}\r\n            max={1}\r\n            onChange={onChangePosition}\r\n            // tooltip={{ formatter: formatterPos }}\r\n            tooltip={{\r\n              placement: 'bottom',\r\n              formatter: formatterPos,\r\n              open: tooltipVisible,\r\n            }}\r\n            defaultValue={0.5}\r\n            marks={marksBallPos}\r\n          />\r\n        </div>\r\n      )}\r\n\r\n      <div>\r\n      <p># Pitch Indicator Speed</p>\r\n      <Slider\r\n        step={0.05}\r\n        min={0}\r\n        max={1}\r\n        onChange={onChangeSpeed}\r\n        // tooltip={{ formatter: formatterPos }}\r\n        // tooltip={{\r\n        //   placement: 'bottom',\r\n        //   formatter: formatterPos,\r\n        //   open: tooltipVisible,\r\n        // }}\r\n        defaultValue={0.3}\r\n        tooltip ={{formatter: null}}\r\n        // marks={marksBall}\r\n      />\r\n      </div>\r\n      \r\n        <div>\r\n        <Space>\r\n        <p># Auto-Start When Voice Detected</p>\r\n        <Switch defaultChecked={false} onChange={EnableVoluneMode} />\r\n      </Space>\r\n\r\n      {enableVol &&\r\n        <Slider\r\n        step={1}\r\n        min={50}\r\n        max={90}\r\n        onChange={onChangeThreshold}\r\n        tooltip={{\r\n          placement: 'bottom',\r\n          formatter: formatterdB,\r\n          open: tooltipVisible,\r\n        \r\n        }}\r\n        defaultValue={70}\r\n        marks={marksVol}\r\n      />\r\n      }\r\n        </div>\r\n\r\n      <br/>\r\n      <Button onClick={onClose}>Close</Button>\r\n    </Flex>\r\n\r\n\r\n  </Drawer>\r\n  <Tour open={openTour} onClose={() => setOpenTour(false)} steps={steps} />\r\n</Content>\r\n</Layout>\r\n\r\n        </Col>\r\n      </Row>\r\n\r\n    // </div>\r\n  );\r\n}\r\n\r\nexport default Sample;\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}