@grafana/ui
Version:
Grafana Components Library
71 lines (63 loc) • 2.13 kB
JavaScript
;
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);
;
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