{"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 } 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 } 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 divide_1 from '../icon/Divider2-half.png';\nimport { Image } from 'antd';\n// @ts-ignore\n\nimport { Typography } from 'antd';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst {\n  Header,\n  Content\n} = Layout;\nconst {\n  TextArea\n} = Input;\nconst {\n  Title,\n  Paragraph,\n  Text,\n  Link\n} = Typography;\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};\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 [initialRange, setInitialRange] = useState([100, 300]);\n  const [config, setConfig] = useState({\n    SRATE: 48000,\n    fxmin: 50,\n    fxlow: 50 + 50,\n    // This initial value will be updated by useEffect below\n    fxhigh: 600 - 200,\n    // This initial value will be updated by useEffect below\n    fxmax: 600\n  });\n  const COLORS = {\n    realVoiceColor: '#FF0000',\n    // red\n    targetVoiceColor: '#00008B',\n    // blue\n    closeVoiceColor: '#FFFF00' // yellow\n  };\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 [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 [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\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\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\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    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 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 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: 288,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: \"Retry: Clear display and restart.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 289,\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: 290,\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: 291,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 287,\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 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: 327,\n        columnNumber: 11\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    setComponent(componentType);\n    setGender(genderType);\n    setSyllableCount(syllableCountType);\n    setCurrentSelection(e.key + \"syllable \" + genderName);\n  };\n\n  /**\n  * Defines the items for the syllable menu based on the gender.\n  * If the gender is 'none', it only includes a single item prompting the user to select an avatar.\n  * Otherwise, it includes multiple items representing the number of syllables, with corresponding click handlers.\n  */\n  const itemsSyllable = gender === 'none' ? [{\n    key: 'SelectAvatar',\n    label: 'Please select avatar'\n  }] : [{\n    key: `Fixed-${gender}-2`,\n    label: \"2 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-3`,\n    label: \"3 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-4`,\n    label: \"4 syllables\",\n    onClick: handleMenuClick\n  }, {\n    key: `Fixed-${gender}-5`,\n    label: \"5 syllables\",\n    onClick: handleMenuClick\n  }];\n  const showDrawer = () => {\n    setOpen(true);\n  };\n  const onChangeStair = e => {\n    setTxtShow(e.target.value);\n    console.log(e);\n  };\n  const ClearTxt = () => {\n    setFileContent([]);\n    setMaxLyricCount(1);\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  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: 435,\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: 437,\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: 451,\n                  columnNumber: 50\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 451,\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: 454,\n                    columnNumber: 33\n                  }, this),\n                  children: \"Upload Txt File\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 454,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 453,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 448,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 447,\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: 470,\n                columnNumber: 21\n              }, this);\n            })\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 459,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 445,\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: 481,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n              value: \"false\",\n              children: \"Hide\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 482,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 480,\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: 487,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 479,\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: 501,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n              value: \"false\",\n              children: \"Hide\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 502,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 500,\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: 507,\n                columnNumber: 19\n              }, this);\n            }\n            return null;\n          })()]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 499,\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: 520,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 519,\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: 526,\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          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                className: \"currentSelection blueFont\",\n                children: /*#__PURE__*/_jsxDEV(\"p\", {\n                  children: \"Volume mode\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 639,\n                  columnNumber: 17\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 638,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                style: {\n                  width: \"100%\"\n                },\n                children: renderSelectedComponent()\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 641,\n                columnNumber: 15\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: 645,\n                    columnNumber: 82\n                  }, this) : /*#__PURE__*/_jsxDEV(CaretRightOutlined, {}, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 645,\n                    columnNumber: 102\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 645,\n                  columnNumber: 17\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 644,\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: 649,\n                    columnNumber: 19\n                  }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                    style: lampStyle(LAMP_COLORS[1])\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 650,\n                    columnNumber: 19\n                  }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n                    style: lampStyle(LAMP_COLORS[2])\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 651,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 648,\n                  columnNumber: 17\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 647,\n                columnNumber: 15\n              }, this), /*#__PURE__*/_jsxDEV(Tooltip, {\n                title: \"Setting\",\n                children: /*#__PURE__*/_jsxDEV(FloatButton, {\n                  style: {\n                    width: 50,\n                    height: 50,\n                    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: 661,\n                    columnNumber: 58\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 655,\n                  columnNumber: 17\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 654,\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: 664,\n                columnNumber: 15\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 637,\n              columnNumber: 13\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: 675,\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: 677,\n                      columnNumber: 21\n                    }, this), /*#__PURE__*/_jsxDEV(Radio.Button, {\n                      value: \"notes\",\n                      children: \"Notes\"\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 678,\n                      columnNumber: 21\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 676,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 674,\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: 683,\n                    columnNumber: 19\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 682,\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: 686,\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: 687,\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: 688,\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: 689,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 685,\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: 693,\n                    columnNumber: 19\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 692,\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: 697,\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: 698,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 696,\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: 702,\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: 703,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 701,\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: 719,\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: 720,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 718,\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: 736,\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: 737,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 735,\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: 756,\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: 757,\n                    columnNumber: 19\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 755,\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: 775,\n                      columnNumber: 21\n                    }, this), /*#__PURE__*/_jsxDEV(Switch, {\n                      defaultChecked: false,\n                      onChange: EnableVoluneMode\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 776,\n                      columnNumber: 21\n                    }, this)]\n                  }, void 0, true, {\n                    fileName: _jsxFileName,\n                    lineNumber: 774,\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: 780,\n                    columnNumber: 21\n                  }, this)]\n                }, void 0, true, {\n                  fileName: _jsxFileName,\n                  lineNumber: 773,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 797,\n                  columnNumber: 17\n                }, this), /*#__PURE__*/_jsxDEV(Button, {\n                  onClick: onClose,\n                  children: \"Close\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 798,\n                  columnNumber: 17\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 672,\n                columnNumber: 15\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 671,\n              columnNumber: 13\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 635,\n            columnNumber: 11\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 633,\n          columnNumber: 9\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 632,\n        columnNumber: 7\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 631,\n      columnNumber: 5\n    }, this)\n\n    // </div>\n  );\n}\n_s(Sample, \"o6HPS1T85ZME7sjQ0cuZ2WlMdxE=\", 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","Input","Layout","Drawer","Radio","RedoOutlined","PauseOutlined","Tooltip","FloatButton","Space","Switch","ConstantVol","UploadOutlined","message","Upload","hark","useLocation","divide_1","Image","Typography","jsxDEV","_jsxDEV","Header","Content","TextArea","Title","Paragraph","Text","Link","marksRange","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","enableVol","setEnableVol","playLyricCount","setPlayLyricCount","gender","setGender","genderName","setGenderName","syllableCount","setSyllableCount","baseFilenames","setBaseFilenames","stairFilenames","setStairFilenames","heteronymFilenames","setHeteronymFilenames","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","tooltipVisible","setTooltipVisible","getLampColor","vol","temvol","lampStyle","color","backgroundColor","opacity","width","height","borderRadius","margin","handleAfterOpenChange","scrollDrawerContent","drawerElement","document","querySelector","scrollOffset","scrollTop","handleBeginTour","window","scrollTo","queryParams","URLSearchParams","search","init","get","props","name","accept","beforeUpload","file","reader","FileReader","onload","e","_e$target","target","result","content","separators","splitContent","split","map","s","trim","filter","Boolean","console","log","length","readAsText","onChange","info","status","success","error","steps","title","description","placement","current","cover","style","textAlign","children","fileName","_jsxFileName","lineNumber","columnNumber","handleHistoryMode","innerText","handleColorStyle","newColorScheme","includes","renderTruncatedFilenames","filenames","text","index","maxIndexToShow","shouldShow","isNearEnd","startIndex","showCondition","className","handleMenuClick","componentType","genderType","syllableCountType","key","tt","itemsSyllable","label","onClick","showDrawer","onChangeStair","value","ClearTxt","onClose","navigator","mediaDevices","getUserMedia","audio","video","then","stream","harkInstance","on","stop","catch","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","align","justify","gap","vertical","shape","display","alignItems","justifyContent","preview","src","afterOpenChange","buttonStyle","type","range","step","min","max","tooltip","formatter","marks","defaultChecked","_c","$RefreshReg$"],"sources":["/var/www/gavt/src/Route/SampleVolume.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Button, Flex, Segmented } from 'antd';\nimport { AppstoreOutlined, MailOutlined, SettingOutlined, CustomerServiceOutlined } from '@ant-design/icons';\nimport { Col, Row, Tour } from 'antd';\nimport { FrownOutlined, SmileOutlined, CaretRightOutlined, CheckOutlined, CloseOutlined } from '@ant-design/icons';\nimport { Slider, Input } from 'antd';\nimport { Breadcrumb, Layout, Menu, Dropdown, theme } from 'antd';\nimport { Drawer, Cascader, Radio } from 'antd';\nimport { Select } from 'antd';\nimport { SearchOutlined, RedoOutlined, PauseOutlined, StepForwardOutlined, StepBackwardOutlined } from '@ant-design/icons';\nimport { Tooltip, FloatButton, Space, Switch } from 'antd';\nimport '../CSS/sample.css';\nimport ConstantVol from '../Canvas/ConstantVol'\nimport type { RadioChangeEvent } from 'antd';\nimport type { MenuProps } from 'antd';\nimport type { TourProps } from 'antd';\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 divide_1 from '../icon/Divider2-half.png'\nimport { Image } 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 { Typography } from 'antd';\n\nconst { Header, Content } = Layout;\n\nconst { TextArea } = Input;\nconst { Title, Paragraph, Text, Link } = Typography;\ntype MenuTheme = 'show' | 'hide';\n\ninterface FloatButtonProps {\n  children?: React.ReactNode; // Add this line to accept child elements\n}\ninterface Option {\n  value: string;\n  label: string;\n  disabled?: boolean;\n}\n\nconst marksRange: SliderSingleProps['marks'] = {\n  50: '50Hz',\n  600: '600Hz'\n};\n\nconst marksBallPos: SliderSingleProps['marks'] = {\n  0: '0%',\n  1: '100%'\n};\n\nconst marksVol: SliderSingleProps['marks'] = {\n  50: '50dB',\n  90: '90dB'\n};\nfunction Sample() {\n  const [open, setOpen] = useState(false);\n  const [txtShow, setTxtShow] = useState<string>(\"true\");\n  const [txtShowBoo, setTxtShowBoo] = useState<boolean>(true);\n  const size = [400, 1400];\n  const location = useLocation();\n\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 = {\n    realVoiceColor: '#FF0000', // red\n    targetVoiceColor: '#00008B', // blue\n    closeVoiceColor: '#FFFF00', // yellow\n  };\n\n  const [maxLyricCount, setMaxLyricCount] = useState<number>(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\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<number>(10);\n  const [openTour, setOpenTour] = useState<boolean>(false);\n  const [isFixed, setIsFixed] = useState(true);\n  const [showNotesPar, setShowNotesPar] = useState(true);\n  const [component, setComponent] = useState<string>(\"ConstantTxt\");\n  // const [component, setComponent] = useCookieState<string | number>(\"Constant\", \"initialValue\");\n  // const [component, setComponent] = useCookieState<string>('component11',\"Constant\");\n  const [ballPosition, setBallPosition] = useState<number>(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 [enableVol, setEnableVol] = useState<boolean>(false);\n  const [playLyricCount, setPlayLyricCount] = useState<number>(0);\n  const [gender, setGender] = useState<string>(\"none\");\n  const [genderName, setGenderName] = useState<string>(\"none\");\n  const [syllableCount, setSyllableCount] = useState<string>(\"none\");\n  const [baseFilenames, setBaseFilenames] = useState<string[]>([]);\n  const [stairFilenames, setStairFilenames] = useState<string[]>([\n    \"Bigger and better\",\n    \"Drum and bugle corps\",\n    \"He has a good job\",\n    \"Before and after\",\n    \"Come back right away\",\n    \"Blow up the balloon\"\n  ]);\n  const [heteronymFilenames, setHeteronymFilenames] = useState<string[]>([\n    \"ADdress adDRESS\",\n    \"CONduct conDUCT\",\n    \"CONflict conFLICT\",\n    \"CONtent conTENT\",\n    \"CONsole conSOLE\",\n    \"CONtest conTEST\",\n    \"CONtrast conTRAST\",\n    \"CONtract conTRACT\",\n    \"DEsert deSERT\",\n    \"CONvert conVERT\",\n    \"EScort esCORT\",\n    \"EXport exPORT\",\n    \"CONvict conVICT\",\n    \"EXtract exTRACT\",\n    \"IMport imPORT\",\n    \"DIgest diGEST\",\n    \"INcrease inCREASE\",\n    \"INsult inSULT\",\n    \"PROduce proDUCE\",\n    \"REcord reCORD\",\n    \"TRANSfer transFER\",\n    \"IMprint imPRINT\",\n    \"INsert inSERT\",\n    \"COMpound comPOUND\",\n    \"INvalid inVALID\",\n    \"OBject obJECT\",\n    \"MINute minUTE\",\n    \"PERmit perMIT\",\n    \"PROject proJECT\",\n    \"PREsent preSENT\"\n  ]);\n\n  const [threshold, setThreshold] = useState<number>(70);\n  // const [showThreshold, setShowThreshold] = useState<boolean>(false);\n  const [displayText, setDisplayText] = useState('Input Txt');\n  const [audioSrcFromChild, setAudioSrcFromChild] = useState<string>('');\n  const [fileContent, setFileContent] = useState<string[]>([]);\n  const [showNextPre, setShowNextPre] = useState<boolean>(false);\n  const [showListen, setShowListen] = useState<boolean>(false);\n  const [enablePre, setEnablePre] = useState<boolean>(false);\n  const [enableNext, setEnableNext] = useState<boolean>(true);\n  const parentRef = useRef<HTMLDivElement>(null);\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 [showPre, SetShowPre] = useState<boolean>(false);\n  const [tooltipVisible, setTooltipVisible] = useState(false);\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\n  // const drawerRef = useRef(null);\n  const handleAfterOpenChange = (open: boolean) => {\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\n    if (drawerElement) {\n      drawerElement.scrollTop = scrollOffset;\n    }\n  };\n\n  const handleBeginTour = () => {\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\n  const props: UploadProps = {\n    name: 'file',\n    accept: '.txt',\n    beforeUpload: (file) => {\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    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\n  const steps: TourProps['steps'] = [\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      // description: 'Save your changes.',\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 File (optional): Upload text for you (in .txt 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: 'Switch between different exercises and adjust settings such as the pitch display range.',\n      target: () => ref3.current,\n    },\n\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\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\n  const handleMenuClick = (e: any) => {\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(componentType);\n    setGender(genderType);\n    setSyllableCount(syllableCountType);\n    setCurrentSelection(e.key + \"syllable \" + genderName);\n  };\n\n  /**\n * Defines the items for the syllable menu based on the gender.\n * If the gender is 'none', it only includes a single item prompting the user to select an avatar.\n * Otherwise, it includes multiple items representing the number of syllables, with corresponding click handlers.\n */\n  const itemsSyllable: MenuProps['items'] = gender === 'none' ? [\n    {\n      key: 'SelectAvatar',\n      label: 'Please select avatar',\n    },\n  ] : [\n    {\n      key: `Fixed-${gender}-2`,\n      label: \"2 syllables\",\n      onClick: handleMenuClick,\n    },\n    {\n      key: `Fixed-${gender}-3`,\n      label: \"3 syllables\",\n      onClick: handleMenuClick,\n    },\n    {\n      key: `Fixed-${gender}-4`,\n      label: \"4 syllables\",\n      onClick: handleMenuClick,\n    },\n    {\n      key: `Fixed-${gender}-5`,\n      label: \"5 syllables\",\n      onClick: handleMenuClick,\n    },\n  ];\n\n  const showDrawer = () => {\n    setOpen(true);\n  };\n\n\n  const onChangeStair = (e: RadioChangeEvent) => {\n    setTxtShow(e.target.value);\n    console.log(e);\n  };\n\n\n  const ClearTxt = () => {\n    setFileContent([]);\n    setMaxLyricCount(1);\n  };\n  const onClose = () => {\n    setOpen(false);\n  };\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          // console.log('Volume:', volume, 'Threshold:', 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\n\n\n  useEffect(() => {\n    if (volume > threshold - 100 && enableVol) {\n      setIsPlaying(true);\n    }\n  }, [volume]);\n\n\n  const renderSelectedComponent = (): React.ReactNode => {\n    switch (component) {\n      // case 'Constant':\n      //   return <Constant ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\n      case 'ConstantTxt':\n        return <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      default:\n        return <span>Canvas: Picture</span>;\n    }\n  }\n\n  const renderSelectedComponentLyric = (): React.ReactNode => {\n    switch (component) {\n      case 'ConstantTxt':\n        return (\n          <div className='lyric'>\n\n            <Space size=\"middle\">\n              <Space.Compact>\n\n\n                <Button onClick={ClearTxt} icon={<RedoOutlined />}></Button>\n\n                <Upload maxCount={1} {...props}>\n                  <Button icon={<UploadOutlined />}>Upload Txt File</Button>\n                </Upload>\n              </Space.Compact>\n            </Space>\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            <Radio.Group onChange={onChangeStair} defaultValue=\"off\">\n              <Radio.Button value=\"true\">Show</Radio.Button>\n              <Radio.Button value=\"false\">Hide</Radio.Button>\n            </Radio.Group>\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            <Radio.Group onChange={onChangeStair} defaultValue=\"off\">\n              <Radio.Button value=\"true\">Show</Radio.Button>\n              <Radio.Button value=\"false\">Hide</Radio.Button>\n            </Radio.Group>\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            <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  useEffect(() => {\n\n  }, [playLyricCount]);\n  const onChangeRange = (rangeValue: number[]) => {\n    console.log(rangeValue[1]);\n    setInitialRange([rangeValue[0], rangeValue[1]]);\n\n  }\n\n  const onChangePosition = (positionValue: number) => {\n    setBallPosition(positionValue);\n  }\n\n  const onChangeSpeed = (speedValue: number) => {\n    const mappedValue = Math.round((speedValue * 20) + 4);\n    setDivisor(mappedValue);\n  }\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  const onChangeThreshold = (e: number) => {\n    setThreshold(e);\n  };\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  const formatterSpd = (value: number | undefined) => {\n    if (value === undefined) {\n      return '0';\n    }\n    const mappedValue = (value - 5) * (50 / 15);\n    return `${mappedValue.toFixed(0)}`;\n  };\n\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              <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              <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              <Tooltip title=\"Setting\">\n                <FloatButton style={{\n                  width: 50,\n                  height: 50,\n                  display: 'flex',\n                  alignItems: 'center',\n                  justifyContent: 'center'\n                }} onClick={showDrawer} ref={ref3} icon={<SettingOutlined />} />\n              </Tooltip>\n\n              <Image\n                preview={false}\n                src={divide_1}\n                style={{ width: '100%' }}\n              />\n\n            </Flex>\n            <Drawer title=\"Options\" placement=\"right\" onClose={onClose} open={open} afterOpenChange={handleAfterOpenChange} 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 Sample;\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}