{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\gavt\\\\Wave\\\\Wave.jsx\",\n  _s = $RefreshSig$();\nimport { useState, useEffect } from \"react\";\nimport waveDrawLoop from './lib/waveDrawLoop.js';\nimport WaveCanvas from './WaveCanvas.jsx';\nimport './Wave.css';\nimport { Slider, Button, Col, Row, message } from \"antd\";\nimport 'antd/dist/reset.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst Wave = ({\n  frequency,\n  officialFrequency,\n  setCustomFrequency\n}) => {\n  _s();\n  const [waveIsPaused, setWaveIsPaused] = useState(false);\n  const [pos, setPos] = useState(frequency || 1500);\n  const [messageApi, contextHolder] = message.useMessage();\n  useEffect(() => {\n    if (frequency) {\n      setPos(frequency);\n    }\n  }, [frequency]);\n  const handlePauseWave = e => setWaveIsPaused(!waveIsPaused);\n  const handleResetToOfficialTarget = () => {\n    setPos(officialFrequency || 1500);\n  };\n  const handleJumpToCustomTarget = () => {\n    if (frequency !== officialFrequency) {\n      setPos(frequency);\n    }\n  };\n  const handleSetCurrentAsTarget = () => {\n    setCustomFrequency(pos);\n    success(pos);\n  };\n  const handleOnChangeSlider = value => {\n    setPos(value);\n  };\n  const success = pos => {\n    messageApi.open({\n      type: 'success',\n      content: 'Successfully set the target frequency to ' + pos + ' Hz.'\n    });\n  };\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [contextHolder, /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        alignItems: 'center'\n      },\n      children: [/*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        onClick: handlePauseWave,\n        children: waveIsPaused ? \"Play\" : \"Pause\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 55,\n        columnNumber: 21\n      }, this), frequency !== officialFrequency && /*#__PURE__*/_jsxDEV(Button, {\n        onClick: handleResetToOfficialTarget,\n        children: \"Jump to Official Target\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 63,\n        columnNumber: 25\n      }, this), /*#__PURE__*/_jsxDEV(Button, {\n        onClick: handleJumpToCustomTarget,\n        children: \"Jump to Customized Target\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 70,\n        columnNumber: 21\n      }, this), /*#__PURE__*/_jsxDEV(Button, {\n        onClick: handleSetCurrentAsTarget,\n        children: \"Set Curret Value as Target\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 76,\n        columnNumber: 21\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 54,\n      columnNumber: 17\n    }, this), /*#__PURE__*/_jsxDEV(Row, {\n      children: /*#__PURE__*/_jsxDEV(Col, {\n        span: 24,\n        children: /*#__PURE__*/_jsxDEV(\"span\", {\n          className: \"label\",\n          children: [\"Frequency Value at Current Position: \", pos]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 84,\n          columnNumber: 21\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 83,\n        columnNumber: 17\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 82,\n      columnNumber: 13\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"wlMainParent\",\n      children: /*#__PURE__*/_jsxDEV(Row, {\n        children: /*#__PURE__*/_jsxDEV(Col, {\n          span: 24,\n          children: /*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"canvasandslider\",\n            children: [/*#__PURE__*/_jsxDEV(WaveCanvas, {\n              className: \"waveCanvas\",\n              draw: waveDrawLoop,\n              isPaused: waveIsPaused\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 91,\n              columnNumber: 29\n            }, this), /*#__PURE__*/_jsxDEV(Slider, {\n              className: \"custom-slider\",\n              min: 0,\n              max: 4096,\n              value: pos,\n              onChange: handleOnChangeSlider,\n              defaultValue: 1500,\n              style: {\n                margin: 0\n              },\n              tooltip: {\n                open: false\n              }\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 96,\n              columnNumber: 29\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 90,\n            columnNumber: 25\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 89,\n          columnNumber: 21\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 88,\n        columnNumber: 17\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 87,\n      columnNumber: 13\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 52,\n    columnNumber: 9\n  }, this);\n};\n_s(Wave, \"KYd5ZF30+r6zoWsxKCz7Gn44e/I=\", false, function () {\n  return [message.useMessage];\n});\n_c = Wave;\nexport default Wave;\nvar _c;\n$RefreshReg$(_c, \"Wave\");","map":{"version":3,"names":["useState","useEffect","waveDrawLoop","WaveCanvas","Slider","Button","Col","Row","message","jsxDEV","_jsxDEV","Wave","frequency","officialFrequency","setCustomFrequency","_s","waveIsPaused","setWaveIsPaused","pos","setPos","messageApi","contextHolder","useMessage","handlePauseWave","e","handleResetToOfficialTarget","handleJumpToCustomTarget","handleSetCurrentAsTarget","success","handleOnChangeSlider","value","open","type","content","children","style","alignItems","onClick","fileName","_jsxFileName","lineNumber","columnNumber","span","className","draw","isPaused","min","max","onChange","defaultValue","margin","tooltip","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/gavt/Wave/Wave.jsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\r\n\r\nimport waveDrawLoop from './lib/waveDrawLoop.js';\r\nimport WaveCanvas from './WaveCanvas.jsx';\r\nimport './Wave.css';\r\n\r\nimport { Slider, Button, Col, Row, message } from \"antd\";\r\nimport 'antd/dist/reset.css'; \r\n\r\nconst Wave = ({ frequency, officialFrequency, setCustomFrequency }) => {\r\n\r\n    const [waveIsPaused, setWaveIsPaused] = useState(false);\r\n    const [pos, setPos] = useState(frequency || 1500);\r\n\r\n    const [messageApi, contextHolder] = message.useMessage();\r\n\r\n    useEffect(() => {\r\n        if (frequency) {\r\n            setPos(frequency);\r\n        }\r\n    }, [frequency]);\r\n\r\n    const handlePauseWave = (e) => setWaveIsPaused(!waveIsPaused)\r\n\r\n    const handleResetToOfficialTarget = () => {\r\n        setPos(officialFrequency || 1500);\r\n    };\r\n\r\n    const handleJumpToCustomTarget = () => {\r\n        if (frequency !== officialFrequency) {\r\n            setPos(frequency); \r\n        }\r\n    };\r\n\r\n    const handleSetCurrentAsTarget = () => {\r\n        setCustomFrequency(pos);\r\n        success(pos);\r\n      };\r\n    \r\n    const handleOnChangeSlider = (value) => {\r\n        setPos(value)\r\n    };\r\n\r\n    const success = (pos) => {\r\n        messageApi.open({\r\n          type: 'success',\r\n          content: 'Successfully set the target frequency to ' + pos + ' Hz.',\r\n        });\r\n    };\r\n\r\n    return (\r\n        <div>\r\n            {contextHolder}\r\n                <div style={{alignItems: 'center'}}>\r\n                    <Button\r\n                        type=\"primary\"\r\n                        onClick={ handlePauseWave }\r\n                    >\r\n                        {(waveIsPaused) ? \"Play\" : \"Pause\"}\r\n                    </Button>\r\n\r\n                    {frequency !== officialFrequency && (\r\n                        <Button \r\n                            onClick={handleResetToOfficialTarget}\r\n                        >\r\n                            Jump to Official Target\r\n                        </Button>\r\n                    )}\r\n\r\n                    <Button \r\n                        onClick={ handleJumpToCustomTarget }\r\n                    >\r\n                        Jump to Customized Target \r\n                    </Button>\r\n\r\n                    <Button \r\n                        onClick={ handleSetCurrentAsTarget }\r\n                    >\r\n                        Set Curret Value as Target\r\n                    </Button>\r\n                </div>\r\n            <Row>\r\n                <Col span={24}>\r\n                    <span className=\"label\">Frequency Value at Current Position: {pos}</span>\r\n                </Col>\r\n            </Row>\r\n            <div  className=\"wlMainParent\">\r\n                <Row>\r\n                    <Col span={24}>\r\n                        <div className=\"canvasandslider\">\r\n                            <WaveCanvas\r\n                                className=\"waveCanvas\"\r\n                                draw={waveDrawLoop}\r\n                                isPaused={waveIsPaused}\r\n                            />\r\n                            <Slider\r\n                                className=\"custom-slider\"\r\n                                min={0}\r\n                                max={4096}\r\n                                value={pos}\r\n                                onChange={handleOnChangeSlider}\r\n                                defaultValue={1500}\r\n                                style={{ margin: 0}}\r\n                                tooltip={{open: false}}\r\n                            />\r\n                        </div>\r\n                    </Col>\r\n                </Row>\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default Wave;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}