{"ast":null,"code":"var _jsxFileName = \"/var/www/gavt/react-demo/src/Route/Assessment.tsx\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { Button, Statistic, Slider, Typography, Col, Row } from 'antd';\nimport useAudioRecorder from '../function/AudioRecorder';\nimport { getPitch } from '../function/getPitch';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst {\n  Paragraph,\n  Title\n} = Typography;\nconst fontAlign = \"center\";\nconst Assessment = ({\n  isModalOpen,\n  setIsModalOpen,\n  showModal,\n  handleCancel\n}) => {\n  _s();\n  var _ref, _ref2;\n  const [page, setPage] = useState('intro');\n  const [showRecording, setShowRecording] = useState(false);\n  const [isRecording, setIsRecording] = useState(false);\n  const [isStopped, setIsStopped] = useState(true);\n  const [seconds, setSeconds] = useState(3);\n  const [pitch, setPitch] = useState(null);\n  const [ePitch, setEPitch] = useState(null);\n  const [eMeanPitch, setEMeanPitch] = useState(null);\n  const [rainbowPitch, setRainbowPitch] = useState(null);\n  const [rainbowMeanPitch, setRainbowMeanPitch] = useState(null);\n  const {\n    startRecording,\n    stopRecording,\n    recordedAudioURL\n  } = useAudioRecorder();\n  const [displayTimer, setDisplayTimer] = useState(false);\n  const [recordingIndicator, setRecordingIndicator] = useState(false);\n  const marks = {\n    0: 'No Effort',\n    100: 'A Lot of Effort'\n  };\n  const config = {\n    SRATE: 48000,\n    fxmin: 50,\n    fxlow: 50 + 50,\n    fxhigh: 600 - 200,\n    fxmax: 600\n  };\n  const handlePitchDetected = detectedPitch => {\n    setPitch(detectedPitch);\n  };\n  const handlePageChange = newPage => {\n    setSeconds(3); // Reset the timer to 3 seconds\n    setIsRecording(false); // Reset the recording status\n    setPitch(null);\n    setIsStopped(true); // Reset the stopped status\n    setDisplayTimer(false); // Hide the timer once page changes\n    if (newPage === 'recording1' || newPage === 'recording2') {\n      setShowRecording(true);\n    } else {\n      setShowRecording(false);\n    }\n    setPage(newPage);\n  };\n  const startTimer = () => {\n    setSeconds(3); // Reset the timer to 3 seconds\n    setIsRecording(false); // Reset the recording status\n    setPitch(null);\n    setIsStopped(false); // Reset the stopped status\n    setDisplayTimer(true); // Display the timer once start button is pressed\n  };\n  const redoTimer = () => {\n    setIsRecording(false);\n    startTimer();\n    setIsStopped(true);\n    if (page === 'recording1') {\n      setEPitch(null);\n    } else if (page === 'recording2') {\n      setRainbowPitch(null);\n    }\n  };\n  const handleReplay = () => {\n    if (recordedAudioURL) {\n      const audioElement = new Audio(recordedAudioURL);\n      audioElement.play();\n    } else {\n      console.error('No audio to replay');\n    }\n  };\n  const stopTimer = () => {\n    setIsStopped(true); // Set the stopped status to true\n    setPitch(null);\n  };\n  useEffect(() => {\n    // Start the timer interval\n    const interval = setInterval(() => {\n      if (isRecording && !isStopped) {\n        setSeconds(prevSeconds => prevSeconds + 1);\n        getPitch(config, handlePitchDetected);\n      } else {\n        setPitch(null); // Reset the pitch value when not recording\n        setSeconds(prevSeconds => prevSeconds - 1);\n      }\n    }, 1000);\n    if (page === 'recording1' && pitch !== null) {\n      setEPitch(prevEPitch => prevEPitch ? [...prevEPitch, pitch] : [pitch]);\n    } else if (page === 'recording2' && pitch !== null) {\n      setRainbowPitch(prevRainbowPitch => prevRainbowPitch ? [...prevRainbowPitch, pitch] : [pitch]);\n    }\n\n    // Clear the interval and set recording status when timer hits 0\n    if (seconds === 0) {\n      setIsRecording(true);\n      setRecordingIndicator(true);\n      startRecording();\n    }\n    if (isStopped || page === 'recording1' && seconds === 5) {\n      stopRecording();\n      setRecordingIndicator(false);\n      setPitch(null);\n      clearInterval(interval);\n      if (ePitch !== null) {\n        setEMeanPitch(ePitch.reduce((a, b) => a + b, 0) / ePitch.length);\n      }\n      if (rainbowPitch !== null) {\n        setRainbowMeanPitch(rainbowPitch.reduce((a, b) => a + b, 0) / rainbowPitch.length);\n      }\n    }\n    // Cleanup function to clear the interval when the component unmounts\n    return () => clearInterval(interval);\n  }, [seconds, isRecording, isStopped]);\n\n  // Calculate minutes and seconds from total seconds\n  const minutes = Math.floor(seconds / 60);\n  const remainingSeconds = seconds % 60;\n\n  // Format minutes and seconds with leading zeros\n  const formattedMinutes = String(minutes).padStart(2, '0');\n  const formattedSeconds = String(remainingSeconds).padStart(2, '0');\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    style: {\n      width: '100%',\n      height: '5rem',\n      // Fixed height in pixels\n      textAlign: 'center',\n      alignItems: 'center',\n      justifyContent: 'center',\n      marginBottom: '10px' // Ensure no margin at the bottom\n    },\n    children: [page === 'intro' && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        display: 'flex',\n        justifyContent: 'center',\n        alignItems: 'center',\n        height: '100%'\n      },\n      children: /*#__PURE__*/_jsxDEV(Typography, {\n        children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n          style: {\n            textAlign: fontAlign,\n            fontSize: \"35px\",\n            width: '40%',\n            margin: '0 auto',\n            marginBottom: '50px'\n          },\n          children: \"To begin your voice assessment, record your voice reading the transcript prompt\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 159,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            textAlign: 'center'\n          },\n          children: /*#__PURE__*/_jsxDEV(Button, {\n            onClick: () => handlePageChange('recording1'),\n            style: {\n              border: '1.5px solid rgb(41, 41, 130)',\n              borderRadius: '30px',\n              fontSize: '17px',\n              background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n              WebkitBackgroundClip: 'text',\n              backgroundClip: 'text',\n              color: 'transparent',\n              width: '180px',\n              textAlign: 'center',\n              margin: '0 auto',\n              marginTop: '2px',\n              marginBottom: '20px',\n              letterSpacing: '4px',\n              fontWeight: 'bold',\n              paddingTop: \"2px\"\n            },\n            children: \"Begin\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 163,\n            columnNumber: 17\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 162,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 158,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 157,\n      columnNumber: 11\n    }, this), showRecording && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        display: 'flex',\n        justifyContent: 'center',\n        alignItems: 'center',\n        height: '100%'\n      },\n      children: /*#__PURE__*/_jsxDEV(Typography, {\n        children: [page === 'recording1' && /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n            style: {\n              textAlign: fontAlign,\n              fontSize: \"35px\",\n              width: '40%',\n              margin: '0 auto',\n              marginBottom: '50px'\n            },\n            children: \"Hold an ee sound for five seconds. Press Record to begin recording.\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 174,\n            columnNumber: 19\n          }, this), !isRecording ? /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              textAlign: 'center'\n            },\n            children: [/*#__PURE__*/_jsxDEV(Button, {\n              onClick: startTimer,\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '140px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Record\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 179,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: () => handlePageChange('recording2'),\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '140px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Skip\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 180,\n              columnNumber: 23\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 178,\n            columnNumber: 21\n          }, this) : /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              textAlign: 'center'\n            },\n            children: [/*#__PURE__*/_jsxDEV(Button, {\n              onClick: stopTimer,\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '100px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Stop\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 184,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: handleReplay,\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '100px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Replay\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 185,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: () => handlePageChange('recording2'),\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '110px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Continue\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 186,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: redoTimer,\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '100px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Redo\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 187,\n              columnNumber: 23\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 183,\n            columnNumber: 21\n          }, this), displayTimer && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              textAlign: 'center'\n            },\n            children: [!isRecording && /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [\"Starting in... \", formattedMinutes, \":\", formattedSeconds]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 192,\n              columnNumber: 40\n            }, this), isRecording && recordingIndicator && /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [\"Recording... \", formattedMinutes, \":\", formattedSeconds]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 193,\n              columnNumber: 61\n            }, this), isRecording && !recordingIndicator && /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [\"Done... \", formattedMinutes, \":\", formattedSeconds]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 194,\n              columnNumber: 62\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 191,\n            columnNumber: 21\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 173,\n          columnNumber: 17\n        }, this), page === 'recording2' && /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n            style: {\n              textAlign: fontAlign,\n              fontSize: \"25px\",\n              width: '30%',\n              margin: '0 auto',\n              marginBottom: '-20px',\n              marginTop: '0'\n            },\n            children: [\"Read the following text out loud. Press Record to begin recording, and press Stop when you are finished. \", /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 203,\n              columnNumber: 126\n            }, this), /*#__PURE__*/_jsxDEV(\"i\", {\n              children: \"\\\"The rainbow is a division of white light into many beautiful colors. These take the shape of a long round arch, with its path high above, and its two ends apparently beyond the horizon\\\"\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 204,\n              columnNumber: 21\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 202,\n            columnNumber: 19\n          }, this), !isRecording ? /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              textAlign: 'center',\n              marginBottom: '20px'\n            },\n            children: /*#__PURE__*/_jsxDEV(Button, {\n              onClick: startTimer,\n              style: {\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '30px',\n                fontSize: '17px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '180px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginTop: '50px',\n                marginBottom: '20px',\n                letterSpacing: '4px',\n                fontWeight: 'bold',\n                paddingTop: \"2px\"\n              },\n              children: \"Record\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 208,\n              columnNumber: 23\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 207,\n            columnNumber: 21\n          }, this) : /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              textAlign: 'center'\n            },\n            children: [/*#__PURE__*/_jsxDEV(Button, {\n              onClick: stopTimer,\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '90px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Stop\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 212,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: handleReplay,\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '90px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Replay\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 213,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: () => handlePageChange('survey'),\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '100px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Continue\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 214,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: redoTimer,\n              style: {\n                marginTop: '50px',\n                border: '1.5px solid rgb(41, 41, 130)',\n                borderRadius: '20px',\n                fontSize: '14px',\n                background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n                WebkitBackgroundClip: 'text',\n                backgroundClip: 'text',\n                color: 'transparent',\n                width: '90px',\n                textAlign: 'center',\n                margin: '0 auto',\n                marginBottom: '20px',\n                letterSpacing: '2px',\n                fontWeight: 'bold',\n                paddingTop: '2px'\n              },\n              children: \"Redo\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 215,\n              columnNumber: 23\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 211,\n            columnNumber: 21\n          }, this), displayTimer && /*#__PURE__*/_jsxDEV(\"div\", {\n            style: {\n              textAlign: 'center'\n            },\n            children: [!isRecording && /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [\"Starting in... \", formattedMinutes, \":\", formattedSeconds]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 220,\n              columnNumber: 40\n            }, this), isRecording && recordingIndicator && /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [\"Recording... \", formattedMinutes, \":\", formattedSeconds]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 221,\n              columnNumber: 61\n            }, this), isRecording && !recordingIndicator && /*#__PURE__*/_jsxDEV(\"div\", {\n              children: [\"Done... \", formattedMinutes, \":\", formattedSeconds]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 222,\n              columnNumber: 62\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 219,\n            columnNumber: 21\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 201,\n          columnNumber: 17\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 171,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 170,\n      columnNumber: 11\n    }, this), page === 'survey' && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        display: 'flex',\n        justifyContent: 'center',\n        alignItems: 'center',\n        height: '100%'\n      },\n      children: /*#__PURE__*/_jsxDEV(Typography, {\n        children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n          level: 2,\n          style: {\n            textAlign: fontAlign,\n            fontSize: \"30px\",\n            width: '50%',\n            margin: '0 auto',\n            marginBottom: '-40px',\n            marginTop: '40px'\n          },\n          children: \"Survey Section\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 234,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n          style: {\n            textAlign: fontAlign,\n            fontSize: \"20px\",\n            maxWidth: '80%',\n            margin: '0 auto',\n            marginBottom: '30px',\n            marginTop: '70px'\n          },\n          children: \"Rate the physical vocal effort needed to create your target voice:\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 235,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            width: '75%',\n            margin: '0 auto'\n          },\n          children: /*#__PURE__*/_jsxDEV(Slider, {\n            marks: marks,\n            defaultValue: 0,\n            tooltip: {\n              formatter: null\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 239,\n            columnNumber: 17\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 238,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 245,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 246,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n          style: {\n            textAlign: fontAlign,\n            fontSize: \"20px\",\n            maxWidth: '80%',\n            margin: '0 auto',\n            marginBottom: '30px',\n            marginTop: '-20px'\n          },\n          children: \"Rate the cognitive vocal effort needed to create your target voice:\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 247,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            width: '75%',\n            margin: '0 auto'\n          },\n          children: [/*#__PURE__*/_jsxDEV(Slider, {\n            marks: marks,\n            defaultValue: 0,\n            tooltip: {\n              formatter: null\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 251,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 256,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 257,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 250,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            textAlign: 'center'\n          },\n          children: /*#__PURE__*/_jsxDEV(Button, {\n            onClick: () => handlePageChange('results'),\n            style: {\n              marginTop: '10px',\n              border: '1.5px solid rgb(41, 41, 130)',\n              borderRadius: '20px',\n              fontSize: '14px',\n              background: 'linear-gradient(to left, #5A82E1, #2f2a5a)',\n              WebkitBackgroundClip: 'text',\n              backgroundClip: 'text',\n              color: 'transparent',\n              width: '185px',\n              textAlign: 'center',\n              margin: '0 auto',\n              marginBottom: '90px',\n              letterSpacing: '2px',\n              fontWeight: 'bold',\n              paddingTop: '2px'\n            },\n            children: \"Finish Assessment\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 260,\n            columnNumber: 17\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 259,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 233,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 232,\n      columnNumber: 11\n    }, this), page === 'results' && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        display: 'flex',\n        justifyContent: 'center',\n        alignItems: 'center',\n        height: '100%'\n      },\n      children: /*#__PURE__*/_jsxDEV(Typography, {\n        children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n          level: 2,\n          style: {\n            textAlign: fontAlign,\n            fontSize: \"40px\",\n            maxWidth: '80%',\n            margin: '0 auto',\n            marginBottom: '90px',\n            marginTop: '-20px'\n          },\n          children: \"Results Section\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 269,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(Row, {\n          gutter: 16,\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Statistic, {\n              title: \"Mean Pitch eee\",\n              value: (_ref = (eMeanPitch === null || eMeanPitch === void 0 ? void 0 : eMeanPitch.toFixed(1)) + ' Hz') !== null && _ref !== void 0 ? _ref : undefined\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 272,\n              columnNumber: 19\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 271,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 12,\n            children: /*#__PURE__*/_jsxDEV(Statistic, {\n              title: \"Mean Pitch Rainbow Passage\",\n              value: (_ref2 = (rainbowMeanPitch === null || rainbowMeanPitch === void 0 ? void 0 : rainbowMeanPitch.toFixed(1)) + ' Hz') !== null && _ref2 !== void 0 ? _ref2 : undefined,\n              style: {\n                textAlign: fontAlign,\n                fontSize: \"20px\",\n                maxWidth: '80%',\n                margin: '0 auto',\n                marginBottom: '30px',\n                marginTop: '-20px'\n              }\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 275,\n              columnNumber: 19\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 274,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 270,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 268,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 267,\n      columnNumber: 11\n    }, this), page === 'assessment' && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        display: 'flex',\n        justifyContent: 'center',\n        alignItems: 'center',\n        width: '100%',\n        height: '100vh',\n        position: 'relative'\n      },\n      children: /*#__PURE__*/_jsxDEV(\"div\", {\n        style: {\n          width: '100%',\n          height: '100%'\n        },\n        children: /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            textAlign: 'center',\n            marginTop: '100px'\n          },\n          children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n            level: 4,\n            style: {\n              textAlign: fontAlign,\n              color: '#6E5F87'\n            },\n            children: \"ASSESSMENT\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 286,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n            style: {\n              textAlign: fontAlign,\n              fontSize: '18px',\n              maxWidth: '60%',\n              margin: '0 auto'\n            },\n            children: \"Describe point of assessment here and anything else need to include for this page. Lorem ipsomes esos ipsomes esos ipsom eso lorem ipsomes esos placeholder copy goes here ipsomes esos lipsom.\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 287,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(Button, {\n            style: {\n              marginTop: '30px',\n              backgroundColor: '#6660AD',\n              color: 'white',\n              borderRadius: '20px',\n              padding: '10px 20px',\n              fontSize: '16px'\n            },\n            children: \"History\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 290,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 285,\n          columnNumber: 15\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 284,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 283,\n      columnNumber: 11\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        padding: '0px',\n        backgroundColor: 'white',\n        minHeight: '100vh',\n        display: 'flex',\n        flexDirection: 'column'\n      },\n      children: /*#__PURE__*/_jsxDEV(\"div\", {\n        style: {\n          textAlign: 'center',\n          marginBottom: '20px'\n        },\n        children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n          level: 2,\n          style: {\n            textDecoration: 'underline',\n            textDecorationSkipInk: 'auto',\n            textUnderlineOffset: '10px',\n            color: '#8778AA'\n          },\n          children: \"Assessment\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 299,\n          columnNumber: 5\n        }, this), /*#__PURE__*/_jsxDEV(Typography.Paragraph, {\n          style: {\n            fontSize: '20px',\n            maxWidth: '750px',\n            margin: '0 auto',\n            color: '#6E6E73',\n            lineHeight: '40px'\n          },\n          children: \"Using the assessment feature regularly will help you track your progress in achieving your desired voice. This function provides valuable feedback and allows you to adjust your practice as needed. Complete the assessment at your convenience to see how your vocal qualities are improving over time.\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 300,\n          columnNumber: 5\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 298,\n        columnNumber: 3\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 297,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 147,\n    columnNumber: 5\n  }, this);\n};\n_s(Assessment, \"ajbkRiMIow1ZBNgKePbQbAGQ/w8=\", false, function () {\n  return [useAudioRecorder];\n});\n_c = Assessment;\nexport default Assessment;\nvar _c;\n$RefreshReg$(_c, \"Assessment\");","map":{"version":3,"names":["React","useState","useEffect","Button","Statistic","Slider","Typography","Col","Row","useAudioRecorder","getPitch","jsxDEV","_jsxDEV","Paragraph","Title","fontAlign","Assessment","isModalOpen","setIsModalOpen","showModal","handleCancel","_s","_ref","_ref2","page","setPage","showRecording","setShowRecording","isRecording","setIsRecording","isStopped","setIsStopped","seconds","setSeconds","pitch","setPitch","ePitch","setEPitch","eMeanPitch","setEMeanPitch","rainbowPitch","setRainbowPitch","rainbowMeanPitch","setRainbowMeanPitch","startRecording","stopRecording","recordedAudioURL","displayTimer","setDisplayTimer","recordingIndicator","setRecordingIndicator","marks","config","SRATE","fxmin","fxlow","fxhigh","fxmax","handlePitchDetected","detectedPitch","handlePageChange","newPage","startTimer","redoTimer","handleReplay","audioElement","Audio","play","console","error","stopTimer","interval","setInterval","prevSeconds","prevEPitch","prevRainbowPitch","clearInterval","reduce","a","b","length","minutes","Math","floor","remainingSeconds","formattedMinutes","String","padStart","formattedSeconds","style","width","height","textAlign","alignItems","justifyContent","marginBottom","children","display","fontSize","margin","fileName","_jsxFileName","lineNumber","columnNumber","onClick","border","borderRadius","background","WebkitBackgroundClip","backgroundClip","color","marginTop","letterSpacing","fontWeight","paddingTop","level","maxWidth","defaultValue","tooltip","formatter","gutter","span","title","value","toFixed","undefined","position","backgroundColor","padding","minHeight","flexDirection","textDecoration","textDecorationSkipInk","textUnderlineOffset","lineHeight","_c","$RefreshReg$"],"sources":["/var/www/gavt/react-demo/src/Route/Assessment.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\r\nimport { Link } from 'react-router-dom';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button, Statistic, Slider, Typography, Col, Row } from 'antd';\r\nimport useAudioRecorder from '../function/AudioRecorder';\r\nimport { getPitch, IPitchDetectionConfig } from '../function/getPitch';\r\n\r\n\r\ninterface AssessmentProps {\r\n  isModalOpen: boolean;\r\n  setIsModalOpen: React.Dispatch<React.SetStateAction<boolean>>;\r\n  showModal: () => void;\r\n  handleCancel: () => void;\r\n}\r\n\r\nconst { Paragraph, Title } = Typography;\r\nconst fontAlign = \"center\";\r\n\r\nconst Assessment: React.FC<AssessmentProps> = ({ isModalOpen, setIsModalOpen, showModal, handleCancel }) => {\r\n  const [page, setPage] = useState<'intro' | 'recording1' | 'recording2' | 'survey' | 'results' | 'assessment' | 'newPage'>('intro');\r\n  const [showRecording, setShowRecording] = useState(false);\r\n  const [isRecording, setIsRecording] = useState(false);\r\n  const [isStopped, setIsStopped] = useState(true);\r\n  const [seconds, setSeconds] = useState<number>(3);\r\n  const [pitch, setPitch] = useState<number | null>(null);\r\n  const [ePitch, setEPitch] = useState<number[] | null>(null);\r\n  const [eMeanPitch, setEMeanPitch] = useState<number | null>(null);\r\n  const [rainbowPitch, setRainbowPitch] = useState<number[] | null>(null);\r\n  const [rainbowMeanPitch, setRainbowMeanPitch] = useState<number | null>(null);\r\n  const { startRecording, stopRecording, recordedAudioURL } = useAudioRecorder();\r\n  const [displayTimer, setDisplayTimer] = useState(false);\r\n  const [recordingIndicator, setRecordingIndicator] = useState(false);\r\n\r\n  const marks = {\r\n    0: 'No Effort',\r\n    100: 'A Lot of Effort',\r\n  };\r\n\r\n  const config: IPitchDetectionConfig = {\r\n    SRATE: 48000,\r\n    fxmin: 50,\r\n    fxlow: 50 + 50,\r\n    fxhigh: 600 - 200,\r\n    fxmax: 600\r\n  };\r\n\r\n  const handlePitchDetected = (detectedPitch: number | null) => {\r\n    setPitch(detectedPitch);\r\n  };\r\n\r\n  const handlePageChange = (newPage: 'intro' | 'recording1' | 'recording2' | 'survey' | 'results' | 'assessment' | 'newPage') => {\r\n    setSeconds(3); // Reset the timer to 3 seconds\r\n    setIsRecording(false); // Reset the recording status\r\n    setPitch(null);\r\n    setIsStopped(true); // Reset the stopped status\r\n    setDisplayTimer(false); // Hide the timer once page changes\r\n    if (newPage === 'recording1' || newPage === 'recording2') {\r\n      setShowRecording(true);\r\n    } else {\r\n      setShowRecording(false);\r\n    }\r\n    setPage(newPage);\r\n  };\r\n\r\n  const startTimer = () => {\r\n    setSeconds(3); // Reset the timer to 3 seconds\r\n    setIsRecording(false); // Reset the recording status\r\n    setPitch(null);\r\n    setIsStopped(false); // Reset the stopped status\r\n    setDisplayTimer(true); // Display the timer once start button is pressed\r\n  };\r\n\r\n  const redoTimer = () => {\r\n    setIsRecording(false);\r\n    startTimer();\r\n    setIsStopped(true);\r\n    if (page === 'recording1') {\r\n      setEPitch(null);\r\n    } else if (page === 'recording2') {\r\n      setRainbowPitch(null);\r\n    }\r\n  };\r\n\r\n  const handleReplay = () => {\r\n    if (recordedAudioURL) {\r\n      const audioElement = new Audio(recordedAudioURL);\r\n      audioElement.play();\r\n    } else {\r\n      console.error('No audio to replay');\r\n    }\r\n  };\r\n\r\n  const stopTimer = () => {\r\n    setIsStopped(true); // Set the stopped status to true\r\n    setPitch(null);\r\n  };\r\n\r\n  useEffect(() => {\r\n    // Start the timer interval\r\n    const interval = setInterval(() => {\r\n      if (isRecording && !isStopped) {\r\n        setSeconds(prevSeconds => prevSeconds + 1);\r\n        getPitch(config, handlePitchDetected);\r\n      } else {\r\n        setPitch(null); // Reset the pitch value when not recording\r\n        setSeconds(prevSeconds => prevSeconds - 1);\r\n      }\r\n    }, 1000);\r\n\r\n    if (page === 'recording1' && pitch !== null) {\r\n      setEPitch(prevEPitch => (prevEPitch ? [...prevEPitch, pitch] : [pitch]));\r\n    } else if (page === 'recording2' && pitch !== null) {\r\n      setRainbowPitch(prevRainbowPitch => (prevRainbowPitch ? [...prevRainbowPitch, pitch] : [pitch]));\r\n    }\r\n\r\n    // Clear the interval and set recording status when timer hits 0\r\n    if (seconds === 0) {\r\n      setIsRecording(true);\r\n      setRecordingIndicator(true);\r\n      startRecording();\r\n    }\r\n    if (isStopped || (page === 'recording1' && seconds === 5)) {\r\n      stopRecording();\r\n      setRecordingIndicator(false);\r\n      setPitch(null);\r\n      clearInterval(interval);\r\n      if (ePitch !== null) {\r\n        setEMeanPitch(ePitch.reduce((a, b) => a + b, 0) / ePitch.length);\r\n      }\r\n      if (rainbowPitch !== null) {\r\n        setRainbowMeanPitch(rainbowPitch.reduce((a, b) => a + b, 0) / rainbowPitch.length);\r\n      }\r\n    }\r\n    // Cleanup function to clear the interval when the component unmounts\r\n    return () => clearInterval(interval);\r\n  }, [seconds, isRecording, isStopped]);\r\n\r\n  // Calculate minutes and seconds from total seconds\r\n  const minutes = Math.floor(seconds / 60);\r\n  const remainingSeconds = seconds % 60;\r\n\r\n  // Format minutes and seconds with leading zeros\r\n  const formattedMinutes = String(minutes).padStart(2, '0');\r\n  const formattedSeconds = String(remainingSeconds).padStart(2, '0');\r\n\r\n  return (\r\n    <div style={{\r\n      width: '100%',\r\n      height: '5rem', // Fixed height in pixels\r\n      textAlign: 'center',\r\n      alignItems: 'center',\r\n      justifyContent: 'center',\r\n      marginBottom: '10px' // Ensure no margin at the bottom\r\n    }}>\r\n      {/* Introduction Section */}\r\n      {page === 'intro' && (\r\n          <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%'}}>\r\n            <Typography>\r\n              <Paragraph style={{ textAlign: fontAlign, fontSize: \"35px\", width: '40%', margin: '0 auto', marginBottom: '50px' }}>\r\n                To begin your voice assessment, record your voice reading the transcript prompt\r\n              </Paragraph>\r\n              <div style={{ textAlign: 'center' }}>\r\n                <Button onClick={() => handlePageChange('recording1')} style={{ border: '1.5px solid rgb(41, 41, 130)', borderRadius: '30px', fontSize: '17px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '180px', textAlign: 'center', margin: '0 auto', marginTop: '2px', marginBottom: '20px', letterSpacing: '4px', fontWeight: 'bold', paddingTop: \"2px\" }}>Begin</Button>\r\n              </div>\r\n            </Typography>\r\n          </div>\r\n        )}\r\n\r\n        {showRecording && (\r\n          <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}>\r\n            <Typography>\r\n              {page === 'recording1' && (\r\n                <div>\r\n                  <Paragraph style={{ textAlign: fontAlign, fontSize: \"35px\", width: '40%', margin: '0 auto', marginBottom: '50px' }}>\r\n                    Hold an ee sound for five seconds. Press Record to begin recording.\r\n                  </Paragraph>\r\n                  {!isRecording ? (\r\n                    <div style={{ textAlign: 'center' }}>\r\n                      <Button onClick={startTimer} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '140px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Record</Button>\r\n                      <Button onClick={() => handlePageChange('recording2')} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '140px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Skip</Button>\r\n                    </div>\r\n                  ) : (\r\n                    <div style={{ textAlign: 'center' }}>\r\n                      <Button onClick={stopTimer} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '100px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Stop</Button>\r\n                      <Button onClick={handleReplay} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '100px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Replay</Button>\r\n                      <Button onClick={() => handlePageChange('recording2')} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '110px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Continue</Button>\r\n                      <Button onClick={redoTimer} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '100px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Redo</Button>\r\n                    </div>\r\n                  )}\r\n                  {displayTimer && (\r\n                    <div style={{ textAlign: 'center' }}>\r\n                      {!isRecording && <div>Starting in... {formattedMinutes}:{formattedSeconds}</div>}\r\n                      {isRecording && recordingIndicator && <div>Recording... {formattedMinutes}:{formattedSeconds}</div>}\r\n                      {isRecording && !recordingIndicator && <div>Done... {formattedMinutes}:{formattedSeconds}</div>}\r\n                    </div>\r\n                  )}\r\n                </div>\r\n              )}\r\n\r\n              {page === 'recording2' && (\r\n                <div>\r\n                  <Paragraph style={{ textAlign: fontAlign, fontSize: \"25px\", width: '30%', margin: '0 auto', marginBottom: '-20px', marginTop: '0' }}>\r\n                    Read the following text out loud. Press Record to begin recording, and press Stop when you are finished. <br />\r\n                    <i>\"The rainbow is a division of white light into many beautiful colors. These take the shape of a long round arch, with its path high above, and its two ends apparently beyond the horizon\"</i>\r\n                  </Paragraph>\r\n                  {!isRecording ? (\r\n                    <div style={{ textAlign: 'center', marginBottom: '20px' }}>\r\n                      <Button onClick={startTimer} style={{ border: '1.5px solid rgb(41, 41, 130)', borderRadius: '30px', fontSize: '17px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '180px', textAlign: 'center', margin: '0 auto', marginTop: '50px', marginBottom: '20px', letterSpacing: '4px', fontWeight: 'bold', paddingTop: \"2px\" }}>Record</Button>\r\n                    </div>\r\n                  ) : (\r\n                    <div style={{ textAlign: 'center' }}>\r\n                      <Button onClick={stopTimer} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '90px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Stop</Button>\r\n                      <Button onClick={handleReplay} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '90px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Replay</Button>\r\n                      <Button onClick={() => handlePageChange('survey')} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '100px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Continue</Button>\r\n                      <Button onClick={redoTimer} style={{ marginTop: '50px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '90px', textAlign: 'center', margin: '0 auto', marginBottom: '20px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Redo</Button>\r\n                    </div>\r\n                  )}\r\n                  {displayTimer && (\r\n                    <div style={{ textAlign: 'center' }}>\r\n                      {!isRecording && <div>Starting in... {formattedMinutes}:{formattedSeconds}</div>}\r\n                      {isRecording && recordingIndicator && <div>Recording... {formattedMinutes}:{formattedSeconds}</div>}\r\n                      {isRecording && !recordingIndicator && <div>Done... {formattedMinutes}:{formattedSeconds}</div>}\r\n                    </div>\r\n                  )}\r\n                </div>\r\n              )}\r\n            </Typography>\r\n          </div>\r\n        )}\r\n\r\n        {page === 'survey' && (\r\n          <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}>\r\n            <Typography>\r\n              <Typography.Title level={2} style={{ textAlign: fontAlign, fontSize: \"30px\", width: '50%', margin: '0 auto', marginBottom: '-40px', marginTop: '40px' }}>Survey Section</Typography.Title>\r\n              <Paragraph style={{ textAlign: fontAlign, fontSize: \"20px\", maxWidth: '80%', margin: '0 auto', marginBottom: '30px', marginTop: '70px' }}>\r\n                Rate the physical vocal effort needed to create your target voice:\r\n              </Paragraph>\r\n              <div style={{ width: '75%', margin: '0 auto' }}>\r\n                <Slider\r\n                  marks={marks}\r\n                  defaultValue={0}\r\n                  tooltip={{ formatter: null }}\r\n                />\r\n              </div>\r\n              <br />\r\n              <br />\r\n              <Paragraph style={{ textAlign: fontAlign, fontSize: \"20px\", maxWidth: '80%', margin: '0 auto', marginBottom: '30px', marginTop: '-20px' }}>\r\n                Rate the cognitive vocal effort needed to create your target voice:\r\n              </Paragraph>\r\n              <div style={{ width: '75%', margin: '0 auto' }}>\r\n                <Slider\r\n                  marks={marks}\r\n                  defaultValue={0}\r\n                  tooltip={{ formatter: null }}\r\n                />\r\n                <br />\r\n                <br />\r\n              </div>\r\n              <div style={{ textAlign: 'center' }}>\r\n                <Button onClick={() => handlePageChange('results')} style={{ marginTop: '10px', border: '1.5px solid rgb(41, 41, 130)', borderRadius: '20px', fontSize: '14px', background: 'linear-gradient(to left, #5A82E1, #2f2a5a)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', width: '185px', textAlign: 'center', margin: '0 auto', marginBottom: '90px', letterSpacing: '2px', fontWeight: 'bold', paddingTop: '2px' }}>Finish Assessment</Button>\r\n              </div>\r\n            </Typography>\r\n          </div>\r\n        )}\r\n\r\n        {page === 'results' && (\r\n          <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}>\r\n            <Typography>\r\n              <Typography.Title level={2} style={{ textAlign: fontAlign, fontSize: \"40px\", maxWidth: '80%', margin: '0 auto', marginBottom: '90px', marginTop: '-20px' }}>Results Section</Typography.Title>\r\n              <Row gutter={16}>\r\n                <Col span={12}>\r\n                  <Statistic title=\"Mean Pitch eee\" value={eMeanPitch?.toFixed(1) + ' Hz' ?? undefined} />\r\n                </Col>\r\n                <Col span={12}>\r\n                  <Statistic title=\"Mean Pitch Rainbow Passage\" value={rainbowMeanPitch?.toFixed(1) + ' Hz' ?? undefined} style={{ textAlign: fontAlign, fontSize: \"20px\", maxWidth: '80%', margin: '0 auto', marginBottom: '30px', marginTop: '-20px' }} />\r\n                </Col>\r\n              </Row>\r\n            </Typography>\r\n          </div>\r\n        )}\r\n\r\n        {page === 'assessment' && (\r\n          <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', width: '100%', height: '100vh', position: 'relative' }}>\r\n            <div style={{ width: '100%', height: '100%' }}>\r\n              <div style={{ textAlign: 'center', marginTop: '100px' }}>\r\n                <Typography.Title level={4} style={{ textAlign: fontAlign, color: '#6E5F87' }}>ASSESSMENT</Typography.Title>\r\n                <Paragraph style={{ textAlign: fontAlign, fontSize: '18px', maxWidth: '60%', margin: '0 auto' }}>\r\n                  Describe point of assessment here and anything else need to include for this page. Lorem ipsomes esos ipsomes esos ipsom eso lorem ipsomes esos placeholder copy goes here ipsomes esos lipsom.\r\n                </Paragraph>\r\n                <Button style={{ marginTop: '30px', backgroundColor: '#6660AD', color: 'white', borderRadius: '20px', padding: '10px 20px', fontSize: '16px' }}>History</Button>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        )}\r\n\r\n      {/* Bottom Section */}\r\n      <div style={{ padding: '0px', backgroundColor: 'white', minHeight: '100vh', display: 'flex', flexDirection: 'column' }}>\r\n  <div style={{ textAlign: 'center', marginBottom: '20px' }}>\r\n    <Typography.Title level={2} style={{ textDecoration: 'underline', textDecorationSkipInk: 'auto', textUnderlineOffset: '10px', color: '#8778AA' }}>Assessment</Typography.Title>\r\n    <Typography.Paragraph style={{ fontSize: '20px', maxWidth: '750px', margin: '0 auto', color: '#6E6E73', lineHeight: '40px' }}>\r\n    Using the assessment feature regularly will help you track your progress in achieving your desired voice. This function provides valuable feedback and allows you to adjust your practice as needed. Complete the assessment at your convenience to see how your vocal qualities are improving over time.\r\n    </Typography.Paragraph>\r\n  </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n</div>\r\n  );\r\n  };\r\n\r\nexport default Assessment;\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}