@kwiz/fluentui
Version:
KWIZ common controls for FluentUI
32 lines • 1.78 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { isNotEmptyArray, isNullOrUndefined, isString } from "@kwiz/common";
import { Editor, loader } from '@monaco-editor/react';
/** it is recommended to lazy load this control into its own chunk */
export function CodeEditor(props) {
if (!isNullOrUndefined(props.loaderOptions)) //load from our build do not load from cdn
loader.config(isString(props.loaderOptions)
? {
paths: {
vs: props.loaderOptions //'https://apps.kwizcom.com/libs/monaco-editor/4.7.0/min/vs',
},
}
: {
monaco: props.loaderOptions
});
return _jsxs(_Fragment, { children: [_jsx("style", { children: `.force-ltr{direction:ltr;}` }), _jsx(Editor, { className: "force-ltr", defaultLanguage: props.defaultLanguage, options: {
minimap: { enabled: false },
lineNumbers: props.hideLineNumbers ? "off" : undefined
}, value: props.value, beforeMount: monaco => {
// extra libraries
if (props.extraLibs)
Object.keys(props.extraLibs).forEach(key => monaco.languages.typescript.javascriptDefaults.addExtraLib(props.extraLibs[key], key));
if (isNotEmptyArray(props.jsonSchemaValidations))
monaco.languages.json.jsonDefaults.setDiagnosticsOptions({
validate: true,
schemas: props.jsonSchemaValidations
});
}, onChange: (value, ev) => {
props.onChange(value);
} })] });
}
//# sourceMappingURL=editor.js.map