{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\Route\\\\SampleVolume.tsx\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect, useRef } from 'react';\nimport { Button, Flex } from 'antd';\nimport { SettingOutlined } from '@ant-design/icons';\nimport { Col, Row } from 'antd';\nimport { CaretRightOutlined } from '@ant-design/icons';\nimport { Slider } from 'antd';\nimport { Layout } from 'antd';\nimport { Drawer, Radio } from 'antd';\nimport { RedoOutlined, PauseOutlined } from '@ant-design/icons';\nimport { Tooltip, FloatButton, Space, Switch } from 'antd';\nimport '../CSS/sample.css';\nimport ConstantVol from '../Canvas/ConstantVol';\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 [historyMode, setHistoryMode] = useState(\"None\");\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  const [currentColorScheme, setCurrentColorScheme] = useState(\"blue\");\n  const [LAMP_COLORS, setLAMP_COLORS] = useState(['rgb(3, 4, 242)',\n  // low\n  'rgb(106, 0, 147)',\n  // mid\n  'rgb(221, 0, 34)' // high\n  ]);\n  const LAMP_COLORSBLUE = ['rgb(3, 4, 242)',\n  // low\n  'rgb(106, 0, 147)',\n  // mid\n  'rgb(221, 0, 34)' // high\n  ];\n  const LAMP_COLORSGREEN = ['rgb(98, 187, 70)',\n  // low\n  'rgb(255, 194, 14)',\n  // mid\n  'rgb(241, 91, 64)' // high\n  ];\n  useEffect(() => {\n    if (currentColorScheme === \"blue\") {\n      setLAMP_COLORS(LAMP_COLORSBLUE);\n    } else {\n      setLAMP_COLORS(LAMP_COLORSGREEN);\n    }\n  }, [currentColorScheme]);\n  const buttonColorStyle = colors => ({\n    background: `linear-gradient(to right, ${colors.join(', ')})`,\n    // borderColor: 'transparent',\n    color: '#fff'\n    // padding: '0 20px',\n    // margin: '0 10px',\n  });\n\n  // const [showPre, SetShowPre] = useState<boolean>(false);\n  const [tooltipVisible, setTooltipVisible] = useState(false);\n  const getLampColor = vol => {\n    let temvol = vol + 130;\n    if (temvol <= 50) return LAMP_COLORS[0];\n    if (temvol <= 80) return LAMP_COLORS[1];\n    return LAMP_COLORS[2];\n  };\n  const lampStyle = color => ({\n    backgroundColor: color,\n    opacity: color === getLampColor(volume) ? 1 : 0.2,\n    width: '20px',\n    height: '20px',\n    borderRadius: '50%',\n    margin: '5px'\n  });\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: 375,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Retry: Clear display and restart.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 376,\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: 377,\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: 378,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 374,\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 handleHistoryMode = e => {\n    setHistoryMode(e.target.innerText);\n  };\n  const handleColorStyle = e => {\n    const newColorScheme = e.target.innerText.includes(\"Blue-Red\") ? \"blue\" : \"green\";\n    setCurrentColorScheme(newColorScheme);\n  };\n  // useEffect(() => {},[historymode]);\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: 435,\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(ConstantVol, {\n          LAMP_COLORS: LAMP_COLORS,\n          historyMode: historyMode,\n          volume: volume,\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: 646,\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: 648,\n          columnNumber: 16\n        }, this);\n    }\n  };\n  const renderSelectedComponentLyric = () => {\n    switch (component) {\n      case 'ConstantTxt':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [/*#__PURE__*/_jsxDEV(Space, {\n            size: \"middle\",\n            children: /*#__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: 662,\n                  columnNumber: 50\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 662,\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: 665,\n                    columnNumber: 33\n                  }, this),\n                  children: \"Upload Txt File\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 665,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 664,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 659,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 658,\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: 681,\n                columnNumber: 21\n              }, this);\n            })\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 670,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 656,\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: 692,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n              value: \"false\",\n              children: \"Hide\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 693,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 691,\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: 698,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 690,\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: 712,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n              value: \"false\",\n              children: \"Hide\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 713,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 711,\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: 718,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 710,\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: 731,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 730,\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: 737,\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  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: \"Volume mode\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 850,\n                  columnNumber: 7\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 849,\n                columnNumber: 5\n              }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                children: renderSelectedComponent()\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 852,\n                columnNumber: 5\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: 856,\n                    columnNumber: 76\n                  }, this) : /*#__PURE__*/_jsxDEV(CaretRightOutlined, {}, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 856,\n                    columnNumber: 96\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 856,\n                  columnNumber: 11\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 855,\n                columnNumber: 5\n              }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                children: /*#__PURE__*/_jsxDEV(\"div\", {\n                  style: {\n                    display: 'flex'\n                  },\n                  children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                    style: lampStyle(LAMP_COLORS[0])\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 860,\n                    columnNumber: 9\n                  }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                    style: lampStyle(LAMP_COLORS[1])\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 861,\n                    columnNumber: 9\n                  }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                    style: lampStyle(LAMP_COLORS[2])\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 862,\n                    columnNumber: 9\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 859,\n                  columnNumber: 7\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 858,\n                columnNumber: 9\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: 872,\n                    columnNumber: 48\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 866,\n                  columnNumber: 7\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 865,\n                columnNumber: 5\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 848,\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: \"# Coordinate Display Mode\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 879,\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: 881,\n                      columnNumber: 11\n                    }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                      value: \"notes\",\n                      children: \"Notes\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 882,\n                      columnNumber: 11\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 880,\n                    columnNumber: 9\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 878,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: /*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# History Mode Selection: \"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 887,\n                    columnNumber: 9\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 886,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: [/*#__PURE__*/_jsxDEV(Button, {\n                    type: historyMode === 'Size' ? 'primary' : 'default',\n                    onClick: handleHistoryMode,\n                    children: \"Size\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 890,\n                    columnNumber: 7\n                  }, this), /*#__PURE__*/_jsxDEV(Button, {\n                    type: historyMode === 'Color' ? 'primary' : 'default',\n                    onClick: handleHistoryMode,\n                    children: \"Color\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 891,\n                    columnNumber: 7\n                  }, this), /*#__PURE__*/_jsxDEV(Button, {\n                    type: historyMode === 'Mixed' ? 'primary' : 'default',\n                    onClick: handleHistoryMode,\n                    children: \"Mixed\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 892,\n                    columnNumber: 7\n                  }, this), /*#__PURE__*/_jsxDEV(Button, {\n                    type: historyMode === 'None' ? 'primary' : 'default',\n                    onClick: handleHistoryMode,\n                    children: \"None\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 893,\n                    columnNumber: 7\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 889,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: /*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Color Mode\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 897,\n                    columnNumber: 9\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 896,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: [/*#__PURE__*/_jsxDEV(Button, {\n                    onClick: handleColorStyle,\n                    type: currentColorScheme === \"blue\" ? 'primary' : 'default',\n                    children: \"Blue-Red\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 901,\n                    columnNumber: 7\n                  }, this), /*#__PURE__*/_jsxDEV(Button, {\n                    onClick: handleColorStyle,\n                    type: currentColorScheme === \"green\" ? 'primary' : 'default',\n                    children: \"Green-Red\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 902,\n                    columnNumber: 7\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 900,\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: 906,\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                    // tooltip ={{formatter: null}}\n                    ,\n                    tooltip: {\n                      formatter: formatterHz\n                    },\n                    marks: marksRange,\n                    defaultValue: [100, 300]\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 907,\n                    columnNumber: 7\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 905,\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: 923,\n                    columnNumber: 11\n                  }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                    step: 0.1,\n                    min: 0,\n                    max: 1,\n                    onChange: onChangePosition,\n                    tooltip: {\n                      formatter: formatterPos\n                    }\n                    // tooltip ={{formatter: null}}\n                    ,\n                    defaultValue: 0.5,\n                    marks: marksBallPos\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 924,\n                    columnNumber: 11\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 922,\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: 940,\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                    // tooltip ={{formatter: null}}\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: 941,\n                    columnNumber: 11\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 939,\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: 960,\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                    ,\n                    tooltip: {\n                      // placement: 'bottom',\n                      formatter: formatterPos\n                    },\n                    defaultValue: 0.3\n                    // tooltip ={{formatter: null}}\n                    // marks={marksBall}\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 961,\n                    columnNumber: 7\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 959,\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: 979,\n                      columnNumber: 9\n                    }, this), /*#__PURE__*/_jsxDEV(Switch, {\n                      defaultChecked: false,\n                      onChange: EnableVoluneMode\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 980,\n                      columnNumber: 9\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 978,\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: 984,\n                    columnNumber: 9\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 977,\n                  columnNumber: 9\n                }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1001,\n                  columnNumber: 7\n                }, this), /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: onClose,\n                  children: \"Close\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 1002,\n                  columnNumber: 7\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 876,\n                columnNumber: 5\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 875,\n              columnNumber: 3\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 846,\n            columnNumber: 1\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 844,\n          columnNumber: 9\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 843,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 842,\n      columnNumber: 7\n    }, this)\n\n    // </div>\n  );\n}\n_s(Sample, \"JUnJCzDAE8z5srt5eDw+kkCsmWU=\", 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","Col","Row","CaretRightOutlined","Slider","Layout","Drawer","Radio","RedoOutlined","PauseOutlined","Tooltip","FloatButton","Space","Switch","ConstantVol","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","historyMode","setHistoryMode","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","currentColorScheme","setCurrentColorScheme","LAMP_COLORS","setLAMP_COLORS","LAMP_COLORSBLUE","LAMP_COLORSGREEN","buttonColorStyle","colors","background","join","tooltipVisible","setTooltipVisible","getLampColor","vol","temvol","lampStyle","backgroundColor","opacity","width","borderRadius","margin","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","handleHistoryMode","handleColorStyle","newColorScheme","includes","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","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","maxWidth","align","justify","gap","vertical","shape","alignItems","justifyContent","afterOpenChange","buttonStyle","type","range","step","min","max","tooltip","formatter","marks","defaultChecked","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/Route/SampleVolume.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 ConstantVol from '../Canvas/ConstantVol'\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\nimport type { CollapseProps } from 'antd';\r\nimport { Collapse, Anchor } from 'antd';\r\nimport divide_1 from '../icon/TruVox-Site-Assets_2-Section-Divider1-Gfx.png'\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 [historyMode,setHistoryMode] = useState(\"None\");\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  const [currentColorScheme, setCurrentColorScheme] = useState(\"blue\");\r\n  const [LAMP_COLORS, setLAMP_COLORS] = useState<string[]>([\r\n    'rgb(3, 4, 242)', // low\r\n    'rgb(106, 0, 147)', // mid\r\n    'rgb(221, 0, 34)', // high\r\n  ]);\r\n\r\n  const LAMP_COLORSBLUE = [\r\n    'rgb(3, 4, 242)', // low\r\n    'rgb(106, 0, 147)', // mid\r\n    'rgb(221, 0, 34)', // high\r\n  ];\r\n\r\n  const LAMP_COLORSGREEN = [\r\n    'rgb(98, 187, 70)', // low\r\n    'rgb(255, 194, 14)', // mid\r\n    'rgb(241, 91, 64)', // high\r\n  ];\r\n  useEffect(() => {\r\n    if (currentColorScheme === \"blue\") {\r\n      setLAMP_COLORS(LAMP_COLORSBLUE);\r\n    } else {\r\n      setLAMP_COLORS(LAMP_COLORSGREEN);\r\n    }\r\n  }, [currentColorScheme]);\r\n\r\n\r\n  const buttonColorStyle = (colors: string[]) => ({\r\n    background: `linear-gradient(to right, ${colors.join(', ')})`,\r\n    // borderColor: 'transparent',\r\n    color: '#fff',\r\n    // padding: '0 20px',\r\n    // margin: '0 10px',\r\n  });\r\n\r\n  // const [showPre, SetShowPre] = useState<boolean>(false);\r\n  const [tooltipVisible, setTooltipVisible] = useState(false);\r\n  const getLampColor = (vol: number) => {\r\n    let temvol = vol + 130;\r\n    if (temvol <= 50) return LAMP_COLORS[0];\r\n    if (temvol <= 80) return LAMP_COLORS[1];\r\n    return LAMP_COLORS[2];\r\n  };\r\n  const lampStyle = (color:string) => ({\r\n    backgroundColor: color,\r\n    opacity: color === getLampColor(volume) ? 1 : 0.2,\r\n    width: '20px',\r\n    height: '20px',\r\n    borderRadius: '50%',\r\n    margin: '5px',\r\n  });\r\n\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 handleHistoryMode = (e: any) => {\r\n  setHistoryMode(e.target.innerText);\r\n}\r\nconst handleColorStyle = (e:any) => {\r\n  const newColorScheme = e.target.innerText.includes(\"Blue-Red\") ? \"blue\" : \"green\";\r\n  setCurrentColorScheme(newColorScheme);\r\n};\r\n// useEffect(() => {},[historymode]);\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 <ConstantVol LAMP_COLORS={LAMP_COLORS} historyMode={historyMode} volume={volume} 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     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 '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  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>Volume mode</p>\r\n    </div>\r\n    <div>\r\n      {renderSelectedComponent()}\r\n    </div>\r\n    <Tooltip title={isPlaying ? \"Pause\" : \"Play\"}>\r\n          <Button onClick={onChangePause} shape=\"circle\" icon={isPlaying ? <PauseOutlined /> : <CaretRightOutlined />} />\r\n        </Tooltip>\r\n        <div>\r\n      <div style={{ display: 'flex' }}>\r\n        <div style={lampStyle(LAMP_COLORS[0])}></div>\r\n        <div style={lampStyle(LAMP_COLORS[1])}></div>\r\n        <div style={lampStyle(LAMP_COLORS[2])}></div>\r\n      </div>\r\n    </div>\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  </Flex>\r\n  <Drawer title=\"Options\" placement=\"right\" onClose={onClose} open={open} afterOpenChange={handleAfterOpenChange} width={430}>\r\n    <Flex vertical gap=\"middle\">\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      </Space>\r\n\r\n      <Space>\r\n        <p># History Mode Selection: </p>\r\n      </Space>\r\n      <Space>\r\n      <Button type={historyMode === 'Size' ? 'primary' : 'default'} onClick={handleHistoryMode}>Size</Button>\r\n      <Button type={historyMode === 'Color' ? 'primary' : 'default'} onClick={handleHistoryMode}>Color</Button>\r\n      <Button type={historyMode === 'Mixed' ? 'primary' : 'default'} onClick={handleHistoryMode}>Mixed</Button>\r\n      <Button type={historyMode === 'None' ? 'primary' : 'default'} onClick={handleHistoryMode}>None</Button>\r\n      </Space>\r\n\r\n      <Space>\r\n        <p># Color Mode</p>\r\n\r\n      </Space>\r\n      <Space>\r\n      <Button onClick={handleColorStyle} type={currentColorScheme  === \"blue\" ? 'primary' : 'default'}>Blue-Red</Button>\r\n      <Button onClick={handleColorStyle} type={currentColorScheme  === \"green\" ? 'primary' : 'default'}>Green-Red</Button>\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 ={{formatter: null}}\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 ={{formatter: null}}\r\n            defaultValue={0.5}\r\n            marks={marksBallPos}\r\n          />\r\n        </div>\r\n      )}\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 ={{formatter: null}}\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        }}\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</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":[]}