{"ast":null,"code":"var _jsxFileName = \"/var/www/gavt/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, ConfigProvider } from 'antd';\nimport { CaretRightOutlined } from '@ant-design/icons';\nimport { Slider, Input } from 'antd';\nimport { Layout } 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 { UploadOutlined } from '@ant-design/icons';\nimport { message, Upload } from 'antd';\nimport hark from 'hark';\nimport { useLocation } from 'react-router-dom';\nimport { Typography } from 'antd';\nimport { Image } from 'antd';\nimport divide_1 from '../icon/Divider2-half.png';\nimport { QuestionOutlined } from '@ant-design/icons';\nimport { useTemString } from '../hooks/useTemString';\n// @ts-ignore\nimport pdfToText from 'react-pdftotext';\nimport { createFromIconfontCN } from '@ant-design/icons';\nimport ConstantVol from '../Canvas/ConstantVol';\nimport HeteronymVol from '../Canvas/HeteronymVol';\nimport StairVol from '../Canvas/StairVol';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst PlayIcon = createFromIconfontCN({\n  scriptUrl: '//at.alicdn.com/t/c/font_4566050_zpduwnlv2t.js'\n});\nconst {\n  TextArea\n} = Input;\nconst {\n  Title,\n  Paragraph,\n  Text,\n  Link\n} = Typography;\nconst {\n  Content\n} = Layout;\nconst marksRange = {\n  50: '50Hz',\n  600: '600Hz'\n};\nconst marksBallPos = {\n  0: '0%',\n  1: '100%'\n};\nconst marksVol = {\n  50: '50dB',\n  90: '90dB'\n};\nconst SampleVolume = ({\n  genderName,\n  gender,\n  setGender,\n  audioKey,\n  audioSrc,\n  fetchAudioData,\n  handleIconClick,\n  itemsAvatar\n}) => {\n  _s();\n  // strings\n  const {\n    items_3,\n    stairFilenames,\n    heteronymFilenames,\n    shortDescription\n  } = useTemString();\n\n  // Canvas values\n  const size = [400, 1400];\n  const [initialRange, setInitialRange] = useState([100, 300]);\n  const [config, setConfig] = useState({\n    SRATE: 48000,\n    fxmin: 50,\n    fxlow: 50 + 50,\n    // This initial value will be updated by useEffect below\n    fxhigh: 600 - 200,\n    // This initial value will be updated by useEffect below\n    fxmax: 600\n  });\n  const [COLORS, setCOLORS] = useState({\n    realVoiceColor: '#d679de',\n    targetVoiceColor: '#4669C8',\n    closeVoiceColor: '#15dbcc'\n  });\n  const [COLORSMode, setCOLORSMode] = useState(\"de\");\n\n  // open/close \n  const [openSetting, setOpenSetting] = useState(false);\n  const [txtShow, setTxtShow] = useState(\"true\");\n  const [txtShowSwitch, setTxtShowSwitch] = useState('show');\n  const [openTour, setOpenTour] = useState(false);\n  const [isPlaying, setIsPlaying] = useState(true);\n  const [isRetry, setIsRetry] = useState(false);\n  const [enableVol, setEnableVol] = useState(false);\n  const [isOpenTextbox, setIsOpenTextbox] = useState(false);\n  const [showNextPre, setShowNextPre] = useState(false);\n  const [showListen, setShowListen] = useState(false);\n\n  // special vatiables\n  const location = useLocation();\n  const ref12 = useRef(null);\n  const ref1 = useRef(null);\n  const ref2 = useRef(null);\n  const ref3 = useRef(null);\n  const parentRef = useRef(null);\n\n  // initial Value\n  const [volume, setVolume] = useState(0);\n  const [threshold, setThreshold] = useState(70);\n  const [maxLyricCount, setMaxLyricCount] = useState(2);\n  const [playLyricCount, setPlayLyricCount] = useState(0);\n  const [divisor, setDivisor] = useState(10);\n  const [ballPosition, setBallPosition] = useState(0.5);\n\n  // Hz/Notes\n  const [showNotesPar, setShowNotesPar] = useState(false);\n\n  // selected choice\n  const [component, setComponent] = useState(\"ConstantTxt\");\n  const [currentSelection, setCurrentSelection] = useState('Constant');\n  const [syllableCount, setSyllableCount] = useState(\"none\");\n  const [baseFilenames, setBaseFilenames] = useState([]);\n  const [fileContent, setFileContent] = useState([]);\n  const [selectedNum, setSelectedNum] = useState([\"2\"]);\n\n  // \n\n  const setPlaying = () => {\n    setIsPlaying(true);\n  };\n  const setPlayingPause = () => {\n    setIsPlaying(false);\n  };\n  const handleBeginTour = () => {\n    setOpenTour(true);\n    window.scrollTo(0, 0);\n  };\n  const onClose = () => {\n    setOpenSetting(false);\n  };\n  const ClearTxt = () => {\n    setFileContent([]);\n    setMaxLyricCount(1);\n  };\n\n  // Constant Page upload and input\n  const handleTextInput = e => {\n    const content = e.target.value;\n    const separators = /[;,./\\n]/;\n    const splitContent = content.split(separators).map(s => s.trim()).filter(Boolean);\n    console.log(splitContent);\n    setFileContent(splitContent);\n    setMaxLyricCount(splitContent.length - 1);\n    setPlayLyricCount(0);\n  };\n  const props = {\n    name: 'file',\n    accept: '.txt, .pdf',\n    beforeUpload: file => {\n      if (file.type !== 'text/plain' && file.type !== 'application/pdf') {\n        message.error(`${file.name} is not a valid text/pdf file.`);\n        return false;\n      }\n      if (file.type === 'application/pdf') {\n        pdfToText(file).then(text => {\n          const separators = /[;,./\\n]/;\n          const splitContent = text.split(separators).map(s => s.trim()).filter(Boolean);\n          console.log(splitContent);\n          setFileContent(splitContent);\n          setMaxLyricCount(splitContent.length - 1);\n          setPlayLyricCount(0);\n        }).catch(error => {\n          // Explicitly specify the type of 'error' parameter as 'any'\n          message.error('Error reading PDF file:', error);\n        });\n        return false;\n      }\n      if (file.type === 'text/plain') {\n        const reader = new FileReader();\n        reader.onload = e => {\n          var _e$target;\n          if ((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.result) {\n            const content = e.target.result;\n            // const separators = /[;,./]/;\n            const separators = /[;,./\\n]/;\n            const splitContent = content.split(separators).map(s => s.trim()).filter(Boolean);\n            console.log(splitContent);\n            setFileContent(splitContent);\n            setMaxLyricCount(splitContent.length - 1);\n            setPlayLyricCount(0);\n          }\n        };\n        reader.readAsText(file);\n        return false;\n      }\n    },\n    onChange(info) {\n      if (info.file.status === 'done') {\n        message.success(`${info.file.name} file read successfully`);\n      } else if (info.file.status === 'error') {\n        message.error(`${info.file.name} file read failed.`);\n      }\n    }\n  };\n  const changeOnEnter = e => {\n    if (e.key === 'Enter' && !e.shiftKey) {\n      console.log(\"Enter Key Pressed!\");\n      handleTextInput(e);\n    }\n  };\n  const [historyMode, setHistoryMode] = useState(\"Mixed\");\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\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\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\n  useEffect(() => {\n    if (currentColorScheme === \"blue\") {\n      setLAMP_COLORS(LAMP_COLORSBLUE);\n    } else {\n      setLAMP_COLORS(LAMP_COLORSGREEN);\n    }\n  }, [currentColorScheme]);\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\n  // Volume\n  useEffect(() => {\n    navigator.mediaDevices.getUserMedia({\n      audio: true,\n      video: false\n    }).then(stream => {\n      const harkInstance = hark(stream, {});\n      harkInstance.on('volume_change', (volume, threshold) => {\n        setVolume(volume);\n      });\n      return () => harkInstance.stop();\n    }).catch(error => {\n      console.error('Error accessing the microphone', error);\n    });\n  }, []);\n  useEffect(() => {\n    if (volume > threshold - 100 && enableVol) {\n      setIsPlaying(true);\n    }\n  }, [volume]);\n\n  // Tour\n  const steps = [{\n    title: 'Pitch Exercises',\n    description: 'Switch between different exercises',\n    placement: 'top',\n    target: () => ref12.current\n  }, {\n    title: 'Canvas Display',\n    description: 'Visualize your voice pitch and target pitch curve in real-time.',\n    placement: 'top',\n    target: () => ref1.current\n  }, {\n    title: 'Function Buttons',\n    cover: /*#__PURE__*/_jsxDEV(\"ul\", {\n      style: {\n        textAlign: 'left'\n      },\n      children: [/*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Start/Stop: Begin or stop recording.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 344,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Retry: Clear display and restart.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 345,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Upload txt/pdf File (optional): Upload text or pdf for you (in .txt/.pdf format) to read while recording.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 346,\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: 347,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 343,\n      columnNumber: 9\n    }, this),\n    target: () => ref2.current\n  }, {\n    title: 'Slider',\n    description: 'Use this slides to change the target pitch value that you want to aim for.',\n    target: () => parentRef.current\n  }, {\n    title: 'Options menu',\n    description: 'Adjust settings such as the pitch display range.',\n    target: () => ref3.current\n  }];\n  useEffect(() => {\n    const queryParams = new URLSearchParams(location.search);\n    const init = queryParams.get('init');\n    if (init === 'true') {\n      handleBeginTour();\n    }\n  }, [location]);\n\n  // Options of different Exercise \n  const handleStairAndConstantClick = e => {\n    setPlayLyricCount(0);\n    setCurrentSelection(e.target.innerText);\n    console.log(e.target.innerText);\n    if (e.target.innerText === \"Constant\" || e.target.innerText === \"CONSTANT\") {\n      setComponent(\"ConstantTxt\");\n      setSelectedNum([\"2\"]);\n    } else if (e.target.innerText === \"Stair\" || e.target.innerText === \"STAIR\") {\n      setComponent(\"Stair\");\n      setSelectedNum([\"3\"]);\n    } else {\n      setComponent(\"Heteronym\");\n      setSelectedNum([\"4\"]);\n    }\n    setSyllableCount(\"none\");\n  };\n  const 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  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: 410,\n        columnNumber: 11\n      }, this);\n    });\n  };\n  const handleMenuClick = e => {\n    setPlayLyricCount(0);\n    const [componentType, genderType, syllableCountType] = e.key.split('-');\n    if (componentType == \"Constant\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"ConstantTxt\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"Stair\") {\n      setCurrentSelection(\"Staircase\");\n    } else {\n      let tt = \"Syllables \" + syllableCountType;\n      setCurrentSelection(tt);\n      setSelectedNum([\"5\"]);\n    }\n    setComponent(componentType);\n    setGender(genderType);\n    setSyllableCount(syllableCountType);\n    setCurrentSelection(e.key + \"syllable \" + genderName);\n  };\n  const handlePlayLyricCountChange = newCount => {\n    setPlayLyricCount(newCount);\n  };\n  const onChangeStair = e => {\n    setTxtShow(e.target.value);\n    console.log(e);\n  };\n  const onChangeStairSwitch = value => {\n    setTxtShowSwitch(value ? 'hide' : 'show');\n    setTxtShow(value ? 'true' : 'false');\n  };\n  const renderSelectedComponent = () => {\n    switch (component) {\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: 454,\n          columnNumber: 16\n        }, this);\n      case 'Stair':\n        return /*#__PURE__*/_jsxDEV(StairVol, {\n          LAMP_COLORS: LAMP_COLORS,\n          historyMode: historyMode,\n          volume: volume,\n          setShowNotesPar: setShowNotesPar,\n          setMaxLyricCount: setMaxLyricCount,\n          initialRange: initialRange,\n          divisor: divisor,\n          txtShow: txtShow,\n          playLyricCount: playLyricCount,\n          setPlayingPause: setPlayingPause,\n          isRetry: isRetry,\n          COLORS: COLORS,\n          showNotesPar: showNotesPar,\n          size: size,\n          config: config,\n          isPlaying: isPlaying\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 456,\n          columnNumber: 18\n        }, this);\n      case 'Heteronym':\n        return /*#__PURE__*/_jsxDEV(HeteronymVol, {\n          LAMP_COLORS: LAMP_COLORS,\n          historyMode: historyMode,\n          volume: volume,\n          setMaxLyricCount: setMaxLyricCount,\n          initialRange: initialRange,\n          divisor: divisor,\n          txtShow: txtShow,\n          playLyricCount: playLyricCount,\n          setPlayingPause: setPlayingPause,\n          isRetry: isRetry,\n          setPlaying: setPlaying,\n          COLORS: COLORS,\n          showNotesPar: showNotesPar,\n          size: size,\n          config: config,\n          isPlaying: isPlaying,\n          heteronymFile: heteronymFilenames\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 458,\n          columnNumber: 18\n        }, this);\n      default:\n        return /*#__PURE__*/_jsxDEV(\"span\", {\n          children: \"Canvas: Picture\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 461,\n          columnNumber: 16\n        }, this);\n    }\n  };\n  const MainButtons = () => {\n    return /*#__PURE__*/_jsxDEV(Flex, {\n      justify: \"center\",\n      wrap: \"wrap\",\n      gap: \"small\",\n      children: [/*#__PURE__*/_jsxDEV(Tooltip, {\n        title: \"Retry\",\n        children: /*#__PURE__*/_jsxDEV(Button, {\n          onClick: () => setIsRetry(!isRetry),\n          shape: \"circle\",\n          icon: /*#__PURE__*/_jsxDEV(RedoOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 469,\n            columnNumber: 77\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 469,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 468,\n        columnNumber: 9\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: 486,\n            columnNumber: 69\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 486,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 485,\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: 490,\n            columnNumber: 76\n          }, this) : /*#__PURE__*/_jsxDEV(CaretRightOutlined, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 490,\n            columnNumber: 96\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 490,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 489,\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: 495,\n            columnNumber: 65\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 495,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 494,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 466,\n      columnNumber: 7\n    }, this);\n  };\n  const renderSelectedComponentLyric = () => {\n    switch (component) {\n      case 'ConstantTxt':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [/*#__PURE__*/_jsxDEV(Space, {\n            size: \"middle\",\n            children: [MainButtons(), /*#__PURE__*/_jsxDEV(Space.Compact, {\n              children: [/*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Clear existing files and upload new ones\",\n                children: /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: ClearTxt,\n                  children: \"Clear text\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 514,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 513,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Upload PDF or .txt file to read during practice\",\n                children: /*#__PURE__*/_jsxDEV(Upload, {\n                  maxCount: 1,\n                  ...props,\n                  children: /*#__PURE__*/_jsxDEV(Button, {\n                    icon: /*#__PURE__*/_jsxDEV(UploadOutlined, {}, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 519,\n                      columnNumber: 35\n                    }, this),\n                    children: \"Upload File\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 519,\n                    columnNumber: 21\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 518,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 517,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Type/Paste text to read during parctice\",\n                children: /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: () => setIsOpenTextbox(!isOpenTextbox),\n                  children: !isOpenTextbox ? \"Enter Text\" : \"Close Textbox\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 523,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 522,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 511,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 509,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(_Fragment, {\n            children: isOpenTextbox && fileContent.length === 0 && /*#__PURE__*/_jsxDEV(TextArea, {\n              rows: 4,\n              placeholder: \"Enter or paste Text Entry\",\n              style: {\n                height: 40,\n                resize: 'none'\n              },\n              onKeyDown: changeOnEnter\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 532,\n              columnNumber: 17\n            }, this)\n          }, void 0, false), /*#__PURE__*/_jsxDEV(\"ul\", {\n            children: fileContent.map((text, index) => {\n              const maxIndexToShow = playLyricCount + 2 >= fileContent.length ? fileContent.length - 1 : playLyricCount + 2;\n              const shouldShow = index >= playLyricCount && index <= maxIndexToShow;\n              const isNearEnd = fileContent.length - playLyricCount <= 2;\n              const startIndex = isNearEnd ? fileContent.length - 3 : playLyricCount;\n              const showCondition = index >= startIndex && index <= startIndex + 2;\n              return showCondition && /*#__PURE__*/_jsxDEV(\"li\", {\n                className: playLyricCount === index ? 'highlighted' : '',\n                children: text\n              }, index, false, {\n                fileName: _jsxFileName,\n                lineNumber: 549,\n                columnNumber: 21\n              }, this);\n            })\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 538,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 507,\n          columnNumber: 11\n        }, this);\n      case 'Stair':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [/*#__PURE__*/_jsxDEV(Flex, {\n            align: \"center\",\n            gap: \"middle\",\n            children: [MainButtons(), /*#__PURE__*/_jsxDEV(Tooltip, {\n              title: \"Show/Hide 5-syllable phrases to read\",\n              children: /*#__PURE__*/_jsxDEV(Switch, {\n                defaultChecked: true,\n                checkedChildren: \"show\",\n                unCheckedChildren: \"hide\",\n                onChange: onChangeStairSwitch\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 563,\n                columnNumber: 17\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 562,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 559,\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: 570,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 558,\n          columnNumber: 11\n        }, this);\n      case 'Heteronym':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [MainButtons(), (() => {\n            if (txtShow === 'true') {\n              return /*#__PURE__*/_jsxDEV(\"ul\", {\n                children: renderTruncatedFilenames(heteronymFilenames)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 587,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 582,\n          columnNumber: 11\n        }, this);\n      case 'Fixed':\n        return /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"lyric\",\n          children: [MainButtons(), /*#__PURE__*/_jsxDEV(\"ul\", {\n            children: renderTruncatedFilenames(baseFilenames)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 601,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 599,\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: 607,\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  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\n  // tooltips\n  const onChangeThreshold = e => {\n    setThreshold(e);\n  };\n  const formatterdB = value => `${value} dB`;\n  const formatterHz = value => `${value} Hz`;\n  const formatterPos = value => `${value ? (value * 100).toFixed(0) : '0'}%`;\n  return (\n    /*#__PURE__*/\n    // <div className=\"app-container\" >\n    _jsxDEV(Row, {\n      children: /*#__PURE__*/_jsxDEV(Col, {\n        span: 24,\n        children: /*#__PURE__*/_jsxDEV(Layout, {\n          className: \"layoutSample\",\n          children: /*#__PURE__*/_jsxDEV(Content, {\n            children: [/*#__PURE__*/_jsxDEV(Flex, {\n              align: \"center\",\n              justify: \"center\",\n              gap: \"middle\",\n              vertical: true,\n              children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                style: {\n                  marginTop: \"2vw\"\n                },\n                children: /*#__PURE__*/_jsxDEV(ConfigProvider, {\n                  theme: {\n                    token: {\n                      colorPrimary: \"rgb(132, 118, 171)\",\n                      borderRadius: 0\n                    }\n                  },\n                  children: /*#__PURE__*/_jsxDEV(Space, {\n                    size: \"middle\",\n                    ref: ref12,\n                    children: /*#__PURE__*/_jsxDEV(Space.Compact, {\n                      children: [/*#__PURE__*/_jsxDEV(Tooltip, {\n                        title: \"Switch to the Constant exercise\",\n                        children: /*#__PURE__*/_jsxDEV(Button, {\n                          type: component === \"ConstantTxt\" ? \"primary\" : \"default\",\n                          onClick: handleStairAndConstantClick,\n                          children: \"CONSTANT\"\n                        }, void 0, false, {\n                          fileName: _jsxFileName,\n                          lineNumber: 718,\n                          columnNumber: 25\n                        }, this)\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 717,\n                        columnNumber: 23\n                      }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                        title: \"Switch to the Stair exercise\",\n                        children: /*#__PURE__*/_jsxDEV(Button, {\n                          type: component === \"Stair\" ? \"primary\" : \"default\",\n                          onClick: handleStairAndConstantClick,\n                          children: \"STAIR\"\n                        }, void 0, false, {\n                          fileName: _jsxFileName,\n                          lineNumber: 724,\n                          columnNumber: 25\n                        }, this)\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 723,\n                        columnNumber: 23\n                      }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                        title: \"Switch to the Heteronyms exercise\",\n                        children: /*#__PURE__*/_jsxDEV(Button, {\n                          type: component === \"Heteronym\" ? \"primary\" : \"default\",\n                          onClick: handleStairAndConstantClick,\n                          children: \"HETERONYMS\"\n                        }, void 0, false, {\n                          fileName: _jsxFileName,\n                          lineNumber: 730,\n                          columnNumber: 25\n                        }, this)\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 729,\n                        columnNumber: 23\n                      }, this)]\n                    }, void 0, true, {\n                      fileName: _jsxFileName,\n                      lineNumber: 715,\n                      columnNumber: 21\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 714,\n                    columnNumber: 19\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 705,\n                  columnNumber: 17\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 704,\n                columnNumber: 13\n              }, this), shortDescription(component), /*#__PURE__*/_jsxDEV(\"div\", {\n                style: {\n                  width: \"100%\"\n                },\n                children: renderSelectedComponent()\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 743,\n                columnNumber: 15\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: 748,\n                    columnNumber: 19\n                  }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                    style: lampStyle(LAMP_COLORS[1])\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 749,\n                    columnNumber: 19\n                  }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                    style: lampStyle(LAMP_COLORS[2])\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 750,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 747,\n                  columnNumber: 17\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 746,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(Flex, {\n                vertical: true,\n                justify: \"center\",\n                wrap: \"wrap\",\n                gap: \"small\",\n                ref: ref2,\n                children: renderSelectedComponentLyric()\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 753,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(FloatButton, {\n                style: {\n                  width: 60,\n                  height: 60,\n                  right: 15,\n                  bottom: 30,\n                  display: 'flex',\n                  alignItems: 'center',\n                  justifyContent: 'center'\n                },\n                onClick: () => setOpenSetting(true),\n                ref: ref3,\n                shape: \"square\",\n                description: \"SETTINGS\",\n                icon: /*#__PURE__*/_jsxDEV(SettingOutlined, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 780,\n                  columnNumber: 23\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 767,\n                columnNumber: 14\n              }, this), /*#__PURE__*/_jsxDEV(FloatButton, {\n                style: {\n                  width: 60,\n                  height: 60,\n                  right: 100,\n                  bottom: 30,\n                  display: 'flex',\n                  alignItems: 'center',\n                  justifyContent: 'center'\n                },\n                shape: \"square\",\n                description: \"TOUR\",\n                onClick: handleBeginTour,\n                icon: /*#__PURE__*/_jsxDEV(QuestionOutlined, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 794,\n                  columnNumber: 23\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 781,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(Image, {\n                preview: false,\n                src: divide_1,\n                style: {\n                  width: '100%'\n                }\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 795,\n                columnNumber: 15\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 702,\n              columnNumber: 13\n            }, this), /*#__PURE__*/_jsxDEV(Drawer, {\n              title: \"Options\",\n              placement: \"right\",\n              onClose: () => setOpenSetting(false),\n              open: openSetting,\n              width: 430,\n              children: /*#__PURE__*/_jsxDEV(Flex, {\n                vertical: true,\n                gap: \"middle\",\n                children: [/*#__PURE__*/_jsxDEV(Space, {\n                  children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Coordinate Display Mode\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 806,\n                    columnNumber: 19\n                  }, this), /*#__PURE__*/_jsxDEV(Radio.Group, {\n                    onChange: onChangeHz,\n                    defaultValue: \"notes\",\n                    buttonStyle: \"solid\",\n                    children: [/*#__PURE__*/_jsxDEV(Radio.Button, {\n                      value: \"hz\",\n                      children: \" Hz \"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 808,\n                      columnNumber: 21\n                    }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                      value: \"notes\",\n                      children: \"Notes\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 809,\n                      columnNumber: 21\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 807,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 805,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: /*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# History Mode Selection: \"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 814,\n                    columnNumber: 19\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 813,\n                  columnNumber: 17\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: 817,\n                    columnNumber: 19\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: 818,\n                    columnNumber: 19\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: 819,\n                    columnNumber: 19\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: 820,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 816,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(Space, {\n                  children: /*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Color Mode\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 824,\n                    columnNumber: 19\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 823,\n                  columnNumber: 17\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: 828,\n                    columnNumber: 19\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: 829,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 827,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Pitch Display Range\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 833,\n                    columnNumber: 19\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: 834,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 832,\n                  columnNumber: 17\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: 850,\n                    columnNumber: 21\n                  }, this), /*#__PURE__*/_jsxDEV(Slider, {\n                    step: 0.1,\n                    min: 0,\n                    max: 1,\n                    onChange: onChangePosition,\n                    tooltip: {\n                      formatter: formatterPos\n                    }\n                    // tooltip ={{formatter: null}}\n                    ,\n                    defaultValue: 0.5,\n                    marks: marksBallPos\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 851,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 849,\n                  columnNumber: 19\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: 867,\n                    columnNumber: 21\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\n                    defaultValue: 0.5,\n                    marks: marksBallPos\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 868,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 866,\n                  columnNumber: 19\n                }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                    children: \"# Pitch Indicator Speed\"\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 887,\n                    columnNumber: 19\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: 888,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 886,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                  children: [/*#__PURE__*/_jsxDEV(Space, {\n                    children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                      children: \"# Auto-Start When Voice Detected\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 906,\n                      columnNumber: 21\n                    }, this), /*#__PURE__*/_jsxDEV(Switch, {\n                      defaultChecked: false,\n                      onChange: EnableVoluneMode\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 907,\n                      columnNumber: 21\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 905,\n                    columnNumber: 19\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\n                    defaultValue: 70,\n                    marks: marksVol\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 911,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 904,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 928,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: onClose,\n                  children: \"Close\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 929,\n                  columnNumber: 17\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 803,\n                columnNumber: 15\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 802,\n              columnNumber: 13\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 700,\n            columnNumber: 11\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 698,\n          columnNumber: 9\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 697,\n        columnNumber: 7\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 696,\n      columnNumber: 5\n    }, this)\n\n    // </div>\n  );\n};\n_s(SampleVolume, \"fcXbC/k8I6FS52MrCqy3LeK1nJc=\", false, function () {\n  return [useTemString, useLocation];\n});\n_c = SampleVolume;\nexport default SampleVolume;\nvar _c;\n$RefreshReg$(_c, \"SampleVolume\");","map":{"version":3,"names":["React","useState","useEffect","useRef","Button","Flex","SettingOutlined","Col","Row","ConfigProvider","CaretRightOutlined","Slider","Input","Layout","Drawer","Radio","RedoOutlined","PauseOutlined","StepForwardOutlined","StepBackwardOutlined","Tooltip","FloatButton","Space","Switch","UploadOutlined","message","Upload","hark","useLocation","Typography","Image","divide_1","QuestionOutlined","useTemString","pdfToText","createFromIconfontCN","ConstantVol","HeteronymVol","StairVol","jsxDEV","_jsxDEV","Fragment","_Fragment","PlayIcon","scriptUrl","TextArea","Title","Paragraph","Text","Link","Content","marksRange","marksBallPos","marksVol","SampleVolume","genderName","gender","setGender","audioKey","audioSrc","fetchAudioData","handleIconClick","itemsAvatar","_s","items_3","stairFilenames","heteronymFilenames","shortDescription","size","initialRange","setInitialRange","config","setConfig","SRATE","fxmin","fxlow","fxhigh","fxmax","COLORS","setCOLORS","realVoiceColor","targetVoiceColor","closeVoiceColor","COLORSMode","setCOLORSMode","openSetting","setOpenSetting","txtShow","setTxtShow","txtShowSwitch","setTxtShowSwitch","openTour","setOpenTour","isPlaying","setIsPlaying","isRetry","setIsRetry","enableVol","setEnableVol","isOpenTextbox","setIsOpenTextbox","showNextPre","setShowNextPre","showListen","setShowListen","location","ref12","ref1","ref2","ref3","parentRef","volume","setVolume","threshold","setThreshold","maxLyricCount","setMaxLyricCount","playLyricCount","setPlayLyricCount","divisor","setDivisor","ballPosition","setBallPosition","showNotesPar","setShowNotesPar","component","setComponent","currentSelection","setCurrentSelection","syllableCount","setSyllableCount","baseFilenames","setBaseFilenames","fileContent","setFileContent","selectedNum","setSelectedNum","setPlaying","setPlayingPause","handleBeginTour","window","scrollTo","onClose","ClearTxt","handleTextInput","e","content","target","value","separators","splitContent","split","map","s","trim","filter","Boolean","console","log","length","props","name","accept","beforeUpload","file","type","error","then","text","catch","reader","FileReader","onload","_e$target","result","readAsText","onChange","info","status","success","changeOnEnter","key","shiftKey","historyMode","setHistoryMode","currentColorScheme","setCurrentColorScheme","LAMP_COLORS","setLAMP_COLORS","LAMP_COLORSBLUE","LAMP_COLORSGREEN","getLampColor","vol","temvol","lampStyle","color","backgroundColor","opacity","width","height","borderRadius","margin","navigator","mediaDevices","getUserMedia","audio","video","stream","harkInstance","on","stop","steps","title","description","placement","current","cover","style","textAlign","children","fileName","_jsxFileName","lineNumber","columnNumber","queryParams","URLSearchParams","search","init","get","handleStairAndConstantClick","innerText","handleHistoryMode","handleColorStyle","newColorScheme","includes","renderTruncatedFilenames","filenames","index","maxIndexToShow","shouldShow","isNearEnd","startIndex","showCondition","className","handleMenuClick","componentType","genderType","syllableCountType","tt","handlePlayLyricCountChange","newCount","onChangeStair","onChangeStairSwitch","renderSelectedComponent","ref","heteronymFile","MainButtons","justify","wrap","gap","onClick","shape","icon","onChangePrevious","onChangePause","onChangeNext","renderSelectedComponentLyric","Compact","maxCount","rows","placeholder","resize","onKeyDown","align","defaultChecked","checkedChildren","unCheckedChildren","onChangeRange","rangeValue","onChangePosition","positionValue","onChangeSpeed","speedValue","mappedValue","Math","round","onChangeHz","EnableVoluneMode","tem","onChangeThreshold","formatterdB","formatterHz","formatterPos","toFixed","span","vertical","marginTop","theme","token","colorPrimary","display","right","bottom","alignItems","justifyContent","preview","src","open","Group","defaultValue","buttonStyle","range","step","min","max","tooltip","formatter","marks","_c","$RefreshReg$"],"sources":["/var/www/gavt/src/Route/SampleVolume.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Button, Flex, } from 'antd';\nimport { SettingOutlined, CustomerServiceOutlined } from '@ant-design/icons';\nimport { Col, Row, Tour, ConfigProvider } from 'antd';\nimport { CaretRightOutlined } from '@ant-design/icons';\nimport { Slider, Input } from 'antd';\nimport { Breadcrumb, Layout, Menu, Dropdown, theme, Avatar } from 'antd';\nimport { Drawer, Cascader, Radio } from 'antd';\nimport { RedoOutlined, PauseOutlined, StepForwardOutlined, StepBackwardOutlined } from '@ant-design/icons';\nimport { Tooltip, FloatButton, Space, Switch } from 'antd';\nimport '../CSS/sample.css';\nimport { Modal } from 'antd';\nimport ConstantTxt from '../Canvas/ConstantTxt'\nimport Fixed from '../Canvas/Fixed'\nimport Stair from '../Canvas/Stair'\nimport Heteronym from '../Canvas/Heteronym'\nimport type { RadioChangeEvent } from 'antd';\nimport type { TourProps } from 'antd';\nimport ReactAudioPlayer from 'react-audio-player';\nimport type { SliderSingleProps } from 'antd';\nimport type { UploadProps } from 'antd';\nimport { UploadOutlined, ArrowLeftOutlined, RollbackOutlined } from '@ant-design/icons';\nimport { message, Upload } from 'antd';\nimport hark from 'hark';\nimport { useLocation } from 'react-router-dom';\nimport { Typography } from 'antd';\nimport type { CollapseProps } from 'antd';\nimport { Collapse } from 'antd';\nimport { Image } from 'antd';\nimport divide_1 from '../icon/Divider2-half.png'\nimport { UserOutlined } from '@ant-design/icons';\nimport { QuestionOutlined } from '@ant-design/icons';\nimport { adjustCanvasScale, map, drawBackground, generateNotesAndFrequencies } from '../function/canvasDefault';\nimport { useTemString } from '../hooks/useTemString';\nimport { useCanvasHooks } from '../hooks/useCanvasHooks';\nimport type { MenuProps } from 'antd';\n// @ts-ignore\nimport pdfToText from 'react-pdftotext';\nimport useCanvasAdjustHeight from '../hooksUseEffect/useCanvasAdjustHeight';\nimport AudioPlayer from 'react-h5-audio-player';\nimport { createFromIconfontCN } from '@ant-design/icons';\nimport { useOptionsHooks } from '../hooks/useOptionsHooks';\nimport ConstantVol from '../Canvas/ConstantVol'\nimport HeteronymVol from '../Canvas/HeteronymVol'\nimport StairVol from '../Canvas/StairVol'\n\nconst PlayIcon = createFromIconfontCN({\n  scriptUrl: '//at.alicdn.com/t/c/font_4566050_zpduwnlv2t.js',\n});\n\nconst { TextArea } = Input;\nconst { Title, Paragraph, Text, Link } = Typography;\ntype MenuTheme = 'show' | 'hide';\n\nconst { Content } = Layout;\n\nconst marksRange: SliderSingleProps['marks'] = {\n  50: '50Hz',\n  600: '600Hz'\n};\n\nconst marksBallPos: SliderSingleProps['marks'] = {\n  0: '0%',\n  1: '100%'\n};\nconst marksVol: SliderSingleProps['marks'] = {\n  50: '50dB',\n  90: '90dB'\n};\n\n\ninterface SampleProps {\n  genderName: string;\n  gender: string;\n  setGender: (str: string) => void;\n  audioKey: number;\n  audioSrc: string;\n  fetchAudioData: () => void;\n  handleIconClick: (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;\n  itemsAvatar: MenuProps['items'];\n}\nconst SampleVolume: React.FC<SampleProps> = ({\n  genderName, \n  gender, \n  setGender,\n  audioKey,\n  audioSrc,\n  fetchAudioData,\n  handleIconClick,\n  itemsAvatar,\n\n}) => {\n\n    // strings\n    const {\n      items_3,\n      stairFilenames,\n      heteronymFilenames,\n      shortDescription,\n    } = useTemString();\n\n      // Canvas values\n  const size = [400, 1400];\n  const [initialRange, setInitialRange] = useState<number[]>([100, 300]);\n  const [config, setConfig] = useState({\n    SRATE: 48000,\n    fxmin: 50,\n    fxlow: 50 + 50, // This initial value will be updated by useEffect below\n    fxhigh: 600 - 200, // This initial value will be updated by useEffect below\n    fxmax: 600\n  });\n  const [COLORS, setCOLORS] = useState({\n    realVoiceColor: '#d679de', \n    targetVoiceColor: '#4669C8', \n    closeVoiceColor: '#15dbcc', \n  }\n);\nconst [COLORSMode,setCOLORSMode] = useState(\"de\");\n\n  // open/close \n  const [openSetting, setOpenSetting] = useState(false);\n  const [txtShow, setTxtShow] = useState<string>(\"true\");\n  const [txtShowSwitch, setTxtShowSwitch] = useState<MenuTheme>('show');\n  const [openTour, setOpenTour] = useState<boolean>(false);\n  const [isPlaying, setIsPlaying] = useState(true);\n  const [isRetry, setIsRetry] = useState(false);\n  const [enableVol, setEnableVol] = useState<boolean>(false);\n  const [isOpenTextbox, setIsOpenTextbox] = useState<boolean>(false);\n  const [showNextPre, setShowNextPre] = useState<boolean>(false);\n  const [showListen, setShowListen] = useState<boolean>(false);\n\n    // special vatiables\n    const location = useLocation();\n    const ref12 = useRef(null);\n    const ref1 = useRef(null);\n    const ref2 = useRef(null);\n    const ref3 = useRef(null);\n    const parentRef = useRef<HTMLDivElement>(null);\n\n      // initial Value\n  const [volume, setVolume] = useState(0);\n  const [threshold, setThreshold] = useState<number>(70);\n  const [maxLyricCount, setMaxLyricCount] = useState<number>(2);\n  const [playLyricCount, setPlayLyricCount] = useState<number>(0);\n  const [divisor, setDivisor] = useState<number>(10);\n  const [ballPosition, setBallPosition] = useState<number>(0.5);\n\n  // Hz/Notes\n  const [showNotesPar, setShowNotesPar] = useState(false);\n\n  // selected choice\n  const [component, setComponent] = useState<string>(\"ConstantTxt\");\n  const [currentSelection, setCurrentSelection] = useState('Constant');\n  const [syllableCount, setSyllableCount] = useState<string>(\"none\");\n  const [baseFilenames, setBaseFilenames] = useState<string[]>([]);\n  const [fileContent, setFileContent] = useState<string[]>([]);\n  const [selectedNum, setSelectedNum] = useState<string[]>([\"2\"]);\n\n\n  // \n\n\n\n\n\n  const setPlaying = () => {\n    setIsPlaying(true);\n  };\n  const setPlayingPause = () => {\n    setIsPlaying(false);\n  };\n  const handleBeginTour = () => {\n    setOpenTour(true);\n    window.scrollTo(0, 0);\n  };\n  const onClose = () => {\n    setOpenSetting(false);\n  };\n  const ClearTxt = () => {\n    setFileContent([]);\n    setMaxLyricCount(1);\n  };\n\n  // Constant Page upload and input\n  const handleTextInput = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n    const content = e.target.value as string;\n    const separators = /[;,./\\n]/;\n    const splitContent = content.split(separators)\n      .map(s => s.trim())\n      .filter(Boolean);\n    console.log(splitContent);\n    setFileContent(splitContent);\n    setMaxLyricCount(splitContent.length - 1);\n    setPlayLyricCount(0);\n  }\n  const props: UploadProps = {\n    name: 'file',\n    accept: '.txt, .pdf',\n    beforeUpload: (file) => {\n      if (file.type !== 'text/plain' && file.type !== 'application/pdf') {\n        message.error(`${file.name} is not a valid text/pdf file.`);\n        return false;\n      }\n      if (file.type === 'application/pdf') {\n        pdfToText(file)\n          .then((text: string) => {\n            const separators = /[;,./\\n]/;\n            const splitContent = text.split(separators)\n              .map((s: string) => s.trim())\n              .filter(Boolean);\n            console.log(splitContent);\n            setFileContent(splitContent);\n            setMaxLyricCount(splitContent.length - 1);\n            setPlayLyricCount(0);\n          })\n          .catch((error: any) => { // Explicitly specify the type of 'error' parameter as 'any'\n            message.error('Error reading PDF file:', error);\n          });\n        return false;\n      }\n      if (file.type === 'text/plain') {\n        const reader = new FileReader();\n        reader.onload = (e: ProgressEvent<FileReader>) => {\n          if (e.target?.result) {\n            const content = e.target.result as string;\n            // const separators = /[;,./]/;\n            const separators = /[;,./\\n]/;\n            const splitContent = content.split(separators)\n              .map(s => s.trim())\n              .filter(Boolean);\n            console.log(splitContent);\n            setFileContent(splitContent);\n            setMaxLyricCount(splitContent.length - 1);\n            setPlayLyricCount(0);\n          }\n        };\n\n        reader.readAsText(file);\n\n        return false;\n      }\n    },\n    onChange(info) {\n      if (info.file.status === 'done') {\n        message.success(`${info.file.name} file read successfully`);\n      } else if (info.file.status === 'error') {\n        message.error(`${info.file.name} file read failed.`);\n      }\n    },\n  };\n  const changeOnEnter = (e: any) => {\n    if (e.key === 'Enter' && !e.shiftKey) {\n      console.log(\"Enter Key Pressed!\");\n      handleTextInput(e);\n    }\n  }\n\n\n  const [historyMode, setHistoryMode] = useState(\"Mixed\");\n  \n  const [currentColorScheme, setCurrentColorScheme] = useState(\"blue\");\n  const [LAMP_COLORS, setLAMP_COLORS] = useState<string[]>([\n    'rgb(3, 4, 242)', // low\n    'rgb(106, 0, 147)', // mid\n    'rgb(221, 0, 34)', // high\n  ]);\n\n  const LAMP_COLORSBLUE = [\n    'rgb(3, 4, 242)', // low\n    'rgb(106, 0, 147)', // mid\n    'rgb(221, 0, 34)', // high\n  ];\n\n  const LAMP_COLORSGREEN = [\n    'rgb(98, 187, 70)', // low\n    'rgb(255, 194, 14)', // 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\n\n  const getLampColor = (vol: number) => {\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: string) => ({\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\n    // Volume\n    useEffect(() => {\n      navigator.mediaDevices.getUserMedia({ audio: true, video: false })\n        .then(stream => {\n          const harkInstance = hark(stream, {});\n  \n          harkInstance.on('volume_change', (volume, threshold) => {\n            setVolume(volume);\n          });\n  \n          return () => harkInstance.stop();\n        })\n        .catch(error => {\n          console.error('Error accessing the microphone', error);\n        });\n    }, []);\n    useEffect(() => {\n      if (volume > threshold - 100 && enableVol) {\n        setIsPlaying(true);\n      }\n    }, [volume]);\n\n\n  // Tour\n  const steps: TourProps['steps'] = [\n    {\n      title: 'Pitch Exercises',\n      description: 'Switch between different exercises',\n      placement: 'top',\n      target: () => ref12.current,\n    },\n    {\n      title: 'Canvas Display',\n      description: 'Visualize your voice pitch and target pitch curve in real-time.',\n      placement: 'top',\n      target: () => ref1.current,\n    },\n    {\n      title: 'Function Buttons',\n      cover: (\n        <ul style={{ textAlign: 'left' }}>\n          <li>Start/Stop: Begin or stop recording.</li>\n          <li>Retry: Clear display and restart.</li>\n          <li>Upload txt/pdf File (optional): Upload text or pdf for you (in .txt/.pdf format) to read while recording.</li>\n          <li>Previous Next (if text uploaded): Switch between lines of text.</li>\n        </ul>\n      ),\n      target: () => ref2.current,\n    },\n    {\n      title: 'Slider',\n      description: 'Use this slides to change the target pitch value that you want to aim for.',\n      target: () => parentRef.current as HTMLDivElement,\n    },\n    {\n      title: 'Options menu',\n      description: 'Adjust settings such as the pitch display range.',\n      target: () => ref3.current,\n    },\n\n  ];\n\n  useEffect(() => {\n    const queryParams = new URLSearchParams(location.search);\n    const init = queryParams.get('init');\n    if (init === 'true') {\n      handleBeginTour();\n    }\n  }, [location]);\n\n    // Options of different Exercise \n    const handleStairAndConstantClick = (e: any) => {\n      setPlayLyricCount(0);\n      setCurrentSelection(e.target.innerText);\n      console.log(e.target.innerText);\n      if (e.target.innerText === \"Constant\" || e.target.innerText === \"CONSTANT\") {\n        setComponent(\"ConstantTxt\");\n        setSelectedNum([\"2\"]);\n  \n      } else if (e.target.innerText === \"Stair\" || e.target.innerText === \"STAIR\") {\n        setComponent(\"Stair\");\n        setSelectedNum([\"3\"]);\n  \n      } else {\n        setComponent(\"Heteronym\");\n        setSelectedNum([\"4\"]);\n      }\n      setSyllableCount(\"none\");\n    }\n\n  const handleHistoryMode = (e: any) => {\n    setHistoryMode(e.target.innerText);\n  }\n  const handleColorStyle = (e: any) => {\n    const newColorScheme = e.target.innerText.includes(\"Blue-Red\") ? \"blue\" : \"green\";\n    setCurrentColorScheme(newColorScheme);\n  };\n  const renderTruncatedFilenames = (filenames: string[]) => {\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\n      return (\n        showCondition && (\n          <li key={index} className={playLyricCount === index ? 'highlighted' : ''}>{text}</li>\n        )\n      );\n    });\n  };\n  const handleMenuClick = (e: any) => {\n    setPlayLyricCount(0);\n    const [componentType, genderType, syllableCountType] = e.key.split('-');\n    if (componentType == \"Constant\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"ConstantTxt\") {\n      setCurrentSelection(\"Constant\");\n    } else if (componentType == \"Stair\") {\n      setCurrentSelection(\"Staircase\");\n    } else {\n      let tt = \"Syllables \" + syllableCountType\n      setCurrentSelection(tt);\n      setSelectedNum([\"5\"]);\n\n    }\n\n    setComponent(componentType);\n    setGender(genderType);\n    setSyllableCount(syllableCountType);\n\n    setCurrentSelection(e.key + \"syllable \" + genderName);\n  };\n  const handlePlayLyricCountChange = (newCount: number) => {\n    setPlayLyricCount(newCount);\n  };\n\n\n  const onChangeStair = (e: RadioChangeEvent) => {\n    setTxtShow(e.target.value);\n    console.log(e);\n  };\n  const onChangeStairSwitch = (value: boolean) => {\n    setTxtShowSwitch(value ? 'hide' : 'show');\n    setTxtShow(value ? 'true' : 'false');\n  };\n\n  const renderSelectedComponent = (): React.ReactNode => {\n    switch (component) {\n      case 'ConstantTxt':\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} />;\n        case 'Stair':\n          return <StairVol LAMP_COLORS={LAMP_COLORS} historyMode={historyMode} volume={volume} setShowNotesPar={setShowNotesPar} setMaxLyricCount={setMaxLyricCount} initialRange={initialRange} divisor={divisor} txtShow={txtShow} playLyricCount={playLyricCount} setPlayingPause={setPlayingPause} isRetry={isRetry} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\n        case 'Heteronym':\n          return <HeteronymVol LAMP_COLORS={LAMP_COLORS} historyMode={historyMode} volume={volume} setMaxLyricCount={setMaxLyricCount} initialRange={initialRange} divisor={divisor} txtShow={txtShow} playLyricCount={playLyricCount} setPlayingPause={setPlayingPause} isRetry={isRetry} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} heteronymFile={heteronymFilenames} />;\n  \n        default:\n        return <span>Canvas: Picture</span>;\n    }\n  }\n  const MainButtons = (): React.ReactNode => {\n    return (\n      <Flex justify=\"center\" wrap=\"wrap\" gap=\"small\">\n\n        <Tooltip title=\"Retry\">\n          <Button onClick={() => setIsRetry(!isRetry)} shape=\"circle\" icon={<RedoOutlined />} />\n        </Tooltip>\n        {/* <AudioPlayer\n          autoPlayAfterSrcChange={false}\n          src={audioSrcFromChild}\n          ref={audioPlayerNew}\n          style={{ display: 'none' }}\n        /> */}\n        {/* {showListen &&\n          <Tooltip title=\"Listen\">\n            <Button disabled={component !== \"Fixed\"} shape=\"circle\" onClick={playAudio} icon={<CustomerServiceOutlined />} />\n          </Tooltip>\n        } */}\n\n        {\n          showNextPre &&\n          <Tooltip title=\"Previous\">\n            <Button shape=\"circle\" onClick={onChangePrevious} icon={<StepBackwardOutlined />} />\n          </Tooltip>\n        }\n        <Tooltip title={isPlaying ? \"Pause\" : \"Play\"}>\n          <Button onClick={onChangePause} shape=\"circle\" icon={isPlaying ? <PauseOutlined /> : <CaretRightOutlined />} />\n        </Tooltip>\n        {\n          showNextPre &&\n          <Tooltip title=\"Next\">\n            <Button shape=\"circle\" onClick={onChangeNext} icon={<StepForwardOutlined />} />\n          </Tooltip>\n        }\n\n      </Flex>\n    );\n  };\n  const renderSelectedComponentLyric = (): React.ReactNode => {\n    switch (component) {\n\n      case 'ConstantTxt':\n        return (\n          <div className='lyric'>\n\n            <Space size=\"middle\">\n              {MainButtons()}\n              <Space.Compact>\n\n                <Tooltip title=\"Clear existing files and upload new ones\">\n                  <Button onClick={ClearTxt}>Clear text</Button>\n                </Tooltip>\n\n                <Tooltip title=\"Upload PDF or .txt file to read during practice\">\n                  <Upload maxCount={1} {...props}>\n                    <Button icon={<UploadOutlined />}>Upload File</Button>\n                  </Upload>\n                </Tooltip>\n                <Tooltip title=\"Type/Paste text to read during parctice\">\n                  <Button onClick={() => setIsOpenTextbox(!isOpenTextbox)}>\n                    {!isOpenTextbox ? \"Enter Text\" : \"Close Textbox\"}\n                  </Button>\n                </Tooltip>\n              </Space.Compact>\n\n            </Space>\n            <>\n              {isOpenTextbox && fileContent.length === 0 && (\n                <TextArea rows={4} placeholder='Enter or paste Text Entry' style={{ height: 40, resize: 'none' }} onKeyDown={changeOnEnter} />\n              )\n\n              }\n\n            </>\n            <ul>\n              {fileContent.map((text, index) => {\n                const maxIndexToShow = playLyricCount + 2 >= fileContent.length ? fileContent.length - 1 : playLyricCount + 2;\n\n                const shouldShow = index >= playLyricCount && index <= maxIndexToShow;\n                const isNearEnd = fileContent.length - playLyricCount <= 2;\n                const startIndex = isNearEnd ? fileContent.length - 3 : playLyricCount;\n                const showCondition = index >= startIndex && index <= startIndex + 2;\n\n                return (\n                  showCondition && (\n                    <li key={index} className={playLyricCount === index ? 'highlighted' : ''}>{text}</li>\n                  )\n                );\n              })}\n            </ul>\n          </div>\n        )\n      case 'Stair':\n        return (\n          <div className='lyric'>\n            <Flex align=\"center\" gap=\"middle\">\n              {MainButtons()}\n\n              <Tooltip title=\"Show/Hide 5-syllable phrases to read\">\n                <Switch defaultChecked checkedChildren=\"show\" unCheckedChildren=\"hide\" onChange={onChangeStairSwitch} />\n              </Tooltip>\n\n            </Flex>\n            {(() => {\n              if (txtShow === 'true') {\n                return (\n                  <ul>\n                    {renderTruncatedFilenames(stairFilenames)}\n                  </ul>\n                );\n              }\n              return null;\n            })()}\n\n          </div>\n        )\n      case 'Heteronym':\n        return (\n          <div className='lyric'>\n            {MainButtons()}\n            {(() => {\n              if (txtShow === 'true') {\n                return (\n                  <ul>\n                    {renderTruncatedFilenames(heteronymFilenames)}\n                  </ul>\n                );\n              }\n              return null;\n            })()}\n\n          </div>\n        )\n      case 'Fixed':\n        return (\n          <div className='lyric'>\n            {MainButtons()}\n            <ul>\n              {renderTruncatedFilenames(baseFilenames)}\n            </ul>\n          </div>\n        )\n      default:\n        return <span>Canvas: Picture</span>;\n    }\n  }\n\n  useEffect(() => {\n    if (component == \"ConstantTxt\" && fileContent.length === 0) {\n      setShowNextPre(false);\n      setShowListen(false);\n    } else if (component == \"ConstantTxt\" && fileContent.length != 0) {\n      setShowNextPre(true);\n      setShowListen(false);\n    }\n    else if (component == \"Fixed\") {\n      setShowNextPre(true);\n      setShowListen(true);\n    } else if (component == \"Stair\") {\n      setShowNextPre(true);\n      setShowListen(false);\n    } else if (component == \"Heteronym\") {\n      setShowNextPre(true);\n      setShowListen(false);\n    } else {\n      setShowNextPre(true);\n      setShowListen(false);\n    }\n  }\n    , [component, fileContent]);\n\n  const onChangeRange = (rangeValue: number[]) => {\n    console.log(rangeValue[1]);\n    setInitialRange([rangeValue[0], rangeValue[1]]);\n  }\n  const onChangePosition = (positionValue: number) => {\n    setBallPosition(positionValue);\n  }\n  const onChangeSpeed = (speedValue: number) => {\n    const mappedValue = Math.round((speedValue * 20) + 4);\n    setDivisor(mappedValue);\n  }\n  const onChangeHz = ({ target: { value } }: RadioChangeEvent) => {\n    console.log(value);\n    if (value === 'hz') {\n      setShowNotesPar(false);\n    } else {\n      setShowNotesPar(true);\n    }\n  }\n\n  const EnableVoluneMode = (e: boolean) => {\n    console.log(e);\n    if (e) {\n      setEnableVol(true);\n\n    } else {\n      setEnableVol(false);\n\n    }\n  }\n  // 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\n  const onChangeNext = () => {\n    const tem = playLyricCount;\n    console.log(playLyricCount);\n    if (tem >= maxLyricCount) {\n      setPlayLyricCount(maxLyricCount);\n    } else {\n      setPlayLyricCount(tem + 1);\n    }\n  };\n\n  // tooltips\n  const onChangeThreshold = (e: number) => { setThreshold(e); };\n  const formatterdB = (value: number | undefined) => `${value} dB`;\n  const formatterHz = (value: number | undefined) => `${value} Hz`;\n  const formatterPos = (value: number | undefined) => `${value ? (value * 100).toFixed(0) : '0'}%`;\n\n  return (\n    // <div className=\"app-container\" >\n    <Row>\n      <Col span={24}>\n        <Layout className=\"layoutSample\">\n\n          <Content>\n\n            <Flex align=\"center\" justify=\"center\" gap=\"middle\" vertical>\n              \n            <div style={{ marginTop: \"2vw\" }}>\n                <ConfigProvider\n                  theme={{\n                    token: {\n                      colorPrimary: \"rgb(132, 118, 171)\",\n                      borderRadius: 0,\n                    },\n                  }}\n                >\n\n                  <Space size=\"middle\" ref={ref12}>\n                    <Space.Compact>\n\n                      <Tooltip title=\"Switch to the Constant exercise\">\n                        <Button type={component === \"ConstantTxt\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\n                          CONSTANT\n                        </Button>\n                      </Tooltip>\n\n                      <Tooltip title=\"Switch to the Stair exercise\">\n                        <Button type={component === \"Stair\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\n                          STAIR\n                        </Button>\n                      </Tooltip>\n\n                      <Tooltip title=\"Switch to the Heteronyms exercise\">\n                        <Button type={component === \"Heteronym\" ? \"primary\" : \"default\"} onClick={handleStairAndConstantClick}>\n                          HETERONYMS\n                        </Button>\n                      </Tooltip>\n                    </Space.Compact>\n\n                  </Space>\n\n                </ConfigProvider>\n\n              </div>\n              {shortDescription(component)}\n\n              <div style={{ width: \"100%\" }}>\n                {renderSelectedComponent()}\n              </div>\n              <div>\n                <div style={{ display: 'flex' }}>\n                  <div style={lampStyle(LAMP_COLORS[0])}></div>\n                  <div style={lampStyle(LAMP_COLORS[1])}></div>\n                  <div style={lampStyle(LAMP_COLORS[2])}></div>\n                </div>\n              </div>\n              <Flex vertical justify=\"center\" wrap=\"wrap\" gap=\"small\" ref={ref2} >\n                {renderSelectedComponentLyric()}\n              </Flex>\n\n              {/* <div className=\"currentSelection blueFont\">\n                <p>Volume mode</p>\n              </div> */}\n              {/* <div style={{ width: \"100%\" }}>\n                {renderSelectedComponent()}\n              </div>\n              <Tooltip title={isPlaying ? \"Pause\" : \"Play\"}>\n                <Button onClick={onChangePause} shape=\"circle\" icon={isPlaying ? <PauseOutlined /> : <CaretRightOutlined />} />\n              </Tooltip> */}\n             \n             <FloatButton style={{\n                width: 60,\n                height: 60,\n                right: 15,\n                bottom: 30,\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center'\n              }}\n                onClick={() => setOpenSetting(true)}\n                ref={ref3}\n                shape=\"square\"\n                description=\"SETTINGS\"\n                icon={<SettingOutlined />} />\n              <FloatButton\n                style={{\n                  width: 60,\n                  height: 60,\n                  right: 100,\n                  bottom: 30,\n                  display: 'flex',\n                  alignItems: 'center',\n                  justifyContent: 'center'\n                }}\n                shape=\"square\"\n                description=\"TOUR\"\n                onClick={handleBeginTour}\n                icon={<QuestionOutlined />} />\n              <Image\n                preview={false}\n                src={divide_1}\n                style={{ width: '100%' }}\n              />\n\n            </Flex>\n            <Drawer title=\"Options\" placement=\"right\" onClose={() => setOpenSetting(false)} open={openSetting} width={430}>\n              <Flex vertical gap=\"middle\">\n\n                <Space>\n                  <p># Coordinate Display Mode</p>\n                  <Radio.Group onChange={onChangeHz} defaultValue=\"notes\" buttonStyle=\"solid\">\n                    <Radio.Button value=\"hz\"> Hz </Radio.Button>\n                    <Radio.Button value=\"notes\">Notes</Radio.Button>\n                  </Radio.Group>\n                </Space>\n\n                <Space>\n                  <p># History Mode Selection: </p>\n                </Space>\n                <Space>\n                  <Button type={historyMode === 'Size' ? 'primary' : 'default'} onClick={handleHistoryMode}>Size</Button>\n                  <Button type={historyMode === 'Color' ? 'primary' : 'default'} onClick={handleHistoryMode}>Color</Button>\n                  <Button type={historyMode === 'Mixed' ? 'primary' : 'default'} onClick={handleHistoryMode}>Mixed</Button>\n                  <Button type={historyMode === 'None' ? 'primary' : 'default'} onClick={handleHistoryMode}>None</Button>\n                </Space>\n\n                <Space>\n                  <p># Color Mode</p>\n\n                </Space>\n                <Space>\n                  <Button onClick={handleColorStyle} type={currentColorScheme === \"blue\" ? 'primary' : 'default'}>Blue-Red</Button>\n                  <Button onClick={handleColorStyle} type={currentColorScheme === \"green\" ? 'primary' : 'default'}>Green-Red</Button>\n                </Space>\n\n                <div>\n                  <p># Pitch Display Range</p>\n                  <Slider\n                    range\n                    step={10}\n                    min={50}\n                    max={600}\n                    onChange={onChangeRange}\n                    // tooltipPlacement={bottom}\n                    // tooltip ={{formatter: null}}\n                    tooltip={{ formatter: formatterHz }}\n                    marks={marksRange}\n                    defaultValue={[100, 300]} />\n                </div>\n\n\n                {component !== \"Fixed\" && component !== \"Stair\" && (\n                  <div>\n                    <p># Pitch Indicator Horizontal Position</p>\n                    <Slider\n                      step={0.1}\n                      min={0}\n                      max={1}\n                      onChange={onChangePosition}\n                      tooltip={{ formatter: formatterPos }}\n                      // tooltip ={{formatter: null}}\n                      defaultValue={0.5}\n                      marks={marksBallPos}\n                    />\n                  </div>\n                )}\n\n\n                {component !== \"Fixed\" && component !== \"Stair\" && component !== \"Heteronym\" && (\n                  <div>\n                    <p># Pitch Indicator Horizontal Position</p>\n                    <Slider\n                      step={0.1}\n                      min={0}\n                      max={1}\n                      onChange={onChangePosition}\n                      // tooltip={{ formatter: formatterPos }}\n                      // tooltip ={{formatter: null}}\n                      tooltip={{\n                        // placement: 'bottom',\n                        formatter: formatterPos,\n                        // open: tooltipVisible,\n                      }}\n                      defaultValue={0.5}\n                      marks={marksBallPos}\n                    />\n                  </div>\n                )}\n\n                <div>\n                  <p># Pitch Indicator Speed</p>\n                  <Slider\n                    step={0.05}\n                    min={0}\n                    max={1}\n                    onChange={onChangeSpeed}\n                    // tooltip={{ formatter: formatterPos }}\n                    tooltip={{\n                      // placement: 'bottom',\n                      formatter: formatterPos,\n                    }}\n                    defaultValue={0.3}\n                  // tooltip ={{formatter: null}}\n                  // marks={marksBall}\n                  />\n                </div>\n\n                <div>\n                  <Space>\n                    <p># Auto-Start When Voice Detected</p>\n                    <Switch defaultChecked={false} onChange={EnableVoluneMode} />\n                  </Space>\n\n                  {enableVol &&\n                    <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                      }}\n                      defaultValue={70}\n                      marks={marksVol}\n                    />\n                  }\n                </div>\n\n                <br />\n                <Button onClick={onClose}>Close</Button>\n              </Flex>\n\n\n            </Drawer>\n          </Content>\n        </Layout>\n\n      </Col>\n    </Row>\n\n    // </div>\n  );\n}\n\nexport default SampleVolume;\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}