UNPKG

react-code-view

Version:
67 lines (66 loc) 3.22 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireDefault(require("react")); var _MarkdownRenderer = _interopRequireDefault(require("./MarkdownRenderer")); var _parseHTML = _interopRequireDefault(require("./utils/parseHTML")); var _Renderer = _interopRequireDefault(require("./Renderer")); var _jsxRuntime = require("react/jsx-runtime"); var _excluded = ["children", "sourceCode", "dependencies", "editor", "theme", "editable", "transformOptions", "copyButtonAs", "copyButtonProps", "renderToolbar", "onChange", "beforeCompile", "afterCompile", "onOpenEditor", "onCloseEditor", "renderExtraFooter"]; var CodeView = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) { var children = props.children, sourceCode = props.sourceCode, dependencies = props.dependencies, _props$editor = props.editor, editor = _props$editor === void 0 ? {} : _props$editor, _props$theme = props.theme, theme = _props$theme === void 0 ? 'light' : _props$theme, editable = props.editable, transformOptions = props.transformOptions, copyButtonAs = props.copyButtonAs, copyButtonProps = props.copyButtonProps, renderToolbar = props.renderToolbar, onChange = props.onChange, beforeCompile = props.beforeCompile, afterCompile = props.afterCompile, onOpenEditor = props.onOpenEditor, onCloseEditor = props.onCloseEditor, renderExtraFooter = props.renderExtraFooter, rest = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded); var sourceStr = children !== null && children !== void 0 && children.__esModule ? children["default"] : sourceCode; var fragments = (0, _parseHTML["default"])(sourceStr); return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", (0, _extends2["default"])({ ref: ref }, rest, { children: fragments === null || fragments === void 0 ? void 0 : fragments.map(function (fragment) { if (fragment.type === 'code') { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Renderer["default"], { code: fragment.content, editable: editable, theme: theme, editor: editor, dependencies: dependencies, transformOptions: transformOptions, renderToolbar: renderToolbar, afterCompile: afterCompile, onChange: onChange, onOpenEditor: onOpenEditor, onCloseEditor: onCloseEditor, beforeCompile: beforeCompile, renderExtraFooter: renderExtraFooter, copyButtonProps: copyButtonProps, copyButtonAs: copyButtonAs }, fragment.key); } else if (fragment.type === 'html') { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MarkdownRenderer["default"], { copyButtonProps: copyButtonProps, children: fragment.content }, fragment.key); } }) })); }); var _default = exports["default"] = CodeView;