@coveord/plasma-mantine 47.4.0 → 47.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +9 -9
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js +50 -12
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/code-editor/__mocks__/monaco-editor.js +24 -0
- package/dist/cjs/components/code-editor/__mocks__/monaco-editor.js.map +1 -0
- package/dist/cjs/components/collection/Collection.js +6 -7
- package/dist/cjs/components/collection/Collection.js.map +1 -1
- package/dist/cjs/components/modal-wizard/index.js.map +1 -1
- package/dist/cjs/index.js +0 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/definitions/components/code-editor/CodeEditor.d.ts +7 -0
- package/dist/definitions/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/definitions/components/code-editor/__mocks__/monaco-editor.d.ts +8 -0
- package/dist/definitions/components/code-editor/__mocks__/monaco-editor.d.ts.map +1 -0
- package/dist/definitions/components/collection/Collection.d.ts +1 -0
- package/dist/definitions/components/collection/Collection.d.ts.map +1 -1
- package/dist/definitions/components/modal-wizard/index.d.ts +1 -0
- package/dist/definitions/components/modal-wizard/index.d.ts.map +1 -1
- package/dist/definitions/index.d.ts +1 -1
- package/dist/definitions/index.d.ts.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.js +49 -13
- package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/esm/components/code-editor/__mocks__/monaco-editor.js +14 -0
- package/dist/esm/components/code-editor/__mocks__/monaco-editor.js.map +1 -0
- package/dist/esm/components/collection/Collection.js +6 -7
- package/dist/esm/components/collection/Collection.js.map +1 -1
- package/dist/esm/components/modal-wizard/index.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/jest.config.js +0 -1
- package/package.json +3 -2
- package/src/components/code-editor/CodeEditor.tsx +32 -5
- package/src/components/code-editor/__mocks__/monaco-editor.ts +9 -0
- package/src/components/code-editor/__tests__/CodeEditor.spec.tsx +24 -5
- package/src/components/collection/Collection.tsx +5 -4
- package/src/components/collection/__tests__/Collection.spec.tsx +10 -6
- package/src/components/modal-wizard/index.ts +1 -0
- package/src/index.ts +1 -1
- package/tsconfig.json +6 -3
|
@@ -20,11 +20,8 @@ var _plasmaReactIcons = require("@coveord/plasma-react-icons");
|
|
|
20
20
|
var _core = require("@mantine/core");
|
|
21
21
|
var _hooks = require("@mantine/hooks");
|
|
22
22
|
var _react = /*#__PURE__*/ _interopRequireWildcard(require("@monaco-editor/react"));
|
|
23
|
-
var
|
|
23
|
+
var _react1 = require("react");
|
|
24
24
|
var _hooks1 = require("../../hooks");
|
|
25
|
-
_react.loader.config({
|
|
26
|
-
monaco: _monacoEditor
|
|
27
|
-
});
|
|
28
25
|
var useStyles = (0, _core.createStyles)(function(theme) {
|
|
29
26
|
return {
|
|
30
27
|
root: {},
|
|
@@ -38,11 +35,12 @@ var useStyles = (0, _core.createStyles)(function(theme) {
|
|
|
38
35
|
});
|
|
39
36
|
var defaultProps = {
|
|
40
37
|
language: "plaintext",
|
|
38
|
+
monacoLoader: "local",
|
|
41
39
|
defaultValue: "",
|
|
42
40
|
minHeight: 300
|
|
43
41
|
};
|
|
44
42
|
var CodeEditor = function(props) {
|
|
45
|
-
var _ref = (0, _core.useComponentDefaultProps)("CodeEditor", defaultProps, props), language = _ref.language, defaultValue = _ref.defaultValue, onChange = _ref.onChange, onFocus = _ref.onFocus, value = _ref.value, label = _ref.label, required = _ref.required, labelProps = _ref.labelProps, error = _ref.error, errorProps = _ref.errorProps, description = _ref.description, descriptionProps = _ref.descriptionProps, minHeight = _ref.minHeight, maxHeight = _ref.maxHeight, disabled = _ref.disabled, others = _objectWithoutProperties(_ref, [
|
|
43
|
+
var _ref = (0, _core.useComponentDefaultProps)("CodeEditor", defaultProps, props), language = _ref.language, defaultValue = _ref.defaultValue, onChange = _ref.onChange, onFocus = _ref.onFocus, value = _ref.value, label = _ref.label, required = _ref.required, labelProps = _ref.labelProps, error = _ref.error, errorProps = _ref.errorProps, description = _ref.description, descriptionProps = _ref.descriptionProps, minHeight = _ref.minHeight, maxHeight = _ref.maxHeight, disabled = _ref.disabled, monacoLoader = _ref.monacoLoader, others = _objectWithoutProperties(_ref, [
|
|
46
44
|
"language",
|
|
47
45
|
"defaultValue",
|
|
48
46
|
"onChange",
|
|
@@ -57,16 +55,53 @@ var CodeEditor = function(props) {
|
|
|
57
55
|
"descriptionProps",
|
|
58
56
|
"minHeight",
|
|
59
57
|
"maxHeight",
|
|
60
|
-
"disabled"
|
|
58
|
+
"disabled",
|
|
59
|
+
"monacoLoader"
|
|
61
60
|
]);
|
|
62
|
-
var ref =
|
|
63
|
-
var ref1 =
|
|
61
|
+
var ref = _slicedToArray((0, _react1.useState)(false), 2), loaded = ref[0], setLoaded = ref[1];
|
|
62
|
+
var ref1 = useStyles(), classes = ref1.classes, theme = ref1.theme;
|
|
63
|
+
var ref2 = _slicedToArray((0, _hooks.useUncontrolled)({
|
|
64
64
|
value: value,
|
|
65
65
|
defaultValue: defaultValue,
|
|
66
66
|
onChange: onChange,
|
|
67
67
|
finalValue: ""
|
|
68
|
-
}), 2), _value =
|
|
69
|
-
var
|
|
68
|
+
}), 2), _value = ref2[0], handleChange = ref2[1];
|
|
69
|
+
var ref3 = _slicedToArray((0, _hooks1.useParentHeight)(), 2), parentHeight = ref3[0], ref4 = ref3[1];
|
|
70
|
+
var loadLocalMonaco = function() {
|
|
71
|
+
var _ref = _asyncToGenerator(function() {
|
|
72
|
+
var monaco;
|
|
73
|
+
return _tsGenerator(this, function(_state) {
|
|
74
|
+
switch(_state.label){
|
|
75
|
+
case 0:
|
|
76
|
+
return [
|
|
77
|
+
4,
|
|
78
|
+
Promise.resolve().then(function() {
|
|
79
|
+
return /*#__PURE__*/ _interopRequireWildcard(require("monaco-editor"));
|
|
80
|
+
})
|
|
81
|
+
];
|
|
82
|
+
case 1:
|
|
83
|
+
monaco = _state.sent();
|
|
84
|
+
_react.loader.config({
|
|
85
|
+
monaco: monaco
|
|
86
|
+
});
|
|
87
|
+
setLoaded(true);
|
|
88
|
+
return [
|
|
89
|
+
2
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
return function loadLocalMonaco() {
|
|
95
|
+
return _ref.apply(this, arguments);
|
|
96
|
+
};
|
|
97
|
+
}();
|
|
98
|
+
(0, _react1.useEffect)(function() {
|
|
99
|
+
if (monacoLoader === "local") {
|
|
100
|
+
loadLocalMonaco();
|
|
101
|
+
} else {
|
|
102
|
+
setLoaded(true);
|
|
103
|
+
}
|
|
104
|
+
}, []);
|
|
70
105
|
var _label = label ? /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Input.Label, _objectSpreadProps(_objectSpread({
|
|
71
106
|
required: required
|
|
72
107
|
}, labelProps), {
|
|
@@ -112,7 +147,7 @@ var CodeEditor = function(props) {
|
|
|
112
147
|
}
|
|
113
148
|
})
|
|
114
149
|
});
|
|
115
|
-
var _editor = /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Box, {
|
|
150
|
+
var _editor = loaded ? /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Box, {
|
|
116
151
|
p: "md",
|
|
117
152
|
pl: "xs",
|
|
118
153
|
className: classes.editor,
|
|
@@ -153,6 +188,9 @@ var CodeEditor = function(props) {
|
|
|
153
188
|
}));
|
|
154
189
|
}
|
|
155
190
|
})
|
|
191
|
+
}) : /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Center, {
|
|
192
|
+
className: classes.editor,
|
|
193
|
+
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Loader, {})
|
|
156
194
|
});
|
|
157
195
|
return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_core.Stack, _objectSpreadProps(_objectSpread({
|
|
158
196
|
justify: "flex-start",
|
|
@@ -162,7 +200,7 @@ var CodeEditor = function(props) {
|
|
|
162
200
|
height: Math.max(parentHeight, minHeight),
|
|
163
201
|
maxHeight: maxHeight
|
|
164
202
|
},
|
|
165
|
-
ref:
|
|
203
|
+
ref: ref4
|
|
166
204
|
}, others), {
|
|
167
205
|
children: [
|
|
168
206
|
_header,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {CheckSize16Px, CopySize16Px} from '@coveord/plasma-react-icons';\nimport {\n ActionIcon,\n Box,\n CopyButton,\n createStyles,\n DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n Selectors,\n Stack,\n Tooltip,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {loader} from '@monaco-editor/react';\nimport * as monaco from 'monaco-editor';\nimport {FunctionComponent} from 'react';\n\nimport {useParentHeight} from '../../hooks';\n\nloader.config({monaco});\n\nconst useStyles = createStyles((theme) => ({\n root: {},\n editor: {\n border: `1px solid ${theme.colors.gray[2]}`,\n borderRadius: theme.defaultRadius,\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n height: '100%',\n },\n}));\n\ninterface CodeEditorProps\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python';\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n ...others\n } = useComponentDefaultProps('CodeEditor', defaultProps, props);\n const {classes, theme} = useStyles();\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description mt=\"xs\" {...descriptionProps}>\n {description}\n </Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : null;\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _copyButton = (\n <Group position=\"right\">\n <CopyButton value={_value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? 'Copied' : 'Copy'} withArrow position=\"right\">\n <ActionIcon color={copied ? 'lime' : 'gray'} onClick={copy}>\n {copied ? <CheckSize16Px height={16} /> : <CopySize16Px height={16} />}\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n </Group>\n );\n\n const _editor = (\n <Box p=\"md\" pl=\"xs\" className={classes.editor}>\n <Editor\n defaultLanguage={language}\n theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n wrappingStrategy: 'advanced',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: theme.fontSizes.xs,\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor) => {\n editor.onDidFocusEditorText(onFocus);\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n className={classes.root}\n spacing={0}\n sx={{height: Math.max(parentHeight, minHeight), maxHeight}}\n ref={ref}\n {...others}\n >\n {_header}\n {_copyButton}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["CodeEditor","loader","config","monaco","useStyles","createStyles","theme","root","editor","border","colors","gray","borderRadius","defaultRadius","backgroundColor","colorScheme","white","black","height","defaultProps","language","defaultValue","minHeight","props","useComponentDefaultProps","onChange","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","classes","useUncontrolled","finalValue","_value","handleChange","useParentHeight","parentHeight","ref","_label","Input","Label","_description","Description","mt","_error","Error","_header","Box","_copyButton","Group","position","CopyButton","timeout","copied","copy","Tooltip","withArrow","ActionIcon","color","onClick","CheckSize16Px","CopySize16Px","_editor","p","pl","className","Editor","defaultLanguage","options","minimap","enabled","wordWrap","wrappingStrategy","scrollBeyondLastLine","formatOnPaste","fontSize","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","Stack","justify","spacing","sx","Math","max"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {CheckSize16Px, CopySize16Px} from '@coveord/plasma-react-icons';\nimport {\n ActionIcon,\n Box,\n Center,\n CopyButton,\n createStyles,\n DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n Loader,\n Selectors,\n Stack,\n Tooltip,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {loader} from '@monaco-editor/react';\nimport {FunctionComponent, useEffect, useState} from 'react';\n\nimport {useParentHeight} from '../../hooks';\n\nconst useStyles = createStyles((theme) => ({\n root: {},\n editor: {\n border: `1px solid ${theme.colors.gray[2]}`,\n borderRadius: theme.defaultRadius,\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n height: '100%',\n },\n}));\n\ninterface CodeEditorProps\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python';\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n /**\n * Defines how the monaco editor files will be loaded.\n * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).\n *\n * @default 'local'\n */\n monacoLoader?: 'cdn' | 'local';\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n monacoLoader: 'local',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n monacoLoader,\n ...others\n } = useComponentDefaultProps('CodeEditor', defaultProps, props);\n const [loaded, setLoaded] = useState(false);\n const {classes, theme} = useStyles();\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n\n const loadLocalMonaco = async () => {\n const monaco = await import('monaco-editor');\n loader.config({monaco});\n setLoaded(true);\n };\n\n useEffect(() => {\n if (monacoLoader === 'local') {\n loadLocalMonaco();\n } else {\n setLoaded(true);\n }\n }, []);\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description mt=\"xs\" {...descriptionProps}>\n {description}\n </Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : null;\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _copyButton = (\n <Group position=\"right\">\n <CopyButton value={_value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? 'Copied' : 'Copy'} withArrow position=\"right\">\n <ActionIcon color={copied ? 'lime' : 'gray'} onClick={copy}>\n {copied ? <CheckSize16Px height={16} /> : <CopySize16Px height={16} />}\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n </Group>\n );\n\n const _editor = loaded ? (\n <Box p=\"md\" pl=\"xs\" className={classes.editor}>\n <Editor\n defaultLanguage={language}\n theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n wrappingStrategy: 'advanced',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: theme.fontSizes.xs,\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor) => {\n editor.onDidFocusEditorText(onFocus);\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n ) : (\n <Center className={classes.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n className={classes.root}\n spacing={0}\n sx={{height: Math.max(parentHeight, minHeight), maxHeight}}\n ref={ref}\n {...others}\n >\n {_header}\n {_copyButton}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["CodeEditor","useStyles","createStyles","theme","root","editor","border","colors","gray","borderRadius","defaultRadius","backgroundColor","colorScheme","white","black","height","defaultProps","language","monacoLoader","defaultValue","minHeight","props","useComponentDefaultProps","onChange","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","useState","loaded","setLoaded","classes","useUncontrolled","finalValue","_value","handleChange","useParentHeight","parentHeight","ref","loadLocalMonaco","monaco","loader","config","useEffect","_label","Input","Label","_description","Description","mt","_error","Error","_header","Box","_copyButton","Group","position","CopyButton","timeout","copied","copy","Tooltip","withArrow","ActionIcon","color","onClick","CheckSize16Px","CopySize16Px","_editor","p","pl","className","Editor","defaultLanguage","options","minimap","enabled","wordWrap","wrappingStrategy","scrollBeyondLastLine","formatOnPaste","fontSize","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","Center","Loader","Stack","justify","spacing","sx","Math","max"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "monaco", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return monaco;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var editor = {
|
|
12
|
+
create: function() {
|
|
13
|
+
return {
|
|
14
|
+
dispose: function() {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
var monaco = {
|
|
21
|
+
editor: editor
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=monaco-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/code-editor/__mocks__/monaco-editor.ts"],"sourcesContent":["const editor = {\n create: () => ({\n dispose: (): void => null,\n }),\n};\n\nexport const monaco = {\n editor,\n};\n"],"names":["monaco","editor","create","dispose"],"mappings":"AAAA;;;;+BAMaA,QAAM;;;eAANA,MAAM;;;AANnB,IAAMC,MAAM,GAAG;IACXC,MAAM,EAAE;eAAO;YACXC,OAAO,EAAE;uBAAY,IAAI;aAAA;SAC5B;KAAC;CACL,AAAC;AAEK,IAAMH,MAAM,GAAG;IAClBC,MAAM,EAANA,MAAM;CACT,AAAC"}
|
|
@@ -30,12 +30,11 @@ var defaultProps = {
|
|
|
30
30
|
required: false
|
|
31
31
|
};
|
|
32
32
|
var Collection = function(props) {
|
|
33
|
-
var _ref = (0, _core.useComponentDefaultProps)("Collection", defaultProps, props), value = _ref.value, defaultValue = _ref.defaultValue, onChange = _ref.onChange,
|
|
33
|
+
var _ref = (0, _core.useComponentDefaultProps)("Collection", defaultProps, props), value = _ref.value, defaultValue = _ref.defaultValue, onChange = _ref.onChange, disabled = _ref.disabled, draggable = _ref.draggable, children = _ref.children, spacing = _ref.spacing, required = _ref.required, newItem = _ref.newItem, addLabel = _ref.addLabel, addDisabledTooltip = _ref.addDisabledTooltip, allowAdd = _ref.allowAdd, // Style props
|
|
34
34
|
classNames = _ref.classNames, className = _ref.className, styles = _ref.styles, unstyled = _ref.unstyled, others = _objectWithoutProperties(_ref, [
|
|
35
35
|
"value",
|
|
36
36
|
"defaultValue",
|
|
37
37
|
"onChange",
|
|
38
|
-
"onFocus",
|
|
39
38
|
"disabled",
|
|
40
39
|
"draggable",
|
|
41
40
|
"children",
|
|
@@ -44,6 +43,7 @@ var Collection = function(props) {
|
|
|
44
43
|
"newItem",
|
|
45
44
|
"addLabel",
|
|
46
45
|
"addDisabledTooltip",
|
|
46
|
+
"allowAdd",
|
|
47
47
|
"classNames",
|
|
48
48
|
"className",
|
|
49
49
|
"styles",
|
|
@@ -75,13 +75,12 @@ var Collection = function(props) {
|
|
|
75
75
|
children: children(item, index)
|
|
76
76
|
}, index);
|
|
77
77
|
});
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
});
|
|
78
|
+
var ref3;
|
|
79
|
+
var addAllowed = (ref3 = allowAdd === null || allowAdd === void 0 ? void 0 : allowAdd(values)) !== null && ref3 !== void 0 ? ref3 : true;
|
|
81
80
|
var _addButton = disabled ? null : /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Group, {
|
|
82
81
|
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Tooltip, {
|
|
83
82
|
label: addDisabledTooltip,
|
|
84
|
-
disabled:
|
|
83
|
+
disabled: addAllowed,
|
|
85
84
|
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Box, {
|
|
86
85
|
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_core.Button, {
|
|
87
86
|
variant: "subtle",
|
|
@@ -91,7 +90,7 @@ var Collection = function(props) {
|
|
|
91
90
|
onClick: function() {
|
|
92
91
|
return append(newItem);
|
|
93
92
|
},
|
|
94
|
-
disabled:
|
|
93
|
+
disabled: !addAllowed,
|
|
95
94
|
children: addLabel
|
|
96
95
|
})
|
|
97
96
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/collection/Collection.tsx"],"sourcesContent":["import {AddSize16Px} from '@coveord/plasma-react-icons';\nimport {\n Box,\n Button,\n DefaultProps,\n Group,\n MantineNumberSize,\n Selectors,\n Stack,\n Tooltip,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useId} from '@mantine/hooks';\nimport {ReactNode} from 'react';\nimport {DragDropContext, Droppable} from 'react-beautiful-dnd';\n\nimport {useControlledList} from '../../hooks';\nimport {CollectionItem} from './CollectionItem';\nimport useStyles from './Colllection.styles';\n\ninterface CollectionProps<T> extends DefaultProps<Selectors<typeof useStyles>> {\n newItem: T;\n children: (item: T, index: number) => ReactNode;\n defaultValue?: T[];\n value?: T[];\n onFocus?: () => void;\n onChange?: (value: T[]) => void;\n draggable?: boolean;\n disabled?: boolean;\n addLabel?: string;\n addDisabledTooltip?: string;\n spacing?: MantineNumberSize;\n required?: boolean;\n}\n\nconst defaultProps: Partial<CollectionProps<unknown>> = {\n draggable: false,\n addLabel: 'Add item',\n addDisabledTooltip: 'There is already an empty item',\n disabled: false,\n spacing: 'xs',\n required: false,\n};\n\nexport const Collection = <T,>(props: CollectionProps<T>) => {\n const {\n value,\n defaultValue,\n onChange,\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/collection/Collection.tsx"],"sourcesContent":["import {AddSize16Px} from '@coveord/plasma-react-icons';\nimport {\n Box,\n Button,\n DefaultProps,\n Group,\n MantineNumberSize,\n Selectors,\n Stack,\n Tooltip,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useId} from '@mantine/hooks';\nimport {ReactNode} from 'react';\nimport {DragDropContext, Droppable} from 'react-beautiful-dnd';\n\nimport {useControlledList} from '../../hooks';\nimport {CollectionItem} from './CollectionItem';\nimport useStyles from './Colllection.styles';\n\ninterface CollectionProps<T> extends DefaultProps<Selectors<typeof useStyles>> {\n newItem: T;\n children: (item: T, index: number) => ReactNode;\n defaultValue?: T[];\n value?: T[];\n onFocus?: () => void;\n onChange?: (value: T[]) => void;\n draggable?: boolean;\n disabled?: boolean;\n allowAdd?: (values: T[]) => boolean;\n addLabel?: string;\n addDisabledTooltip?: string;\n spacing?: MantineNumberSize;\n required?: boolean;\n}\n\nconst defaultProps: Partial<CollectionProps<unknown>> = {\n draggable: false,\n addLabel: 'Add item',\n addDisabledTooltip: 'There is already an empty item',\n disabled: false,\n spacing: 'xs',\n required: false,\n};\n\nexport const Collection = <T,>(props: CollectionProps<T>) => {\n const {\n value,\n defaultValue,\n onChange,\n disabled,\n draggable,\n children,\n spacing,\n required,\n newItem,\n addLabel,\n addDisabledTooltip,\n allowAdd,\n\n // Style props\n classNames,\n className,\n styles,\n unstyled,\n\n ...others\n } = useComponentDefaultProps('Collection', defaultProps as CollectionProps<T>, props);\n const {classes, cx} = useStyles(null, {classNames, name: 'Collection', styles, unstyled});\n const collectionID = useId('dnd-droppable');\n\n const [values, {append, remove, reorder}] = useControlledList({value, onChange, defaultValue});\n const hasOnlyOneItem = values.length === 1;\n const items = values.map((item, index) => (\n <CollectionItem\n key={index}\n disabled={disabled}\n draggable={draggable}\n index={index}\n onRemove={() => remove(index)}\n styles={styles}\n removable={!(required && hasOnlyOneItem)}\n >\n {children(item, index)}\n </CollectionItem>\n ));\n\n const addAllowed = allowAdd?.(values) ?? true;\n\n const _addButton = disabled ? null : (\n <Group>\n <Tooltip label={addDisabledTooltip} disabled={addAllowed}>\n <Box>\n <Button\n variant=\"subtle\"\n leftIcon={<AddSize16Px height={16} />}\n onClick={() => append(newItem)}\n disabled={!addAllowed}\n >\n {addLabel}\n </Button>\n </Box>\n </Tooltip>\n </Group>\n );\n\n return (\n <DragDropContext\n onDragEnd={({destination, source}) => reorder({from: source.index, to: destination?.index || 0})}\n >\n <Droppable direction=\"vertical\" droppableId={collectionID}>\n {(provided) => (\n <Box\n {...provided.droppableProps}\n ref={provided.innerRef}\n className={cx(classes.root, className)}\n {...others}\n >\n <Stack spacing={spacing}>\n {items}\n {provided.placeholder}\n {_addButton}\n </Stack>\n </Box>\n )}\n </Droppable>\n </DragDropContext>\n );\n};\n"],"names":["Collection","defaultProps","draggable","addLabel","addDisabledTooltip","disabled","spacing","required","props","useComponentDefaultProps","value","defaultValue","onChange","children","newItem","allowAdd","classNames","className","styles","unstyled","others","useStyles","name","classes","cx","collectionID","useId","useControlledList","values","append","remove","reorder","hasOnlyOneItem","length","items","map","item","index","CollectionItem","onRemove","removable","addAllowed","_addButton","Group","Tooltip","label","Box","Button","variant","leftIcon","AddSize16Px","height","onClick","DragDropContext","onDragEnd","destination","source","from","to","Droppable","direction","droppableId","provided","droppableProps","ref","innerRef","root","Stack","placeholder"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/modal-wizard/index.ts"],"sourcesContent":["export * from './ModalWizard';\n"],"names":[],"mappings":"AAAA;;;;;oBAAc,eAAe"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/modal-wizard/index.ts"],"sourcesContent":["export * from './ModalWizard';\nexport {type ModalWizardStepProps} from './ModalWizardStep';\n"],"names":[],"mappings":"AAAA;;;;;oBAAc,eAAe"}
|
package/dist/cjs/index.js
CHANGED
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {Tuple} from '@mantine/core';\n\nimport {PlasmaColors} from './theme/PlasmaColors';\n\nexport {ColumnDef, createColumnHelper} from '@tanstack/table-core';\n\nexport * from '@mantine/core';\nexport * from '@mantine/form';\nexport type {FormValidateInput} from '@mantine/form/lib/types';\nexport * from '@mantine/hooks';\n\nexport * from './components';\nexport * from './theme';\n\n// explicitly overriding mantine components\nexport {Header, Table} from './components';\n\ndeclare module '@mantine/core' {\n export interface MantineThemeColorsOverride {\n // eslint-disable-next-line @typescript-eslint/ban-types\n colors: Record<keyof typeof PlasmaColors | (string & {}), Tuple<string, 10>>;\n }\n}\n"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {Tuple} from '@mantine/core';\n\nimport {PlasmaColors} from './theme/PlasmaColors';\n\nexport {type ColumnDef, createColumnHelper} from '@tanstack/table-core';\n\nexport * from '@mantine/core';\nexport * from '@mantine/form';\nexport type {FormValidateInput} from '@mantine/form/lib/types';\nexport * from '@mantine/hooks';\n\nexport * from './components';\nexport * from './theme';\n\n// explicitly overriding mantine components\nexport {Header, Table} from './components';\n\ndeclare module '@mantine/core' {\n export interface MantineThemeColorsOverride {\n // eslint-disable-next-line @typescript-eslint/ban-types\n colors: Record<keyof typeof PlasmaColors | (string & {}), Tuple<string, 10>>;\n }\n}\n"],"names":["createColumnHelper","Header","Table"],"mappings":"AAAA;;;;;;;;;;;IAIwBA,kBAAkB;eAAlBA,UAAkB,mBAAA;;IAWlCC,MAAM;eAANA,WAAM,OAAA;;IAAEC,KAAK;eAALA,WAAK,MAAA;;;;yBAX4B,sBAAsB;oBAEzD,eAAe;oBACf,eAAe;oBAEf,gBAAgB;sCAEhB,cAAc;oBACd,SAAS"}
|
|
@@ -37,6 +37,13 @@ interface CodeEditorProps extends Omit<InputWrapperBaseProps, 'inputContainer' |
|
|
|
37
37
|
*/
|
|
38
38
|
maxHeight?: number;
|
|
39
39
|
disabled?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Defines how the monaco editor files will be loaded.
|
|
42
|
+
* Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).
|
|
43
|
+
*
|
|
44
|
+
* @default 'local'
|
|
45
|
+
*/
|
|
46
|
+
monacoLoader?: 'cdn' | 'local';
|
|
40
47
|
}
|
|
41
48
|
export declare const CodeEditor: FunctionComponent<CodeEditorProps>;
|
|
42
49
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"names":[],"mappings":"AACA,OAAO,EAMH,YAAY,EAGZ,qBAAqB,EAErB,SAAS,EAIZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAC,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AAI7D,QAAA,MAAM,SAAS;;;;CAQZ,CAAC;AAEJ,UAAU,eACN,SAAQ,IAAI,CAAC,qBAAqB,EAAE,gBAAgB,GAAG,mBAAmB,CAAC,EACvE,YAAY,CAAC,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxD,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,qDAAqD;IACrD,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;CAClC;AASD,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,CAkIzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-editor.d.ts","sourceRoot":"","sources":["../../../../../src/components/code-editor/__mocks__/monaco-editor.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM;;;2BAJE,IAAI;;;CAMxB,CAAC"}
|
|
@@ -10,6 +10,7 @@ interface CollectionProps<T> extends DefaultProps<Selectors<typeof useStyles>> {
|
|
|
10
10
|
onChange?: (value: T[]) => void;
|
|
11
11
|
draggable?: boolean;
|
|
12
12
|
disabled?: boolean;
|
|
13
|
+
allowAdd?: (values: T[]) => boolean;
|
|
13
14
|
addLabel?: string;
|
|
14
15
|
addDisabledTooltip?: string;
|
|
15
16
|
spacing?: MantineNumberSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../../../src/components/collection/Collection.tsx"],"names":[],"mappings":"AACA,OAAO,EAGH,YAAY,EAEZ,iBAAiB,EACjB,SAAS,EAIZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAKhC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,UAAU,eAAe,CAAC,CAAC,CAAE,SAAQ,YAAY,CAAC,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC;IAC1E,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAWD,eAAO,MAAM,UAAU,+CAmFtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../../../src/components/collection/Collection.tsx"],"names":[],"mappings":"AACA,OAAO,EAGH,YAAY,EAEZ,iBAAiB,EACjB,SAAS,EAIZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAKhC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,UAAU,eAAe,CAAC,CAAC,CAAE,SAAQ,YAAY,CAAC,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC;IAC1E,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAWD,eAAO,MAAM,UAAU,+CAmFtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/modal-wizard/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/modal-wizard/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,KAAK,oBAAoB,EAAC,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Tuple } from '@mantine/core';
|
|
2
2
|
import { PlasmaColors } from './theme/PlasmaColors';
|
|
3
|
-
export { ColumnDef, createColumnHelper } from '@tanstack/table-core';
|
|
3
|
+
export { type ColumnDef, createColumnHelper } from '@tanstack/table-core';
|
|
4
4
|
export * from '@mantine/core';
|
|
5
5
|
export * from '@mantine/form';
|
|
6
6
|
export type { FormValidateInput } from '@mantine/form/lib/types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAC,KAAK,SAAS,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAExE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,cAAc,gBAAgB,CAAC;AAE/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,cAAc,CAAC;AAE3C,OAAO,QAAQ,eAAe,CAAC;IAC3B,UAAiB,0BAA0B;QAEvC,MAAM,EAAE,MAAM,CAAC,MAAM,OAAO,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;KAChF;CACJ"}
|
|
@@ -6,14 +6,11 @@ import _sliced_to_array from "@swc/helpers/src/_sliced_to_array.mjs";
|
|
|
6
6
|
import _ts_generator from "@swc/helpers/src/_ts_generator.mjs";
|
|
7
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { CheckSize16Px, CopySize16Px } from "@coveord/plasma-react-icons";
|
|
9
|
-
import { ActionIcon, Box, CopyButton, createStyles, Group, Input, Stack, Tooltip, useComponentDefaultProps } from "@mantine/core";
|
|
9
|
+
import { ActionIcon, Box, Center, CopyButton, createStyles, Group, Input, Loader, Stack, Tooltip, useComponentDefaultProps } from "@mantine/core";
|
|
10
10
|
import { useUncontrolled } from "@mantine/hooks";
|
|
11
11
|
import Editor, { loader } from "@monaco-editor/react";
|
|
12
|
-
import
|
|
12
|
+
import { useEffect, useState } from "react";
|
|
13
13
|
import { useParentHeight } from "../../hooks";
|
|
14
|
-
loader.config({
|
|
15
|
-
monaco: monaco
|
|
16
|
-
});
|
|
17
14
|
var useStyles = createStyles(function(theme) {
|
|
18
15
|
return {
|
|
19
16
|
root: {},
|
|
@@ -27,11 +24,12 @@ var useStyles = createStyles(function(theme) {
|
|
|
27
24
|
});
|
|
28
25
|
var defaultProps = {
|
|
29
26
|
language: "plaintext",
|
|
27
|
+
monacoLoader: "local",
|
|
30
28
|
defaultValue: "",
|
|
31
29
|
minHeight: 300
|
|
32
30
|
};
|
|
33
31
|
export var CodeEditor = function(props) {
|
|
34
|
-
var _ref = useComponentDefaultProps("CodeEditor", defaultProps, props), language = _ref.language, defaultValue = _ref.defaultValue, onChange = _ref.onChange, onFocus = _ref.onFocus, value = _ref.value, label = _ref.label, required = _ref.required, labelProps = _ref.labelProps, error = _ref.error, errorProps = _ref.errorProps, description = _ref.description, descriptionProps = _ref.descriptionProps, minHeight = _ref.minHeight, maxHeight = _ref.maxHeight, disabled = _ref.disabled, others = _object_without_properties(_ref, [
|
|
32
|
+
var _ref = useComponentDefaultProps("CodeEditor", defaultProps, props), language = _ref.language, defaultValue = _ref.defaultValue, onChange = _ref.onChange, onFocus = _ref.onFocus, value = _ref.value, label = _ref.label, required = _ref.required, labelProps = _ref.labelProps, error = _ref.error, errorProps = _ref.errorProps, description = _ref.description, descriptionProps = _ref.descriptionProps, minHeight = _ref.minHeight, maxHeight = _ref.maxHeight, disabled = _ref.disabled, monacoLoader = _ref.monacoLoader, others = _object_without_properties(_ref, [
|
|
35
33
|
"language",
|
|
36
34
|
"defaultValue",
|
|
37
35
|
"onChange",
|
|
@@ -46,16 +44,51 @@ export var CodeEditor = function(props) {
|
|
|
46
44
|
"descriptionProps",
|
|
47
45
|
"minHeight",
|
|
48
46
|
"maxHeight",
|
|
49
|
-
"disabled"
|
|
47
|
+
"disabled",
|
|
48
|
+
"monacoLoader"
|
|
50
49
|
]);
|
|
51
|
-
var ref =
|
|
52
|
-
var ref1 =
|
|
50
|
+
var ref = _sliced_to_array(useState(false), 2), loaded = ref[0], setLoaded = ref[1];
|
|
51
|
+
var ref1 = useStyles(), classes = ref1.classes, theme = ref1.theme;
|
|
52
|
+
var ref2 = _sliced_to_array(useUncontrolled({
|
|
53
53
|
value: value,
|
|
54
54
|
defaultValue: defaultValue,
|
|
55
55
|
onChange: onChange,
|
|
56
56
|
finalValue: ""
|
|
57
|
-
}), 2), _value =
|
|
58
|
-
var
|
|
57
|
+
}), 2), _value = ref2[0], handleChange = ref2[1];
|
|
58
|
+
var ref3 = _sliced_to_array(useParentHeight(), 2), parentHeight = ref3[0], ref4 = ref3[1];
|
|
59
|
+
var loadLocalMonaco = function() {
|
|
60
|
+
var _ref = _async_to_generator(function() {
|
|
61
|
+
var monaco;
|
|
62
|
+
return _ts_generator(this, function(_state) {
|
|
63
|
+
switch(_state.label){
|
|
64
|
+
case 0:
|
|
65
|
+
return [
|
|
66
|
+
4,
|
|
67
|
+
import("monaco-editor")
|
|
68
|
+
];
|
|
69
|
+
case 1:
|
|
70
|
+
monaco = _state.sent();
|
|
71
|
+
loader.config({
|
|
72
|
+
monaco: monaco
|
|
73
|
+
});
|
|
74
|
+
setLoaded(true);
|
|
75
|
+
return [
|
|
76
|
+
2
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
return function loadLocalMonaco() {
|
|
82
|
+
return _ref.apply(this, arguments);
|
|
83
|
+
};
|
|
84
|
+
}();
|
|
85
|
+
useEffect(function() {
|
|
86
|
+
if (monacoLoader === "local") {
|
|
87
|
+
loadLocalMonaco();
|
|
88
|
+
} else {
|
|
89
|
+
setLoaded(true);
|
|
90
|
+
}
|
|
91
|
+
}, []);
|
|
59
92
|
var _label = label ? /*#__PURE__*/ _jsx(Input.Label, _object_spread_props(_object_spread({
|
|
60
93
|
required: required
|
|
61
94
|
}, labelProps), {
|
|
@@ -101,7 +134,7 @@ export var CodeEditor = function(props) {
|
|
|
101
134
|
}
|
|
102
135
|
})
|
|
103
136
|
});
|
|
104
|
-
var _editor = /*#__PURE__*/ _jsx(Box, {
|
|
137
|
+
var _editor = loaded ? /*#__PURE__*/ _jsx(Box, {
|
|
105
138
|
p: "md",
|
|
106
139
|
pl: "xs",
|
|
107
140
|
className: classes.editor,
|
|
@@ -142,6 +175,9 @@ export var CodeEditor = function(props) {
|
|
|
142
175
|
}));
|
|
143
176
|
}
|
|
144
177
|
})
|
|
178
|
+
}) : /*#__PURE__*/ _jsx(Center, {
|
|
179
|
+
className: classes.editor,
|
|
180
|
+
children: /*#__PURE__*/ _jsx(Loader, {})
|
|
145
181
|
});
|
|
146
182
|
return /*#__PURE__*/ _jsxs(Stack, _object_spread_props(_object_spread({
|
|
147
183
|
justify: "flex-start",
|
|
@@ -151,7 +187,7 @@ export var CodeEditor = function(props) {
|
|
|
151
187
|
height: Math.max(parentHeight, minHeight),
|
|
152
188
|
maxHeight: maxHeight
|
|
153
189
|
},
|
|
154
|
-
ref:
|
|
190
|
+
ref: ref4
|
|
155
191
|
}, others), {
|
|
156
192
|
children: [
|
|
157
193
|
_header,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {CheckSize16Px, CopySize16Px} from '@coveord/plasma-react-icons';\nimport {\n ActionIcon,\n Box,\n CopyButton,\n createStyles,\n DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n Selectors,\n Stack,\n Tooltip,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {loader} from '@monaco-editor/react';\nimport * as monaco from 'monaco-editor';\nimport {FunctionComponent} from 'react';\n\nimport {useParentHeight} from '../../hooks';\n\nloader.config({monaco});\n\nconst useStyles = createStyles((theme) => ({\n root: {},\n editor: {\n border: `1px solid ${theme.colors.gray[2]}`,\n borderRadius: theme.defaultRadius,\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n height: '100%',\n },\n}));\n\ninterface CodeEditorProps\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python';\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n ...others\n } = useComponentDefaultProps('CodeEditor', defaultProps, props);\n const {classes, theme} = useStyles();\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description mt=\"xs\" {...descriptionProps}>\n {description}\n </Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : null;\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _copyButton = (\n <Group position=\"right\">\n <CopyButton value={_value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? 'Copied' : 'Copy'} withArrow position=\"right\">\n <ActionIcon color={copied ? 'lime' : 'gray'} onClick={copy}>\n {copied ? <CheckSize16Px height={16} /> : <CopySize16Px height={16} />}\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n </Group>\n );\n\n const _editor = (\n <Box p=\"md\" pl=\"xs\" className={classes.editor}>\n <Editor\n defaultLanguage={language}\n theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n wrappingStrategy: 'advanced',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: theme.fontSizes.xs,\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor) => {\n editor.onDidFocusEditorText(onFocus);\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n className={classes.root}\n spacing={0}\n sx={{height: Math.max(parentHeight, minHeight), maxHeight}}\n ref={ref}\n {...others}\n >\n {_header}\n {_copyButton}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["CheckSize16Px","CopySize16Px","ActionIcon","Box","CopyButton","createStyles","Group","Input","Stack","Tooltip","useComponentDefaultProps","useUncontrolled","Editor","loader","monaco","useParentHeight","config","useStyles","theme","root","editor","border","colors","gray","borderRadius","defaultRadius","backgroundColor","colorScheme","white","black","height","defaultProps","language","defaultValue","minHeight","CodeEditor","props","onChange","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","classes","finalValue","_value","handleChange","parentHeight","ref","_label","Label","_description","Description","mt","_error","Error","_header","_copyButton","position","timeout","copied","copy","withArrow","color","onClick","_editor","p","pl","className","defaultLanguage","options","minimap","enabled","wordWrap","wrappingStrategy","scrollBeyondLastLine","formatOnPaste","fontSize","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","justify","spacing","sx","Math","max"],"mappings":"AAAA;;;;;;;AAAA,SAAQA,aAAa,EAAEC,YAAY,QAAO,6BAA6B,CAAC;AACxE,SACIC,UAAU,EACVC,GAAG,EACHC,UAAU,EACVC,YAAY,EAEZC,KAAK,EACLC,KAAK,EAGLC,KAAK,EACLC,OAAO,EACPC,wBAAwB,QACrB,eAAe,CAAC;AACvB,SAAQC,eAAe,QAAO,gBAAgB,CAAC;AAC/C,OAAOC,MAAM,IAAGC,MAAM,QAAO,sBAAsB,CAAC;AACpD,YAAYC,MAAM,MAAM,eAAe,CAAC;AAGxC,SAAQC,eAAe,QAAO,aAAa,CAAC;AAE5CF,MAAM,CAACG,MAAM,CAAC;IAACF,MAAM,EAANA,MAAM;CAAC,CAAC,CAAC;AAExB,IAAMG,SAAS,GAAGZ,YAAY,CAAC,SAACa,KAAK;WAAM;QACvCC,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;YACJC,MAAM,EAAE,AAAC,YAAU,CAAuB,MAAA,CAArBH,KAAK,CAACI,MAAM,CAACC,IAAI,CAAC,CAAC,CAAC,CAAE;YAC3CC,YAAY,EAAEN,KAAK,CAACO,aAAa;YACjCC,eAAe,EAAER,KAAK,CAACS,WAAW,KAAK,OAAO,GAAGT,KAAK,CAACU,KAAK,GAAGV,KAAK,CAACW,KAAK;YAC1EC,MAAM,EAAE,MAAM;SACjB;KACJ;CAAC,CAAC,AAAC;AAsCJ,IAAMC,YAAY,GAA6B;IAC3CC,QAAQ,EAAE,WAAW;IACrBC,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAE,GAAG;CACjB,AAAC;AAEF,OAAO,IAAMC,UAAU,GAAuC,SAACC,KAAK,EAAK;IACrE,IAiBI1B,IAA2D,GAA3DA,wBAAwB,CAAC,YAAY,EAAEqB,YAAY,EAAEK,KAAK,CAAC,EAhB3DJ,QAAQ,GAgBRtB,IAA2D,CAhB3DsB,QAAQ,EACRC,YAAY,GAeZvB,IAA2D,CAf3DuB,YAAY,EACZI,QAAQ,GAcR3B,IAA2D,CAd3D2B,QAAQ,EACRC,OAAO,GAaP5B,IAA2D,CAb3D4B,OAAO,EACPC,KAAK,GAYL7B,IAA2D,CAZ3D6B,KAAK,EACLC,KAAK,GAWL9B,IAA2D,CAX3D8B,KAAK,EACLC,QAAQ,GAUR/B,IAA2D,CAV3D+B,QAAQ,EACRC,UAAU,GASVhC,IAA2D,CAT3DgC,UAAU,EACVC,KAAK,GAQLjC,IAA2D,CAR3DiC,KAAK,EACLC,UAAU,GAOVlC,IAA2D,CAP3DkC,UAAU,EACVC,WAAW,GAMXnC,IAA2D,CAN3DmC,WAAW,EACXC,gBAAgB,GAKhBpC,IAA2D,CAL3DoC,gBAAgB,EAChBZ,SAAS,GAITxB,IAA2D,CAJ3DwB,SAAS,EACTa,SAAS,GAGTrC,IAA2D,CAH3DqC,SAAS,EACTC,QAAQ,GAERtC,IAA2D,CAF3DsC,QAAQ,EACLC,MAAM,8BACTvC,IAA2D;QAhB3DsB,UAAQ;QACRC,cAAY;QACZI,UAAQ;QACRC,SAAO;QACPC,OAAK;QACLC,OAAK;QACLC,UAAQ;QACRC,YAAU;QACVC,OAAK;QACLC,YAAU;QACVC,aAAW;QACXC,kBAAgB;QAChBZ,WAAS;QACTa,WAAS;QACTC,UAAQ;MAEoD;IAChE,IAAyB/B,GAAW,GAAXA,SAAS,EAAE,EAA7BiC,OAAO,GAAWjC,GAAW,CAA7BiC,OAAO,EAAEhC,KAAK,GAAID,GAAW,CAApBC,KAAK,AAAgB;IACrC,IAA+BP,IAK7B,oBAL6BA,eAAe,CAAS;QACnD4B,KAAK,EAALA,KAAK;QACLN,YAAY,EAAZA,YAAY;QACZI,QAAQ,EAARA,QAAQ;QACRc,UAAU,EAAE,EAAE;KACjB,CAAC,IAAA,EALKC,MAAM,GAAkBzC,IAK7B,GALW,EAAE0C,YAAY,GAAI1C,IAK7B,GALyB,AAKxB;IACH,IAA4BI,IAAiB,oBAAjBA,eAAe,EAAE,IAAA,EAAtCuC,YAAY,GAASvC,IAAiB,GAA1B,EAAEwC,IAAG,GAAIxC,IAAiB,GAArB,AAAsB;IAE9C,IAAMyC,MAAM,GAAGhB,KAAK,iBAChB,KAACjC,KAAK,CAACkD,KAAK;QAAChB,QAAQ,EAAEA,QAAQ;OAAMC,UAAU;kBAC1CF,KAAK;OACI,GACd,IAAI,AAAC;IAET,IAAMkB,YAAY,GAAGb,WAAW,iBAC5B,KAACtC,KAAK,CAACoD,WAAW;QAACC,EAAE,EAAC,IAAI;OAAKd,gBAAgB;kBAC1CD,WAAW;OACI,GACpB,IAAI,AAAC;IAET,IAAMgB,MAAM,GAAGlB,KAAK,iBAChB,KAACpC,KAAK,CAACuD,KAAK;QAACF,EAAE,EAAC,IAAI;OAAKhB,UAAU;kBAC9BD,KAAK;OACI,GACd,IAAI,AAAC;IAET,IAAMoB,OAAO,GACTP,MAAM,IAAIE,YAAY,iBAClB,MAACvD,GAAG;;YACCqD,MAAM;YACNE,YAAY;;MACX,GACN,IAAI,AAAC;IAEb,IAAMM,WAAW,iBACb,KAAC1D,KAAK;QAAC2D,QAAQ,EAAC,OAAO;kBACnB,cAAA,KAAC7D,UAAU;YAACmC,KAAK,EAAEa,MAAM;YAAEc,OAAO,EAAE,IAAI;sBACnC;oBAAEC,MAAM,SAANA,MAAM,EAAEC,IAAI,SAAJA,IAAI;qCACX,KAAC3D,OAAO;oBAAC+B,KAAK,EAAE2B,MAAM,GAAG,QAAQ,GAAG,MAAM;oBAAEE,SAAS;oBAACJ,QAAQ,EAAC,OAAO;8BAClE,cAAA,KAAC/D,UAAU;wBAACoE,KAAK,EAAEH,MAAM,GAAG,MAAM,GAAG,MAAM;wBAAEI,OAAO,EAAEH,IAAI;kCACrDD,MAAM,iBAAG,KAACnE,aAAa;4BAAC8B,MAAM,EAAE,EAAE;0BAAI,iBAAG,KAAC7B,YAAY;4BAAC6B,MAAM,EAAE,EAAE;0BAAI;sBAC7D;kBACP;aACb;UACQ;MACT,AACX,AAAC;IAEF,IAAM0C,OAAO,iBACT,KAACrE,GAAG;QAACsE,CAAC,EAAC,IAAI;QAACC,EAAE,EAAC,IAAI;QAACC,SAAS,EAAEzB,OAAO,CAAC9B,MAAM;kBACzC,cAAA,KAACR,MAAM;YACHgE,eAAe,EAAE5C,QAAQ;YACzBd,KAAK,EAAEA,KAAK,CAACS,WAAW,KAAK,OAAO,GAAG,OAAO,GAAG,SAAS;YAC1DkD,OAAO,EAAE;gBACLC,OAAO,EAAE;oBAACC,OAAO,EAAE,KAAK;iBAAC;gBACzBC,QAAQ,EAAE,IAAI;gBACdC,gBAAgB,EAAE,UAAU;gBAC5BC,oBAAoB,EAAE,KAAK;gBAC3BC,aAAa,EAAE,IAAI;gBACnBC,QAAQ,EAAElE,KAAK,CAACmE,SAAS,CAACC,EAAE;gBAC5BC,QAAQ,EAAEvC,QAAQ;gBAClBwC,OAAO,EAAE,CAAC;aACb;YACDjD,KAAK,EAAEa,MAAM;YACbf,QAAQ,EAAEgB,YAAY;YACtBoC,OAAO,EAAE,SAACrE,MAAM,EAAK;gBACjBA,MAAM,CAACsE,oBAAoB,CAACpD,OAAO,CAAC,CAAC;gBACrClB,MAAM,CAACuE,mBAAmB,eAAC,oBAAA,WAAY;;;;gCACnC;;oCAAMvE,MAAM,CAACwE,SAAS,CAAC,8BAA8B,CAAC,CAACC,GAAG,EAAE;kCAAA;;gCAA5D,aAA4D,CAAC;;;;;;gBACjE,CAAC,CAAA,CAAC,CAAC;YACP,CAAC;UACH;MACA,AACT,AAAC;IAEF,qBACI,MAACrF,KAAK;QACFsF,OAAO,EAAC,YAAY;QACpBnB,SAAS,EAAEzB,OAAO,CAAC/B,IAAI;QACvB4E,OAAO,EAAE,CAAC;QACVC,EAAE,EAAE;YAAClE,MAAM,EAAEmE,IAAI,CAACC,GAAG,CAAC5C,YAAY,EAAEpB,SAAS,CAAC;YAAEa,SAAS,EAATA,SAAS;SAAC;QAC1DQ,GAAG,EAAEA,IAAG;OACJN,MAAM;;YAETc,OAAO;YACPC,WAAW;YACXQ,OAAO;YACPX,MAAM;;OACH,CACV;AACN,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {CheckSize16Px, CopySize16Px} from '@coveord/plasma-react-icons';\nimport {\n ActionIcon,\n Box,\n Center,\n CopyButton,\n createStyles,\n DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n Loader,\n Selectors,\n Stack,\n Tooltip,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {loader} from '@monaco-editor/react';\nimport {FunctionComponent, useEffect, useState} from 'react';\n\nimport {useParentHeight} from '../../hooks';\n\nconst useStyles = createStyles((theme) => ({\n root: {},\n editor: {\n border: `1px solid ${theme.colors.gray[2]}`,\n borderRadius: theme.defaultRadius,\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n height: '100%',\n },\n}));\n\ninterface CodeEditorProps\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python';\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n /**\n * Defines how the monaco editor files will be loaded.\n * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).\n *\n * @default 'local'\n */\n monacoLoader?: 'cdn' | 'local';\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n monacoLoader: 'local',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n monacoLoader,\n ...others\n } = useComponentDefaultProps('CodeEditor', defaultProps, props);\n const [loaded, setLoaded] = useState(false);\n const {classes, theme} = useStyles();\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n\n const loadLocalMonaco = async () => {\n const monaco = await import('monaco-editor');\n loader.config({monaco});\n setLoaded(true);\n };\n\n useEffect(() => {\n if (monacoLoader === 'local') {\n loadLocalMonaco();\n } else {\n setLoaded(true);\n }\n }, []);\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description mt=\"xs\" {...descriptionProps}>\n {description}\n </Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : null;\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _copyButton = (\n <Group position=\"right\">\n <CopyButton value={_value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? 'Copied' : 'Copy'} withArrow position=\"right\">\n <ActionIcon color={copied ? 'lime' : 'gray'} onClick={copy}>\n {copied ? <CheckSize16Px height={16} /> : <CopySize16Px height={16} />}\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n </Group>\n );\n\n const _editor = loaded ? (\n <Box p=\"md\" pl=\"xs\" className={classes.editor}>\n <Editor\n defaultLanguage={language}\n theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n wrappingStrategy: 'advanced',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: theme.fontSizes.xs,\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor) => {\n editor.onDidFocusEditorText(onFocus);\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n ) : (\n <Center className={classes.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n className={classes.root}\n spacing={0}\n sx={{height: Math.max(parentHeight, minHeight), maxHeight}}\n ref={ref}\n {...others}\n >\n {_header}\n {_copyButton}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["CheckSize16Px","CopySize16Px","ActionIcon","Box","Center","CopyButton","createStyles","Group","Input","Loader","Stack","Tooltip","useComponentDefaultProps","useUncontrolled","Editor","loader","useEffect","useState","useParentHeight","useStyles","theme","root","editor","border","colors","gray","borderRadius","defaultRadius","backgroundColor","colorScheme","white","black","height","defaultProps","language","monacoLoader","defaultValue","minHeight","CodeEditor","props","onChange","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","loaded","setLoaded","classes","finalValue","_value","handleChange","parentHeight","ref","loadLocalMonaco","monaco","config","_label","Label","_description","Description","mt","_error","Error","_header","_copyButton","position","timeout","copied","copy","withArrow","color","onClick","_editor","p","pl","className","defaultLanguage","options","minimap","enabled","wordWrap","wrappingStrategy","scrollBeyondLastLine","formatOnPaste","fontSize","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","justify","spacing","sx","Math","max"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/code-editor/__mocks__/monaco-editor.ts"],"sourcesContent":["const editor = {\n create: () => ({\n dispose: (): void => null,\n }),\n};\n\nexport const monaco = {\n editor,\n};\n"],"names":["editor","create","dispose","monaco"],"mappings":"AAAA,IAAMA,MAAM,GAAG;IACXC,MAAM,EAAE;eAAO;YACXC,OAAO,EAAE;uBAAY,IAAI;aAAA;SAC5B;KAAC;CACL,AAAC;AAEF,OAAO,IAAMC,MAAM,GAAG;IAClBH,MAAM,EAANA,MAAM;CACT,CAAC"}
|