@thienvu18/designable-react-settings-form 2.0.0 → 2.0.2

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.
Files changed (167) hide show
  1. package/esm/SchemaField.d.ts +5115 -1578
  2. package/esm/SchemaField.js +76 -41
  3. package/esm/SettingsForm.d.ts +4 -4
  4. package/esm/SettingsForm.js +99 -49
  5. package/esm/components/BackgroundStyleSetter/index.d.ts +4 -4
  6. package/esm/components/BackgroundStyleSetter/index.js +95 -42
  7. package/esm/components/BorderRadiusStyleSetter/index.d.ts +4 -4
  8. package/esm/components/BorderRadiusStyleSetter/index.js +13 -10
  9. package/esm/components/BorderStyleSetter/index.d.ts +5 -5
  10. package/esm/components/BorderStyleSetter/index.js +121 -68
  11. package/esm/components/BoxShadowStyleSetter/index.d.ts +6 -6
  12. package/esm/components/BoxShadowStyleSetter/index.js +72 -24
  13. package/esm/components/BoxStyleSetter/index.d.ts +7 -7
  14. package/esm/components/BoxStyleSetter/index.js +98 -46
  15. package/esm/components/CollapseItem/index.d.ts +6 -6
  16. package/esm/components/CollapseItem/index.js +35 -15
  17. package/esm/components/ColorInput/index.d.ts +5 -5
  18. package/esm/components/ColorInput/index.js +35 -17
  19. package/esm/components/ColorInput/styles.less +0 -5
  20. package/esm/components/CornerInput/index.d.ts +7 -7
  21. package/esm/components/CornerInput/index.js +50 -21
  22. package/esm/components/DisplayStyleSetter/index.d.ts +7 -7
  23. package/esm/components/DisplayStyleSetter/index.js +62 -33
  24. package/esm/components/DrawerSetter/index.d.ts +6 -6
  25. package/esm/components/DrawerSetter/index.js +82 -42
  26. package/esm/components/DrawerSetter/styles.less +2 -2
  27. package/esm/components/FlexStyleSetter/index.d.ts +5 -5
  28. package/esm/components/FlexStyleSetter/index.js +160 -110
  29. package/esm/components/FoldItem/index.d.ts +9 -7
  30. package/esm/components/FoldItem/index.js +80 -46
  31. package/esm/components/FontStyleSetter/index.d.ts +4 -4
  32. package/esm/components/FontStyleSetter/index.js +169 -85
  33. package/esm/components/ImageInput/index.d.ts +7 -7
  34. package/esm/components/ImageInput/index.js +59 -39
  35. package/esm/components/InputItems/index.d.ts +19 -17
  36. package/esm/components/InputItems/index.js +42 -16
  37. package/esm/components/MonacoInput/config.d.ts +1 -1
  38. package/esm/components/MonacoInput/config.js +40 -38
  39. package/esm/components/MonacoInput/format.d.ts +4 -1
  40. package/esm/components/MonacoInput/format.js +33 -29
  41. package/esm/components/MonacoInput/index.d.ts +13 -13
  42. package/esm/components/MonacoInput/index.js +298 -212
  43. package/esm/components/MonacoInput/themes/chrome.d.ts +44 -38
  44. package/esm/components/MonacoInput/themes/chrome.js +105 -105
  45. package/esm/components/MonacoInput/themes/monokai.d.ts +34 -30
  46. package/esm/components/MonacoInput/themes/monokai.js +139 -139
  47. package/esm/components/PolyInput/index.d.ts +17 -17
  48. package/esm/components/PolyInput/index.js +96 -66
  49. package/esm/components/PositionInput/index.d.ts +7 -7
  50. package/esm/components/PositionInput/index.js +48 -21
  51. package/esm/components/PositionInput/styles.less +0 -1
  52. package/esm/components/SizeInput/index.d.ts +6 -2
  53. package/esm/components/SizeInput/index.js +44 -46
  54. package/esm/components/SizeInput/styles.less +0 -1
  55. package/esm/components/ValueInput/index.d.ts +2 -2
  56. package/esm/components/ValueInput/index.js +89 -72
  57. package/esm/components/index.d.ts +20 -20
  58. package/esm/components/index.js +20 -20
  59. package/esm/effects/index.d.ts +2 -2
  60. package/esm/effects/index.js +2 -2
  61. package/esm/effects/useLocales.d.ts +2 -2
  62. package/esm/effects/useLocales.js +57 -59
  63. package/esm/effects/useSnapshot.d.ts +2 -2
  64. package/esm/effects/useSnapshot.js +9 -9
  65. package/esm/index.d.ts +5 -5
  66. package/esm/index.js +5 -5
  67. package/esm/locales/en-US.d.ts +12 -12
  68. package/esm/locales/en-US.js +10 -10
  69. package/esm/locales/index.d.ts +1 -1
  70. package/esm/locales/index.js +5 -5
  71. package/esm/locales/ko-KR.d.ts +12 -12
  72. package/esm/locales/ko-KR.js +10 -10
  73. package/esm/locales/zh-CN.d.ts +12 -12
  74. package/esm/locales/zh-CN.js +10 -10
  75. package/esm/registry.d.ts +2 -2
  76. package/esm/registry.js +11 -11
  77. package/esm/shared/context.d.ts +2 -2
  78. package/esm/shared/context.js +2 -2
  79. package/esm/shared/loadScript.d.ts +5 -5
  80. package/esm/shared/loadScript.js +27 -28
  81. package/esm/styles.less +5 -4
  82. package/esm/types.d.ts +8 -8
  83. package/esm/types.js +1 -1
  84. package/lib/SchemaField.d.ts +5115 -1578
  85. package/lib/SchemaField.js +44 -44
  86. package/lib/SettingsForm.d.ts +4 -4
  87. package/lib/SettingsForm.js +108 -55
  88. package/lib/components/BackgroundStyleSetter/index.d.ts +4 -4
  89. package/lib/components/BackgroundStyleSetter/index.js +106 -48
  90. package/lib/components/BorderRadiusStyleSetter/index.d.ts +4 -4
  91. package/lib/components/BorderRadiusStyleSetter/index.js +33 -14
  92. package/lib/components/BorderStyleSetter/index.d.ts +5 -5
  93. package/lib/components/BorderStyleSetter/index.js +138 -74
  94. package/lib/components/BoxShadowStyleSetter/index.d.ts +6 -6
  95. package/lib/components/BoxShadowStyleSetter/index.js +82 -30
  96. package/lib/components/BoxStyleSetter/index.d.ts +7 -7
  97. package/lib/components/BoxStyleSetter/index.js +122 -52
  98. package/lib/components/CollapseItem/index.d.ts +6 -6
  99. package/lib/components/CollapseItem/index.js +49 -21
  100. package/lib/components/ColorInput/index.d.ts +5 -5
  101. package/lib/components/ColorInput/index.js +39 -21
  102. package/lib/components/ColorInput/styles.less +0 -5
  103. package/lib/components/CornerInput/index.d.ts +7 -7
  104. package/lib/components/CornerInput/index.js +70 -28
  105. package/lib/components/DisplayStyleSetter/index.d.ts +7 -7
  106. package/lib/components/DisplayStyleSetter/index.js +75 -39
  107. package/lib/components/DrawerSetter/index.d.ts +6 -6
  108. package/lib/components/DrawerSetter/index.js +99 -48
  109. package/lib/components/DrawerSetter/styles.less +2 -2
  110. package/lib/components/FlexStyleSetter/index.d.ts +5 -5
  111. package/lib/components/FlexStyleSetter/index.js +208 -116
  112. package/lib/components/FoldItem/index.d.ts +9 -7
  113. package/lib/components/FoldItem/index.js +140 -72
  114. package/lib/components/FontStyleSetter/index.d.ts +4 -4
  115. package/lib/components/FontStyleSetter/index.js +216 -91
  116. package/lib/components/ImageInput/index.d.ts +7 -7
  117. package/lib/components/ImageInput/index.js +69 -47
  118. package/lib/components/InputItems/index.d.ts +19 -17
  119. package/lib/components/InputItems/index.js +101 -46
  120. package/lib/components/MonacoInput/config.d.ts +1 -1
  121. package/lib/components/MonacoInput/config.js +49 -45
  122. package/lib/components/MonacoInput/format.d.ts +4 -1
  123. package/lib/components/MonacoInput/format.js +38 -33
  124. package/lib/components/MonacoInput/index.d.ts +13 -13
  125. package/lib/components/MonacoInput/index.js +347 -241
  126. package/lib/components/MonacoInput/themes/chrome.d.ts +44 -38
  127. package/lib/components/MonacoInput/themes/chrome.js +107 -107
  128. package/lib/components/MonacoInput/themes/monokai.d.ts +34 -30
  129. package/lib/components/MonacoInput/themes/monokai.js +141 -141
  130. package/lib/components/PolyInput/index.d.ts +17 -17
  131. package/lib/components/PolyInput/index.js +151 -96
  132. package/lib/components/PositionInput/index.d.ts +7 -7
  133. package/lib/components/PositionInput/index.js +68 -28
  134. package/lib/components/PositionInput/styles.less +0 -1
  135. package/lib/components/SizeInput/index.d.ts +6 -2
  136. package/lib/components/SizeInput/index.js +47 -49
  137. package/lib/components/SizeInput/styles.less +0 -1
  138. package/lib/components/ValueInput/index.d.ts +2 -2
  139. package/lib/components/ValueInput/index.js +92 -75
  140. package/lib/components/index.d.ts +20 -20
  141. package/lib/components/index.js +52 -36
  142. package/lib/effects/index.d.ts +2 -2
  143. package/lib/effects/index.js +34 -18
  144. package/lib/effects/useLocales.d.ts +2 -2
  145. package/lib/effects/useLocales.js +67 -63
  146. package/lib/effects/useSnapshot.d.ts +2 -2
  147. package/lib/effects/useSnapshot.js +13 -13
  148. package/lib/index.d.ts +5 -5
  149. package/lib/index.js +37 -21
  150. package/lib/locales/en-US.d.ts +12 -12
  151. package/lib/locales/en-US.js +12 -12
  152. package/lib/locales/index.d.ts +1 -1
  153. package/lib/locales/index.js +16 -10
  154. package/lib/locales/ko-KR.d.ts +12 -12
  155. package/lib/locales/ko-KR.js +12 -12
  156. package/lib/locales/zh-CN.d.ts +12 -12
  157. package/lib/locales/zh-CN.js +12 -12
  158. package/lib/registry.d.ts +2 -2
  159. package/lib/registry.js +21 -19
  160. package/lib/shared/context.d.ts +2 -2
  161. package/lib/shared/context.js +5 -5
  162. package/lib/shared/loadScript.d.ts +5 -5
  163. package/lib/shared/loadScript.js +32 -32
  164. package/lib/styles.less +5 -4
  165. package/lib/types.d.ts +8 -8
  166. package/lib/types.js +2 -2
  167. package/package.json +26 -27
@@ -1,246 +1,352 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.MonacoInput = void 0;
30
- const jsx_runtime_1 = require("react/jsx-runtime");
31
- const react_1 = require("react");
32
- const react_2 = __importStar(require("@monaco-editor/react"));
33
- const designable_react_1 = require("@thienvu18/designable-react");
34
- const antd_1 = require("antd");
35
- const parser_1 = require("@babel/parser");
36
- const designable_shared_1 = require("@thienvu18/designable-shared");
37
- const format_1 = require("./format");
38
- const classnames_1 = __importDefault(require("classnames"));
39
- require("./styles.less");
40
- require("./config");
41
- const config_1 = require("./config");
42
- const MonacoInput = ({ className, language, defaultLanguage, width, helpLink, helpCode, helpCodeViewWidth, height, onMount, onChange, ...props }) => {
43
- const [loaded, setLoaded] = (0, react_1.useState)(false);
44
- const theme = (0, designable_react_1.useTheme)();
45
- const valueRef = (0, react_1.useRef)('');
46
- const validateRef = (0, react_1.useRef)(null);
47
- const submitRef = (0, react_1.useRef)(null);
48
- const declarationRef = (0, react_1.useRef)([]);
49
- const extraLibRef = (0, react_1.useRef)(null);
50
- const monacoRef = (0, react_1.useRef)(null);
51
- const editorRef = (0, react_1.useRef)(null);
52
- const computedLanguage = (0, react_1.useRef)(language || defaultLanguage);
53
- const realLanguage = (0, react_1.useRef)('');
54
- const unmountedRef = (0, react_1.useRef)(false);
55
- const changedRef = (0, react_1.useRef)(false);
56
- const uidRef = (0, react_1.useRef)((0, designable_shared_1.uid)());
57
- const prefix = (0, designable_react_1.usePrefix)('monaco-input');
58
- const input = props.value || props.defaultValue;
59
- (0, react_1.useEffect)(() => {
60
- unmountedRef.current = false;
61
- (0, config_1.initMonaco)();
62
- return () => {
63
- if (extraLibRef.current) {
64
- extraLibRef.current.dispose();
65
- }
66
- unmountedRef.current = true;
67
- };
68
- }, []);
69
- (0, react_1.useEffect)(() => {
70
- if (monacoRef.current && props.extraLib) {
71
- updateExtraLib();
1
+ 'use strict'
2
+ var __createBinding =
3
+ (this && this.__createBinding) ||
4
+ (Object.create
5
+ ? function (o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k
7
+ var desc = Object.getOwnPropertyDescriptor(m, k)
8
+ if (
9
+ !desc ||
10
+ ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)
11
+ ) {
12
+ desc = {
13
+ enumerable: true,
14
+ get: function () {
15
+ return m[k]
16
+ },
17
+ }
72
18
  }
73
- }, [props.extraLib]);
74
- const updateExtraLib = () => {
75
- if (extraLibRef.current) {
76
- extraLibRef.current.dispose();
77
- }
78
- extraLibRef.current =
79
- monacoRef.current.languages.typescript.typescriptDefaults.addExtraLib(props.extraLib, `${uidRef.current}.d.ts`);
80
- };
81
- const isFileLanguage = () => {
82
- const lang = computedLanguage.current;
83
- return lang === 'javascript' || lang === 'typescript';
84
- };
85
- const isExpLanguage = () => {
86
- const lang = computedLanguage.current;
87
- return lang === 'javascript.expression' || lang === 'typescript.expression';
88
- };
89
- const renderHelper = () => {
90
- const getHref = () => {
91
- if (typeof helpLink === 'string')
92
- return helpLink;
19
+ Object.defineProperty(o, k2, desc)
20
+ }
21
+ : function (o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k
23
+ o[k2] = m[k]
24
+ })
25
+ var __setModuleDefault =
26
+ (this && this.__setModuleDefault) ||
27
+ (Object.create
28
+ ? function (o, v) {
29
+ Object.defineProperty(o, 'default', { enumerable: true, value: v })
30
+ }
31
+ : function (o, v) {
32
+ o['default'] = v
33
+ })
34
+ var __importStar =
35
+ (this && this.__importStar) ||
36
+ function (mod) {
37
+ if (mod && mod.__esModule) return mod
38
+ var result = {}
39
+ if (mod != null)
40
+ for (var k in mod)
41
+ if (k !== 'default' && Object.prototype.hasOwnProperty.call(mod, k))
42
+ __createBinding(result, mod, k)
43
+ __setModuleDefault(result, mod)
44
+ return result
45
+ }
46
+ var __importDefault =
47
+ (this && this.__importDefault) ||
48
+ function (mod) {
49
+ return mod && mod.__esModule ? mod : { default: mod }
50
+ }
51
+ Object.defineProperty(exports, '__esModule', { value: true })
52
+ exports.MonacoInput = void 0
53
+ const jsx_runtime_1 = require('react/jsx-runtime')
54
+ const react_1 = require('react')
55
+ const react_2 = __importStar(require('@monaco-editor/react'))
56
+ const designable_react_1 = require('@thienvu18/designable-react')
57
+ const antd_1 = require('antd')
58
+ const parser_1 = require('@babel/parser')
59
+ const designable_shared_1 = require('@thienvu18/designable-shared')
60
+ const format_1 = require('./format')
61
+ const classnames_1 = __importDefault(require('classnames'))
62
+ require('./styles.less')
63
+ require('./config')
64
+ const config_1 = require('./config')
65
+ const MonacoInput = ({
66
+ className,
67
+ language,
68
+ defaultLanguage,
69
+ width,
70
+ helpLink,
71
+ helpCode,
72
+ helpCodeViewWidth,
73
+ height,
74
+ onMount,
75
+ onChange,
76
+ ...props
77
+ }) => {
78
+ const [loaded, setLoaded] = (0, react_1.useState)(false)
79
+ const theme = (0, designable_react_1.useTheme)()
80
+ const valueRef = (0, react_1.useRef)('')
81
+ const validateRef = (0, react_1.useRef)(null)
82
+ const submitRef = (0, react_1.useRef)(null)
83
+ const declarationRef = (0, react_1.useRef)([])
84
+ const extraLibRef = (0, react_1.useRef)(null)
85
+ const monacoRef = (0, react_1.useRef)(null)
86
+ const editorRef = (0, react_1.useRef)(null)
87
+ const computedLanguage = (0, react_1.useRef)(language || defaultLanguage)
88
+ const realLanguage = (0, react_1.useRef)('')
89
+ const unmountedRef = (0, react_1.useRef)(false)
90
+ const changedRef = (0, react_1.useRef)(false)
91
+ const uidRef = (0, react_1.useRef)((0, designable_shared_1.uid)())
92
+ const prefix = (0, designable_react_1.usePrefix)('monaco-input')
93
+ const input = props.value || props.defaultValue
94
+ ;(0, react_1.useEffect)(() => {
95
+ unmountedRef.current = false
96
+ ;(0, config_1.initMonaco)()
97
+ return () => {
98
+ if (extraLibRef.current) {
99
+ extraLibRef.current.dispose()
100
+ }
101
+ unmountedRef.current = true
102
+ }
103
+ }, [])
104
+ ;(0, react_1.useEffect)(() => {
105
+ if (monacoRef.current && props.extraLib) {
106
+ updateExtraLib()
107
+ }
108
+ }, [props.extraLib])
109
+ const updateExtraLib = () => {
110
+ if (extraLibRef.current) {
111
+ extraLibRef.current.dispose()
112
+ }
113
+ extraLibRef.current =
114
+ monacoRef.current.languages.typescript.typescriptDefaults.addExtraLib(
115
+ props.extraLib,
116
+ `${uidRef.current}.d.ts`
117
+ )
118
+ }
119
+ const isFileLanguage = () => {
120
+ const lang = computedLanguage.current
121
+ return lang === 'javascript' || lang === 'typescript'
122
+ }
123
+ const isExpLanguage = () => {
124
+ const lang = computedLanguage.current
125
+ return lang === 'javascript.expression' || lang === 'typescript.expression'
126
+ }
127
+ const renderHelper = () => {
128
+ const getHref = () => {
129
+ if (typeof helpLink === 'string') return helpLink
130
+ if (isFileLanguage()) {
131
+ return 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript'
132
+ }
133
+ if (isExpLanguage()) {
134
+ return 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators'
135
+ }
136
+ }
137
+ if (helpLink === false) return null
138
+ const href = getHref()
139
+ return (
140
+ href &&
141
+ (0, jsx_runtime_1.jsx)(antd_1.Tooltip, {
142
+ title: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, {
143
+ token: 'SettingComponents.MonacoInput.helpDocument',
144
+ }),
145
+ children: (0, jsx_runtime_1.jsx)('div', {
146
+ className: prefix + '-helper',
147
+ children: (0, jsx_runtime_1.jsx)('a', {
148
+ target: '_blank',
149
+ href: href,
150
+ rel: 'noreferrer',
151
+ children: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, {
152
+ infer: 'Help',
153
+ }),
154
+ }),
155
+ }),
156
+ })
157
+ )
158
+ }
159
+ const onMountHandler = (editor, monaco) => {
160
+ editorRef.current = editor
161
+ monacoRef.current = monaco
162
+ onMount?.(editor, monaco)
163
+ const model = editor.getModel()
164
+ const currentValue = editor.getValue()
165
+ model['getDesignerLanguage'] = () => computedLanguage.current
166
+ if (currentValue) {
167
+ ;(0, format_1.format)(computedLanguage.current, currentValue)
168
+ .then((content) => {
169
+ editor.setValue(content)
170
+ setLoaded(true)
171
+ })
172
+ .catch(() => {
173
+ setLoaded(true)
174
+ })
175
+ } else {
176
+ setLoaded(true)
177
+ }
178
+ if (props.extraLib) {
179
+ updateExtraLib()
180
+ }
181
+ editor.onDidChangeModelContent(() => {
182
+ onChangeHandler(editor.getValue())
183
+ })
184
+ }
185
+ const submit = () => {
186
+ clearTimeout(submitRef.current)
187
+ submitRef.current = setTimeout(() => {
188
+ onChange?.(valueRef.current)
189
+ }, 1000)
190
+ }
191
+ const validate = () => {
192
+ if (realLanguage.current === 'typescript') {
193
+ clearTimeout(validateRef.current)
194
+ validateRef.current = setTimeout(() => {
195
+ try {
196
+ if (valueRef.current) {
93
197
  if (isFileLanguage()) {
94
- return 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript';
95
- }
96
- if (isExpLanguage()) {
97
- return 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators';
198
+ ;(0, parser_1.parse)(valueRef.current, {
199
+ sourceType: 'module',
200
+ plugins: ['typescript', 'jsx'],
201
+ })
202
+ } else if (isExpLanguage()) {
203
+ ;(0, parser_1.parseExpression)(valueRef.current, {
204
+ plugins: ['typescript', 'jsx'],
205
+ })
98
206
  }
99
- };
100
- if (helpLink === false)
101
- return null;
102
- const href = getHref();
103
- return (href && ((0, jsx_runtime_1.jsx)(antd_1.Tooltip, { title: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, { token: "SettingComponents.MonacoInput.helpDocument" }), children: (0, jsx_runtime_1.jsx)("div", { className: prefix + '-helper', children: (0, jsx_runtime_1.jsx)("a", { target: "_blank", href: href, rel: "noreferrer", children: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "Help" }) }) }) })));
104
- };
105
- const onMountHandler = (editor, monaco) => {
106
- editorRef.current = editor;
107
- monacoRef.current = monaco;
108
- onMount?.(editor, monaco);
109
- const model = editor.getModel();
110
- const currentValue = editor.getValue();
111
- model['getDesignerLanguage'] = () => computedLanguage.current;
112
- if (currentValue) {
113
- (0, format_1.format)(computedLanguage.current, currentValue)
114
- .then((content) => {
115
- editor.setValue(content);
116
- setLoaded(true);
117
- })
118
- .catch(() => {
119
- setLoaded(true);
120
- });
121
- }
122
- else {
123
- setLoaded(true);
124
- }
125
- if (props.extraLib) {
126
- updateExtraLib();
127
- }
128
- editor.onDidChangeModelContent(() => {
129
- onChangeHandler(editor.getValue());
130
- });
131
- };
132
- const submit = () => {
133
- clearTimeout(submitRef.current);
134
- submitRef.current = setTimeout(() => {
135
- onChange?.(valueRef.current);
136
- }, 1000);
137
- };
138
- const validate = () => {
139
- if (realLanguage.current === 'typescript') {
140
- clearTimeout(validateRef.current);
141
- validateRef.current = setTimeout(() => {
142
- try {
143
- if (valueRef.current) {
144
- if (isFileLanguage()) {
145
- (0, parser_1.parse)(valueRef.current, {
146
- sourceType: 'module',
147
- plugins: ['typescript', 'jsx'],
148
- });
149
- }
150
- else if (isExpLanguage()) {
151
- (0, parser_1.parseExpression)(valueRef.current, {
152
- plugins: ['typescript', 'jsx'],
153
- });
154
- }
155
- }
156
- monacoRef.current.editor.setModelMarkers(editorRef.current.getModel(), computedLanguage.current, []);
157
- declarationRef.current = editorRef.current.deltaDecorations(declarationRef.current, [
158
- {
159
- range: new monacoRef.current.Range(1, 1, 1, 1),
160
- options: {},
161
- },
162
- ]);
163
- submit();
164
- }
165
- catch (e) {
166
- declarationRef.current = editorRef.current.deltaDecorations(declarationRef.current, [
167
- {
168
- range: new monacoRef.current.Range(e.loc.line, e.loc.column, e.loc.line, e.loc.column),
169
- options: {
170
- isWholeLine: true,
171
- glyphMarginClassName: 'monaco-error-highline',
172
- },
173
- },
174
- ]);
175
- monacoRef.current.editor.setModelMarkers(editorRef.current.getModel(), computedLanguage.current, [
176
- {
177
- code: '1003',
178
- severity: 8,
179
- startLineNumber: e.loc.line,
180
- startColumn: e.loc.column,
181
- endLineNumber: e.loc.line,
182
- endColumn: e.loc.column,
183
- message: e.message,
184
- },
185
- ]);
186
- }
187
- }, 240);
188
- }
189
- else {
190
- submit();
191
- declarationRef.current = editorRef.current.deltaDecorations(declarationRef.current, [
192
- {
193
- range: new monacoRef.current.Range(1, 1, 1, 1),
194
- options: {},
207
+ }
208
+ monacoRef.current.editor.setModelMarkers(
209
+ editorRef.current.getModel(),
210
+ computedLanguage.current,
211
+ []
212
+ )
213
+ declarationRef.current = editorRef.current.deltaDecorations(
214
+ declarationRef.current,
215
+ [
216
+ {
217
+ range: new monacoRef.current.Range(1, 1, 1, 1),
218
+ options: {},
219
+ },
220
+ ]
221
+ )
222
+ submit()
223
+ } catch (e) {
224
+ declarationRef.current = editorRef.current.deltaDecorations(
225
+ declarationRef.current,
226
+ [
227
+ {
228
+ range: new monacoRef.current.Range(
229
+ e.loc.line,
230
+ e.loc.column,
231
+ e.loc.line,
232
+ e.loc.column
233
+ ),
234
+ options: {
235
+ isWholeLine: true,
236
+ glyphMarginClassName: 'monaco-error-highline',
195
237
  },
196
- ]);
238
+ },
239
+ ]
240
+ )
241
+ monacoRef.current.editor.setModelMarkers(
242
+ editorRef.current.getModel(),
243
+ computedLanguage.current,
244
+ [
245
+ {
246
+ code: '1003',
247
+ severity: 8,
248
+ startLineNumber: e.loc.line,
249
+ startColumn: e.loc.column,
250
+ endLineNumber: e.loc.line,
251
+ endColumn: e.loc.column,
252
+ message: e.message,
253
+ },
254
+ ]
255
+ )
197
256
  }
198
- };
199
- const onChangeHandler = (value) => {
200
- changedRef.current = true;
201
- valueRef.current = value;
202
- validate();
203
- };
204
- computedLanguage.current = language || defaultLanguage;
205
- realLanguage.current = /(?:javascript|typescript)/gi.test(computedLanguage.current)
206
- ? 'typescript'
207
- : computedLanguage.current;
208
- const renderHelpCode = () => {
209
- if (!helpCode)
210
- return null;
211
- return ((0, jsx_runtime_1.jsx)("div", { className: prefix + '-view', style: { width: helpCodeViewWidth || '50%' }, children: (0, jsx_runtime_1.jsx)(react_2.default, { value: helpCode, theme: theme === 'dark' ? 'monokai' : 'chrome-devtools', defaultLanguage: realLanguage.current, language: realLanguage.current, options: {
212
- ...props.options,
213
- lineNumbers: 'off',
214
- readOnly: true,
215
- glyphMargin: false,
216
- folding: false,
217
- lineDecorationsWidth: 0,
218
- lineNumbersMinChars: 0,
219
- minimap: {
220
- enabled: false,
221
- },
222
- tabSize: 2,
223
- smoothScrolling: true,
224
- scrollbar: {
225
- verticalScrollbarSize: 5,
226
- horizontalScrollbarSize: 5,
227
- alwaysConsumeMouseWheel: false,
228
- },
229
- }, width: "100%", height: "100%" }) }));
230
- };
231
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(prefix, className, {
232
- loaded,
233
- }), style: { width, height }, children: [renderHelper(), (0, jsx_runtime_1.jsx)("div", { className: prefix + '-view', children: (0, jsx_runtime_1.jsx)(react_2.default, { ...props, theme: theme === 'dark' ? 'monokai' : 'chrome-devtools', defaultLanguage: realLanguage.current, language: realLanguage.current, options: {
234
- glyphMargin: true,
235
- ...props.options,
236
- tabSize: 2,
237
- smoothScrolling: true,
238
- scrollbar: {
239
- verticalScrollbarSize: 5,
240
- horizontalScrollbarSize: 5,
241
- alwaysConsumeMouseWheel: false,
242
- },
243
- }, value: input, width: "100%", height: "100%", onMount: onMountHandler }) }), renderHelpCode()] }));
244
- };
245
- exports.MonacoInput = MonacoInput;
246
- exports.MonacoInput.loader = react_2.loader;
257
+ }, 240)
258
+ } else {
259
+ submit()
260
+ declarationRef.current = editorRef.current.deltaDecorations(
261
+ declarationRef.current,
262
+ [
263
+ {
264
+ range: new monacoRef.current.Range(1, 1, 1, 1),
265
+ options: {},
266
+ },
267
+ ]
268
+ )
269
+ }
270
+ }
271
+ const onChangeHandler = (value) => {
272
+ changedRef.current = true
273
+ valueRef.current = value
274
+ validate()
275
+ }
276
+ computedLanguage.current = language || defaultLanguage
277
+ realLanguage.current = /(?:javascript|typescript)/gi.test(
278
+ computedLanguage.current
279
+ )
280
+ ? 'typescript'
281
+ : computedLanguage.current
282
+ const renderHelpCode = () => {
283
+ if (!helpCode) return null
284
+ return (0, jsx_runtime_1.jsx)('div', {
285
+ className: prefix + '-view',
286
+ style: { width: helpCodeViewWidth || '50%' },
287
+ children: (0, jsx_runtime_1.jsx)(react_2.default, {
288
+ value: helpCode,
289
+ theme: theme === 'dark' ? 'monokai' : 'chrome-devtools',
290
+ defaultLanguage: realLanguage.current,
291
+ language: realLanguage.current,
292
+ options: {
293
+ ...props.options,
294
+ lineNumbers: 'off',
295
+ readOnly: true,
296
+ glyphMargin: false,
297
+ folding: false,
298
+ lineDecorationsWidth: 0,
299
+ lineNumbersMinChars: 0,
300
+ minimap: {
301
+ enabled: false,
302
+ },
303
+ tabSize: 2,
304
+ smoothScrolling: true,
305
+ scrollbar: {
306
+ verticalScrollbarSize: 5,
307
+ horizontalScrollbarSize: 5,
308
+ alwaysConsumeMouseWheel: false,
309
+ },
310
+ },
311
+ width: '100%',
312
+ height: '100%',
313
+ }),
314
+ })
315
+ }
316
+ return (0, jsx_runtime_1.jsxs)('div', {
317
+ className: (0, classnames_1.default)(prefix, className, {
318
+ loaded,
319
+ }),
320
+ style: { width, height },
321
+ children: [
322
+ renderHelper(),
323
+ (0, jsx_runtime_1.jsx)('div', {
324
+ className: prefix + '-view',
325
+ children: (0, jsx_runtime_1.jsx)(react_2.default, {
326
+ ...props,
327
+ theme: theme === 'dark' ? 'monokai' : 'chrome-devtools',
328
+ defaultLanguage: realLanguage.current,
329
+ language: realLanguage.current,
330
+ options: {
331
+ glyphMargin: true,
332
+ ...props.options,
333
+ tabSize: 2,
334
+ smoothScrolling: true,
335
+ scrollbar: {
336
+ verticalScrollbarSize: 5,
337
+ horizontalScrollbarSize: 5,
338
+ alwaysConsumeMouseWheel: false,
339
+ },
340
+ },
341
+ value: input,
342
+ width: '100%',
343
+ height: '100%',
344
+ onMount: onMountHandler,
345
+ }),
346
+ }),
347
+ renderHelpCode(),
348
+ ],
349
+ })
350
+ }
351
+ exports.MonacoInput = MonacoInput
352
+ exports.MonacoInput.loader = react_2.loader