"use strict"; exports.id = 8914; exports.ids = [8914]; exports.modules = { /***/ 68914: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Markdown: () => (/* binding */ Markdown), /* harmony export */ MarkdownContent: () => (/* binding */ MarkdownContent), /* harmony export */ Mermaid: () => (/* binding */ Mermaid), /* harmony export */ PreCode: () => (/* binding */ PreCode) /* harmony export */ }); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56786); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_markdown__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(85560); /* harmony import */ var katex_dist_katex_min_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14095); /* harmony import */ var katex_dist_katex_min_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(katex_dist_katex_min_css__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var remark_math__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(81645); /* harmony import */ var remark_breaks__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(80415); /* harmony import */ var rehype_katex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(42311); /* harmony import */ var remark_gfm__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(6231); /* harmony import */ var rehype_highlight__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(63247); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18038); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(92842); /* harmony import */ var mermaid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(58810); /* harmony import */ var _icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3076); /* harmony import */ var use_debounce__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(20238); /* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24552); function Mermaid(props) { const ref = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null); const [hasError, setHasError] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false); (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{ if (props.code && ref.current) { mermaid__WEBPACK_IMPORTED_MODULE_6__.L.run({ nodes: [ ref.current ], suppressErrors: true }).catch((e)=>{ setHasError(true); console.error("[Mermaid] ", e.message); }); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [ props.code ]); function viewSvgInNewWindow() { const svg = ref.current?.querySelector("svg"); if (!svg) return; const text = new XMLSerializer().serializeToString(svg); const blob = new Blob([ text ], { type: "image/svg+xml" }); (0,_ui_lib__WEBPACK_IMPORTED_MODULE_5__/* .showImageModal */ .vi)(URL.createObjectURL(blob)); } if (hasError) { return null; } return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", { className: "no-dark mermaid", style: { cursor: "pointer", overflow: "auto" }, ref: ref, onClick: ()=>viewSvgInNewWindow(), children: props.code }); } function PreCode(props) { const ref = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null); const refText = ref.current?.innerText; const [mermaidCode, setMermaidCode] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(""); const renderMermaid = (0,use_debounce__WEBPACK_IMPORTED_MODULE_7__/* .useDebouncedCallback */ .y1)(()=>{ if (!ref.current) return; const mermaidDom = ref.current.querySelector("code.language-mermaid"); if (mermaidDom) { setMermaidCode(mermaidDom.innerText); } }, 600); (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{ setTimeout(renderMermaid, 1); // eslint-disable-next-line react-hooks/exhaustive-deps }, [ refText ]); return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [ mermaidCode.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(Mermaid, { code: mermaidCode }, mermaidCode), /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("pre", { ref: ref, children: [ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", { className: "copy-code-button", onClick: ()=>{ if (ref.current) { const code = ref.current.innerText; (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .copyToClipboard */ .vQ)(code); } } }), props.children ] }) ] }); } function escapeDollarNumber(text) { let escapedText = ""; for(let i = 0; i < text.length; i += 1){ let char = text[i]; const nextChar = text[i + 1] || " "; if (char === "$" && nextChar >= "0" && nextChar <= "9") { char = "\\$"; } escapedText += char; } return escapedText; } function _MarkDownContent(props) { const escapedContent = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>escapeDollarNumber(props.content), [ props.content ]); return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_markdown__WEBPACK_IMPORTED_MODULE_8__/* .ReactMarkdown */ .D, { remarkPlugins: [ remark_math__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, remark_gfm__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, remark_breaks__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z ], rehypePlugins: [ rehype_katex__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, [ rehype_highlight__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, { detect: false, ignoreMissing: true } ] ], components: { pre: PreCode, p: (pProps)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("p", { ...pProps, dir: "auto" }), a: (aProps)=>{ const href = aProps.href || ""; const isInternal = /^\/#/i.test(href); const target = isInternal ? "_self" : aProps.target ?? "_blank"; return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", { ...aProps, target: target }); } }, children: escapedContent }); } const MarkdownContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_2___default().memo(_MarkDownContent); function Markdown(props) { const mdRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null); return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", { className: "markdown-body", style: { fontSize: `${props.fontSize ?? 14}px` }, ref: mdRef, onContextMenu: props.onContextMenu, onDoubleClickCapture: props.onDoubleClickCapture, dir: "auto", children: props.loading ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {}) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(MarkdownContent, { content: props.content }) }); } /***/ }) }; ;