UNPKG

@grafana/ui

Version:
71 lines (63 loc) 2.13 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var jsxRuntime = require('react/jsx-runtime'); var Editor = require('@monaco-editor/react'); var monaco = require('monaco-editor'); var React = require('react'); var ThemeContext = require('../../themes/ThemeContext.cjs'); var theme = require('./theme.cjs'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } function _interopNamespaceCompat(e) { if (e && typeof e === 'object' && 'default' in e) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } var Editor__default = /*#__PURE__*/_interopDefaultCompat(Editor); var monaco__namespace = /*#__PURE__*/_interopNamespaceCompat(monaco); "use strict"; Editor.loader.config({ monaco: monaco__namespace }); const ReactMonacoEditor = (props) => { const { beforeMount, onMount, options, ...restProps } = props; const theme$1 = ThemeContext.useTheme2(); const onMonacoBeforeMount = React.useCallback( (monaco2) => { beforeMount == null ? void 0 : beforeMount(monaco2); }, [beforeMount] ); React.useEffect(() => { theme(monaco__namespace, theme$1); }, [theme$1]); return /* @__PURE__ */ jsxRuntime.jsx( Editor__default.default, { ...restProps, options: { ...options, fontFamily: theme$1.typography.code.fontFamily }, theme: theme$1.isDark ? "grafana-dark" : "grafana-light", beforeMount: onMonacoBeforeMount, onMount: (editor, monaco2) => { document.fonts.ready.then(() => { monaco2.editor.remeasureFonts(); }); onMount == null ? void 0 : onMount(editor, monaco2); } } ); }; exports.ReactMonacoEditor = ReactMonacoEditor; //# sourceMappingURL=ReactMonacoEditor.cjs.map