@opensumi/ide-debug 2.24.6-next-1686045771.0 → 2.24.6

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 (238) hide show
  1. package/lib/browser/breakpoint/breakpoint-manager.d.ts +3 -4
  2. package/lib/browser/breakpoint/breakpoint-manager.d.ts.map +1 -1
  3. package/lib/browser/breakpoint/breakpoint-manager.js +0 -7
  4. package/lib/browser/breakpoint/breakpoint-manager.js.map +1 -1
  5. package/lib/browser/components/floating-click-widget/index.d.ts.map +1 -1
  6. package/lib/browser/components/floating-click-widget/index.js +2 -3
  7. package/lib/browser/components/floating-click-widget/index.js.map +1 -1
  8. package/lib/browser/components/floating-click-widget/index.module.less +0 -4
  9. package/lib/browser/contextkeys/debug-contextkey.service.d.ts +0 -1
  10. package/lib/browser/contextkeys/debug-contextkey.service.d.ts.map +1 -1
  11. package/lib/browser/contextkeys/debug-contextkey.service.js +1 -2
  12. package/lib/browser/contextkeys/debug-contextkey.service.js.map +1 -1
  13. package/lib/browser/debug-configuration-manager.d.ts +0 -6
  14. package/lib/browser/debug-configuration-manager.d.ts.map +1 -1
  15. package/lib/browser/debug-configuration-manager.js +17 -64
  16. package/lib/browser/debug-configuration-manager.js.map +1 -1
  17. package/lib/browser/debug-contribution.d.ts.map +1 -1
  18. package/lib/browser/debug-contribution.js +7 -53
  19. package/lib/browser/debug-contribution.js.map +1 -1
  20. package/lib/browser/{debug-schema-manager.d.ts → debug-schema-updater.d.ts} +2 -2
  21. package/lib/browser/debug-schema-updater.d.ts.map +1 -0
  22. package/lib/browser/{debug-schema-manager.js → debug-schema-updater.js} +10 -10
  23. package/lib/browser/debug-schema-updater.js.map +1 -0
  24. package/lib/browser/debug-style.less +5 -34
  25. package/lib/browser/debugUtils.d.ts +0 -1
  26. package/lib/browser/debugUtils.d.ts.map +1 -1
  27. package/lib/browser/debugUtils.js +1 -22
  28. package/lib/browser/debugUtils.js.map +1 -1
  29. package/lib/browser/editor/debug-hover-model.d.ts +3 -0
  30. package/lib/browser/editor/debug-hover-model.d.ts.map +1 -1
  31. package/lib/browser/editor/debug-hover-model.js +5 -0
  32. package/lib/browser/editor/debug-hover-model.js.map +1 -1
  33. package/lib/browser/editor/debug-hover-tree.model.service.d.ts.map +1 -1
  34. package/lib/browser/editor/debug-hover-tree.model.service.js +9 -0
  35. package/lib/browser/editor/debug-hover-tree.model.service.js.map +1 -1
  36. package/lib/browser/editor/debug-model.d.ts +0 -2
  37. package/lib/browser/editor/debug-model.d.ts.map +1 -1
  38. package/lib/browser/editor/debug-model.js +2 -31
  39. package/lib/browser/editor/debug-model.js.map +1 -1
  40. package/lib/browser/editor/debug-styles.d.ts +0 -1
  41. package/lib/browser/editor/debug-styles.d.ts.map +1 -1
  42. package/lib/browser/editor/debug-styles.js +1 -7
  43. package/lib/browser/editor/debug-styles.js.map +1 -1
  44. package/lib/browser/index.d.ts.map +1 -1
  45. package/lib/browser/index.js +0 -5
  46. package/lib/browser/index.js.map +1 -1
  47. package/lib/browser/preferences/launch-preferences-contribution.d.ts +2 -14
  48. package/lib/browser/preferences/launch-preferences-contribution.d.ts.map +1 -1
  49. package/lib/browser/preferences/launch-preferences-contribution.js +2 -61
  50. package/lib/browser/preferences/launch-preferences-contribution.js.map +1 -1
  51. package/lib/browser/view/breakpoints/debug-breakpoints.module.less +8 -64
  52. package/lib/browser/view/breakpoints/debug-breakpoints.service.d.ts +1 -10
  53. package/lib/browser/view/breakpoints/debug-breakpoints.service.d.ts.map +1 -1
  54. package/lib/browser/view/breakpoints/debug-breakpoints.service.js +0 -5
  55. package/lib/browser/view/breakpoints/debug-breakpoints.service.js.map +1 -1
  56. package/lib/browser/view/breakpoints/debug-breakpoints.view.d.ts +0 -7
  57. package/lib/browser/view/breakpoints/debug-breakpoints.view.d.ts.map +1 -1
  58. package/lib/browser/view/breakpoints/debug-breakpoints.view.js +26 -80
  59. package/lib/browser/view/breakpoints/debug-breakpoints.view.js.map +1 -1
  60. package/lib/browser/view/configuration/debug-configuration.service.d.ts +0 -1
  61. package/lib/browser/view/configuration/debug-configuration.service.d.ts.map +1 -1
  62. package/lib/browser/view/configuration/debug-configuration.service.js +0 -3
  63. package/lib/browser/view/configuration/debug-configuration.service.js.map +1 -1
  64. package/lib/browser/view/console/debug-console-model.d.ts +3 -0
  65. package/lib/browser/view/console/debug-console-model.d.ts.map +1 -1
  66. package/lib/browser/view/console/debug-console-model.js +5 -0
  67. package/lib/browser/view/console/debug-console-model.js.map +1 -1
  68. package/lib/browser/view/console/debug-console-tree.model.service.d.ts.map +1 -1
  69. package/lib/browser/view/console/debug-console-tree.model.service.js +9 -0
  70. package/lib/browser/view/console/debug-console-tree.model.service.js.map +1 -1
  71. package/lib/browser/view/variables/debug-variables-model.d.ts +3 -0
  72. package/lib/browser/view/variables/debug-variables-model.d.ts.map +1 -1
  73. package/lib/browser/view/variables/debug-variables-model.js +5 -0
  74. package/lib/browser/view/variables/debug-variables-model.js.map +1 -1
  75. package/lib/browser/view/variables/debug-variables-tree.model.service.d.ts.map +1 -1
  76. package/lib/browser/view/variables/debug-variables-tree.model.service.js +9 -0
  77. package/lib/browser/view/variables/debug-variables-tree.model.service.js.map +1 -1
  78. package/lib/browser/view/watch/debug-watch-model.d.ts +3 -0
  79. package/lib/browser/view/watch/debug-watch-model.d.ts.map +1 -1
  80. package/lib/browser/view/watch/debug-watch-model.js +5 -0
  81. package/lib/browser/view/watch/debug-watch-model.js.map +1 -1
  82. package/lib/browser/view/watch/debug-watch-tree.model.service.d.ts.map +1 -1
  83. package/lib/browser/view/watch/debug-watch-tree.model.service.js +9 -0
  84. package/lib/browser/view/watch/debug-watch-tree.model.service.js.map +1 -1
  85. package/lib/common/commands.d.ts +0 -2
  86. package/lib/common/commands.d.ts.map +1 -1
  87. package/lib/common/commands.js +0 -6
  88. package/lib/common/commands.js.map +1 -1
  89. package/lib/common/constants.d.ts +0 -3
  90. package/lib/common/constants.d.ts.map +1 -1
  91. package/lib/common/constants.js +2 -5
  92. package/lib/common/constants.js.map +1 -1
  93. package/lib/common/debug-schema-updater.d.ts +3 -0
  94. package/lib/common/debug-schema-updater.d.ts.map +1 -0
  95. package/lib/common/debug-schema-updater.js +5 -0
  96. package/lib/common/debug-schema-updater.js.map +1 -0
  97. package/lib/common/debug-service.d.ts +0 -10
  98. package/lib/common/debug-service.d.ts.map +1 -1
  99. package/lib/common/debug-service.js +1 -8
  100. package/lib/common/debug-service.js.map +1 -1
  101. package/lib/common/index.d.ts +1 -1
  102. package/lib/common/index.d.ts.map +1 -1
  103. package/lib/common/index.js +1 -1
  104. package/lib/common/index.js.map +1 -1
  105. package/package.json +23 -26
  106. package/src/browser/breakpoint/breakpoint-manager.ts +3 -8
  107. package/src/browser/components/floating-click-widget/index.module.less +0 -4
  108. package/src/browser/components/floating-click-widget/index.tsx +1 -4
  109. package/src/browser/contextkeys/debug-contextkey.service.ts +1 -4
  110. package/src/browser/debug-configuration-manager.ts +18 -82
  111. package/src/browser/debug-contribution.ts +8 -59
  112. package/src/browser/{debug-schema-manager.ts → debug-schema-updater.ts} +4 -5
  113. package/src/browser/debug-style.less +5 -34
  114. package/src/browser/debugUtils.ts +0 -23
  115. package/src/browser/editor/debug-hover-model.ts +6 -0
  116. package/src/browser/editor/debug-hover-tree.model.service.ts +10 -0
  117. package/src/browser/editor/debug-model.ts +3 -35
  118. package/src/browser/editor/debug-styles.ts +0 -7
  119. package/src/browser/index.ts +0 -6
  120. package/src/browser/preferences/launch-preferences-contribution.ts +3 -84
  121. package/src/browser/view/breakpoints/debug-breakpoints.module.less +8 -64
  122. package/src/browser/view/breakpoints/debug-breakpoints.service.ts +0 -8
  123. package/src/browser/view/breakpoints/debug-breakpoints.view.tsx +32 -139
  124. package/src/browser/view/configuration/debug-configuration.service.ts +0 -4
  125. package/src/browser/view/console/debug-console-model.ts +6 -0
  126. package/src/browser/view/console/debug-console-tree.model.service.ts +10 -0
  127. package/src/browser/view/variables/debug-variables-model.ts +6 -0
  128. package/src/browser/view/variables/debug-variables-tree.model.service.ts +10 -0
  129. package/src/browser/view/watch/debug-watch-model.ts +6 -0
  130. package/src/browser/view/watch/debug-watch-tree.model.service.ts +10 -0
  131. package/src/common/commands.ts +0 -6
  132. package/src/common/constants.ts +0 -5
  133. package/src/common/debug-schema-updater.ts +3 -0
  134. package/src/common/debug-service.ts +0 -13
  135. package/src/common/index.ts +1 -1
  136. package/lib/browser/debug-schema-manager.d.ts.map +0 -1
  137. package/lib/browser/debug-schema-manager.js.map +0 -1
  138. package/lib/browser/preferences/components/checkbox-widget.d.ts +0 -4
  139. package/lib/browser/preferences/components/checkbox-widget.d.ts.map +0 -1
  140. package/lib/browser/preferences/components/checkbox-widget.js +0 -27
  141. package/lib/browser/preferences/components/checkbox-widget.js.map +0 -1
  142. package/lib/browser/preferences/components/fields/any-of-field.d.ts +0 -4
  143. package/lib/browser/preferences/components/fields/any-of-field.d.ts.map +0 -1
  144. package/lib/browser/preferences/components/fields/any-of-field.js +0 -28
  145. package/lib/browser/preferences/components/fields/any-of-field.js.map +0 -1
  146. package/lib/browser/preferences/components/fields/array-field.d.ts +0 -5
  147. package/lib/browser/preferences/components/fields/array-field.d.ts.map +0 -1
  148. package/lib/browser/preferences/components/fields/array-field.js +0 -19
  149. package/lib/browser/preferences/components/fields/array-field.js.map +0 -1
  150. package/lib/browser/preferences/components/fields/object-filed.d.ts +0 -5
  151. package/lib/browser/preferences/components/fields/object-filed.d.ts.map +0 -1
  152. package/lib/browser/preferences/components/fields/object-filed.js +0 -26
  153. package/lib/browser/preferences/components/fields/object-filed.js.map +0 -1
  154. package/lib/browser/preferences/components/fields/title-field.d.ts +0 -4
  155. package/lib/browser/preferences/components/fields/title-field.d.ts.map +0 -1
  156. package/lib/browser/preferences/components/fields/title-field.js +0 -12
  157. package/lib/browser/preferences/components/fields/title-field.js.map +0 -1
  158. package/lib/browser/preferences/components/json-widget.module.less +0 -36
  159. package/lib/browser/preferences/components/select-widget.d.ts +0 -4
  160. package/lib/browser/preferences/components/select-widget.d.ts.map +0 -1
  161. package/lib/browser/preferences/components/select-widget.js +0 -28
  162. package/lib/browser/preferences/components/select-widget.js.map +0 -1
  163. package/lib/browser/preferences/components/text-widget.d.ts +0 -4
  164. package/lib/browser/preferences/components/text-widget.d.ts.map +0 -1
  165. package/lib/browser/preferences/components/text-widget.js +0 -41
  166. package/lib/browser/preferences/components/text-widget.js.map +0 -1
  167. package/lib/browser/preferences/launch.module.less +0 -102
  168. package/lib/browser/preferences/launch.service.d.ts +0 -31
  169. package/lib/browser/preferences/launch.service.d.ts.map +0 -1
  170. package/lib/browser/preferences/launch.service.js +0 -109
  171. package/lib/browser/preferences/launch.service.js.map +0 -1
  172. package/lib/browser/preferences/launch.view.d.ts +0 -3
  173. package/lib/browser/preferences/launch.view.d.ts.map +0 -1
  174. package/lib/browser/preferences/launch.view.js +0 -287
  175. package/lib/browser/preferences/launch.view.js.map +0 -1
  176. package/lib/browser/preferences/model/configuration-items.d.ts +0 -12
  177. package/lib/browser/preferences/model/configuration-items.d.ts.map +0 -1
  178. package/lib/browser/preferences/model/configuration-items.js +0 -22
  179. package/lib/browser/preferences/model/configuration-items.js.map +0 -1
  180. package/lib/browser/preferences/templates/additional-template.d.ts +0 -4
  181. package/lib/browser/preferences/templates/additional-template.d.ts.map +0 -1
  182. package/lib/browser/preferences/templates/additional-template.js +0 -30
  183. package/lib/browser/preferences/templates/additional-template.js.map +0 -1
  184. package/lib/browser/preferences/templates/array-field-item-template.d.ts +0 -4
  185. package/lib/browser/preferences/templates/array-field-item-template.d.ts.map +0 -1
  186. package/lib/browser/preferences/templates/array-field-item-template.js +0 -31
  187. package/lib/browser/preferences/templates/array-field-item-template.js.map +0 -1
  188. package/lib/browser/preferences/templates/array-field-template.d.ts +0 -4
  189. package/lib/browser/preferences/templates/array-field-template.d.ts.map +0 -1
  190. package/lib/browser/preferences/templates/array-field-template.js +0 -31
  191. package/lib/browser/preferences/templates/array-field-template.js.map +0 -1
  192. package/lib/browser/preferences/templates/base-input-template.d.ts +0 -4
  193. package/lib/browser/preferences/templates/base-input-template.d.ts.map +0 -1
  194. package/lib/browser/preferences/templates/base-input-template.js +0 -29
  195. package/lib/browser/preferences/templates/base-input-template.js.map +0 -1
  196. package/lib/browser/preferences/templates/button-template.d.ts +0 -12
  197. package/lib/browser/preferences/templates/button-template.d.ts.map +0 -1
  198. package/lib/browser/preferences/templates/button-template.js +0 -71
  199. package/lib/browser/preferences/templates/button-template.js.map +0 -1
  200. package/lib/browser/preferences/templates/description-field-template.d.ts +0 -4
  201. package/lib/browser/preferences/templates/description-field-template.d.ts.map +0 -1
  202. package/lib/browser/preferences/templates/description-field-template.js +0 -16
  203. package/lib/browser/preferences/templates/description-field-template.js.map +0 -1
  204. package/lib/browser/preferences/templates/field-template.d.ts +0 -4
  205. package/lib/browser/preferences/templates/field-template.d.ts.map +0 -1
  206. package/lib/browser/preferences/templates/field-template.js +0 -19
  207. package/lib/browser/preferences/templates/field-template.js.map +0 -1
  208. package/lib/browser/preferences/templates/json-templates.module.less +0 -133
  209. package/lib/browser/preferences/templates/object-field-template.d.ts +0 -4
  210. package/lib/browser/preferences/templates/object-field-template.d.ts.map +0 -1
  211. package/lib/browser/preferences/templates/object-field-template.js +0 -74
  212. package/lib/browser/preferences/templates/object-field-template.js.map +0 -1
  213. package/lib/common/debug-schema.d.ts +0 -5
  214. package/lib/common/debug-schema.d.ts.map +0 -1
  215. package/lib/common/debug-schema.js +0 -7
  216. package/lib/common/debug-schema.js.map +0 -1
  217. package/src/browser/preferences/components/checkbox-widget.tsx +0 -78
  218. package/src/browser/preferences/components/fields/any-of-field.tsx +0 -90
  219. package/src/browser/preferences/components/fields/array-field.tsx +0 -25
  220. package/src/browser/preferences/components/fields/object-filed.tsx +0 -33
  221. package/src/browser/preferences/components/fields/title-field.tsx +0 -16
  222. package/src/browser/preferences/components/json-widget.module.less +0 -36
  223. package/src/browser/preferences/components/select-widget.tsx +0 -68
  224. package/src/browser/preferences/components/text-widget.tsx +0 -114
  225. package/src/browser/preferences/launch.module.less +0 -102
  226. package/src/browser/preferences/launch.service.ts +0 -133
  227. package/src/browser/preferences/launch.view.tsx +0 -494
  228. package/src/browser/preferences/model/configuration-items.ts +0 -24
  229. package/src/browser/preferences/templates/additional-template.tsx +0 -77
  230. package/src/browser/preferences/templates/array-field-item-template.tsx +0 -90
  231. package/src/browser/preferences/templates/array-field-template.tsx +0 -92
  232. package/src/browser/preferences/templates/base-input-template.tsx +0 -79
  233. package/src/browser/preferences/templates/button-template.tsx +0 -107
  234. package/src/browser/preferences/templates/description-field-template.tsx +0 -29
  235. package/src/browser/preferences/templates/field-template.tsx +0 -71
  236. package/src/browser/preferences/templates/json-templates.module.less +0 -133
  237. package/src/browser/preferences/templates/object-field-template.tsx +0 -156
  238. package/src/common/debug-schema.ts +0 -5
@@ -1,92 +0,0 @@
1
- import {
2
- getTemplate,
3
- getUiOptions,
4
- ArrayFieldTemplateProps,
5
- ArrayFieldTemplateItemType,
6
- FormContextType,
7
- RJSFSchema,
8
- StrictRJSFSchema,
9
- } from '@rjsf/utils';
10
- import cls from 'classnames';
11
- import React from 'react';
12
-
13
- import styles from './json-templates.module.less';
14
-
15
- export const ArrayFieldTemplate = <T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
16
- props: ArrayFieldTemplateProps<T, S, F>,
17
- ) => {
18
- const {
19
- canAdd,
20
- className,
21
- disabled,
22
- formContext,
23
- idSchema,
24
- items,
25
- onAddClick,
26
- readonly,
27
- registry,
28
- required,
29
- schema,
30
- title,
31
- uiSchema,
32
- } = props;
33
- const uiOptions = getUiOptions<T, S, F>(uiSchema);
34
- const ArrayFieldDescriptionTemplate = getTemplate<'ArrayFieldDescriptionTemplate', T, S, F>(
35
- 'ArrayFieldDescriptionTemplate',
36
- registry,
37
- uiOptions,
38
- );
39
- const ArrayFieldItemTemplate = getTemplate<'ArrayFieldItemTemplate', T, S, F>(
40
- 'ArrayFieldItemTemplate',
41
- registry,
42
- uiOptions,
43
- );
44
- const ArrayFieldTitleTemplate = getTemplate<'ArrayFieldTitleTemplate', T, S, F>(
45
- 'ArrayFieldTitleTemplate',
46
- registry,
47
- uiOptions,
48
- );
49
- const {
50
- ButtonTemplates: { AddButton },
51
- } = registry.templates;
52
-
53
- return (
54
- <fieldset className={cls(className)} id={idSchema.$id}>
55
- <div className={styles.array_field_template}>
56
- {(uiOptions.title || title) && (
57
- <div className={styles.array_item_label}>
58
- <ArrayFieldTitleTemplate
59
- idSchema={idSchema}
60
- required={required}
61
- title={uiOptions.title || title}
62
- schema={schema}
63
- uiSchema={uiSchema}
64
- registry={registry}
65
- />
66
- </div>
67
- )}
68
- {(uiOptions.description || schema.description) && (
69
- <div className={styles.array_item_description}>
70
- <ArrayFieldDescriptionTemplate
71
- description={uiOptions.description || schema.description}
72
- idSchema={idSchema}
73
- schema={schema}
74
- uiSchema={uiSchema}
75
- registry={registry}
76
- />
77
- </div>
78
- )}
79
- {items &&
80
- items.map(({ key, ...itemProps }: ArrayFieldTemplateItemType<T, S, F>) => (
81
- <ArrayFieldItemTemplate key={key} {...itemProps} />
82
- ))}
83
-
84
- {canAdd && (
85
- <div className={styles.array_item_add}>
86
- <AddButton disabled={disabled || readonly} onClick={onAddClick} registry={registry} />
87
- </div>
88
- )}
89
- </div>
90
- </fieldset>
91
- );
92
- };
@@ -1,79 +0,0 @@
1
- import {
2
- ariaDescribedByIds,
3
- BaseInputTemplateProps,
4
- examplesId,
5
- getInputProps,
6
- FormContextType,
7
- GenericObjectType,
8
- RJSFSchema,
9
- StrictRJSFSchema,
10
- } from '@rjsf/utils';
11
- import React, { ChangeEvent, FocusEvent } from 'react';
12
-
13
- import { Input } from '@opensumi/ide-components';
14
-
15
- const INPUT_STYLE = {
16
- width: '100%',
17
- };
18
-
19
- export const BaseInputTemplate = <T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
20
- props: BaseInputTemplateProps<T, S, F>,
21
- ) => {
22
- const {
23
- disabled,
24
- formContext,
25
- id,
26
- onBlur,
27
- onChange,
28
- onChangeOverride,
29
- onFocus,
30
- options,
31
- placeholder,
32
- readonly,
33
- schema,
34
- value,
35
- type,
36
- } = props;
37
- const inputProps = getInputProps<T, S, F>(schema, type, options, false);
38
- const { readonlyAsDisabled = true } = formContext as GenericObjectType;
39
-
40
- const handleNumberChange = (nextValue: number | null) => onChange(nextValue);
41
-
42
- const handleTextChange = onChangeOverride
43
- ? onChangeOverride
44
- : ({ target }: ChangeEvent<HTMLInputElement>) => onChange(target.value === '' ? options.emptyValue : target.value);
45
-
46
- const handleBlur = ({ target }: FocusEvent<HTMLInputElement>) => onBlur(id, target.value);
47
-
48
- const handleFocus = ({ target }: FocusEvent<HTMLInputElement>) => onFocus(id, target.value);
49
-
50
- const input = (
51
- <Input
52
- disabled={disabled || (readonlyAsDisabled && readonly)}
53
- id={id}
54
- name={id}
55
- onBlur={!readonly ? handleBlur : undefined}
56
- onChange={!readonly ? handleTextChange : undefined}
57
- onFocus={!readonly ? handleFocus : undefined}
58
- placeholder={placeholder}
59
- style={INPUT_STYLE}
60
- list={schema.examples ? examplesId<T>(id) : undefined}
61
- {...inputProps}
62
- value={value}
63
- aria-describedby={ariaDescribedByIds<T>(id, !!schema.examples)}
64
- />
65
- );
66
-
67
- return (
68
- <>
69
- {input}
70
- {Array.isArray(schema.examples) && (
71
- <datalist id={examplesId<T>(id)}>
72
- {(schema.examples as string[])
73
- .concat(schema.default && !schema.examples.includes(schema.default) ? ([schema.default] as string[]) : [])
74
- .map((example) => <option key={example} value={example} />)}
75
- </datalist>
76
- )}
77
- </>
78
- );
79
- };
@@ -1,107 +0,0 @@
1
- import { IconButtonProps, SubmitButtonProps } from '@rjsf/utils';
2
- import React, { useCallback, useEffect, useMemo } from 'react';
3
-
4
- import { Button, ButtonProps, getIcon } from '@opensumi/ide-components';
5
- import { defaultIconfont } from '@opensumi/ide-components/lib/icon/iconfont/iconMap';
6
- import { useInjectable } from '@opensumi/ide-core-browser';
7
- import { MenuActionList } from '@opensumi/ide-core-browser/lib/components/actions/index';
8
- import { MenuNode } from '@opensumi/ide-core-browser/lib/menu/next/base';
9
- import { LabelMenuItemNode } from '@opensumi/ide-core-browser/lib/menu/next/menu.interface';
10
- import { Disposable, localize } from '@opensumi/ide-core-common';
11
-
12
- import { ILaunchService } from '../../../common';
13
- import { LaunchService } from '../launch.service';
14
-
15
- import styles from './json-templates.module.less';
16
-
17
- export const MoveUpButton = (props: IconButtonProps) => (
18
- <Button {...props} type='primary' icon={defaultIconfont.arrowup}>
19
- <span className={getIcon(defaultIconfont.arrowup)}></span>
20
- </Button>
21
- );
22
-
23
- export const MoveDownButton = (props: IconButtonProps) => (
24
- <Button {...props} type='primary' icon={defaultIconfont.arrowdown}>
25
- <span className={getIcon(defaultIconfont.arrowdown)}></span>
26
- </Button>
27
- );
28
-
29
- export const RemoveButton = (props: IconButtonProps) => (
30
- <Button {...props} type='danger' icon={defaultIconfont.delete}>
31
- <span className={getIcon(defaultIconfont.delete)}></span>
32
- </Button>
33
- );
34
-
35
- export const AddButton = (props: IconButtonProps) => (
36
- <Button {...props} type='primary' icon={defaultIconfont.plus}>
37
- <span className={getIcon(defaultIconfont.plus)}></span> {localize('debug.launch.view.template.button.addItem')}
38
- </Button>
39
- );
40
-
41
- export const CopyButton = (props: IconButtonProps) => (
42
- <Button {...props} type='primary' icon={defaultIconfont['file-copy']}>
43
- <span className={getIcon(defaultIconfont['file-copy'])}></span>
44
- </Button>
45
- );
46
-
47
- export const AddItemButton = (props: SubmitButtonProps & { onAddClick: (item: LabelMenuItemNode) => void }) => {
48
- const {
49
- registry: { rootSchema },
50
- onAddClick,
51
- } = props;
52
- const launchService = useInjectable<LaunchService>(ILaunchService);
53
- const [menuOpen, setMenuOpen] = React.useState<boolean>(false);
54
- const [snippetMenu, setSnippetMenu] = React.useState<MenuNode[]>([]);
55
- const { rawSchemaProperties: schemaProperties } = launchService;
56
-
57
- const handleVisibleChange = useCallback((visible: boolean) => setMenuOpen(visible), []);
58
-
59
- const handleMenuItemClick = useCallback((item: LabelMenuItemNode) => {
60
- setMenuOpen(false);
61
- onAddClick(item);
62
- }, []);
63
-
64
- const handleSnippetMenu = useCallback(() => {
65
- const { properties } = schemaProperties;
66
- const { properties: existedProperties } = rootSchema;
67
-
68
- if (!properties || !existedProperties) {
69
- return;
70
- }
71
- // schema
72
- const menuItemNode = Object.keys(properties)
73
- // 过滤已存在于视图中的 properties
74
- .filter((key) => !Object.hasOwn(existedProperties, key))
75
- .map((item) => new LabelMenuItemNode(item));
76
-
77
- setSnippetMenu(menuItemNode);
78
- }, [rootSchema, schemaProperties]);
79
-
80
- useEffect(() => {
81
- const disposable = new Disposable();
82
-
83
- disposable.addDispose(
84
- launchService.onChangeSchema(() => {
85
- requestAnimationFrame(() => {
86
- handleSnippetMenu();
87
- });
88
- }),
89
- );
90
- handleSnippetMenu();
91
-
92
- return () => disposable.dispose();
93
- }, [schemaProperties, rootSchema]);
94
-
95
- return (
96
- <Button
97
- type='secondary'
98
- icon={defaultIconfont.plus}
99
- className={styles.add_new_field}
100
- menu={<MenuActionList afterClick={handleMenuItemClick} data={snippetMenu} style={{ maxHeight: 600 }} />}
101
- moreVisible={menuOpen}
102
- onVisibleChange={handleVisibleChange}
103
- >
104
- <span className={getIcon(defaultIconfont.plus)}></span> {localize('debug.launch.view.template.button.submit')}
105
- </Button>
106
- );
107
- };
@@ -1,29 +0,0 @@
1
- import { DescriptionFieldProps, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
2
- import React, { useMemo } from 'react';
3
-
4
- import { IJSONSchema } from '@opensumi/ide-core-common';
5
-
6
- import styles from './json-templates.module.less';
7
-
8
- export const DescriptionFieldTemplate = <
9
- T = any,
10
- S extends StrictRJSFSchema = RJSFSchema,
11
- F extends FormContextType = any,
12
- >(
13
- props: DescriptionFieldProps<T, S, F>,
14
- ) => {
15
- const { id, schema } = props;
16
- const description = useMemo(
17
- () => schema.description ?? (schema as IJSONSchema).markdownDescription,
18
- [schema, schema.description, (schema as IJSONSchema).markdownDescription],
19
- );
20
-
21
- if (!description) {
22
- return null;
23
- }
24
- return (
25
- <span id={id} className={styles.description_field_template}>
26
- {description}
27
- </span>
28
- );
29
- };
@@ -1,71 +0,0 @@
1
- import {
2
- FieldTemplateProps,
3
- FormContextType,
4
- GenericObjectType,
5
- getTemplate,
6
- getUiOptions,
7
- RJSFSchema,
8
- StrictRJSFSchema,
9
- } from '@rjsf/utils';
10
- import cls from 'classnames';
11
- import React from 'react';
12
-
13
- export const FieldTemplate = <T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
14
- props: FieldTemplateProps<T, S, F>,
15
- ) => {
16
- const {
17
- classNames,
18
- style,
19
- children,
20
- id,
21
- schema,
22
- label,
23
- hidden,
24
- formContext,
25
- uiSchema,
26
- registry,
27
- disabled,
28
- onDropPropertyClick,
29
- onKeyChange,
30
- required,
31
- readonly,
32
- } = props;
33
-
34
- const { wrapperStyle } = formContext as GenericObjectType;
35
-
36
- const uiOptions = getUiOptions<T, S, F>(uiSchema);
37
- const WrapIfAdditionalTemplate = getTemplate<'WrapIfAdditionalTemplate', T, S, F>(
38
- 'WrapIfAdditionalTemplate',
39
- registry,
40
- uiOptions,
41
- );
42
-
43
- if (hidden) {
44
- return null;
45
- }
46
-
47
- return (
48
- <WrapIfAdditionalTemplate
49
- classNames={classNames}
50
- style={style}
51
- disabled={disabled}
52
- id={id}
53
- label={label}
54
- onDropPropertyClick={onDropPropertyClick}
55
- onKeyChange={onKeyChange}
56
- readonly={readonly}
57
- required={required}
58
- schema={schema}
59
- uiSchema={uiSchema}
60
- registry={registry}
61
- >
62
- {id === 'root' ? (
63
- children
64
- ) : (
65
- <div className={cls(classNames)} style={wrapperStyle}>
66
- {children}
67
- </div>
68
- )}
69
- </WrapIfAdditionalTemplate>
70
- );
71
- };
@@ -1,133 +0,0 @@
1
- .array_field_item_template {
2
- display: flex;
3
- align-items: center;
4
- margin-bottom: 8px;
5
-
6
- .control_field {
7
- margin-right: 8px;
8
- min-width: 180px;
9
- }
10
-
11
- .toolbar {
12
- button {
13
- border-radius: 0;
14
- }
15
- }
16
- }
17
-
18
- .field_template {
19
- display: flex;
20
- flex-direction: column;
21
- }
22
-
23
- .array_field_template {
24
- display: flex;
25
- flex-direction: column;
26
-
27
- .array_item_description {
28
- margin-bottom: 8px;
29
- }
30
- }
31
-
32
- .object_field_template {
33
- .object_field_container {
34
- .root_property_wrapper {
35
- margin-bottom: 0;
36
- }
37
-
38
- &.root_object_field_container {
39
- margin-bottom: 16px;
40
-
41
- > .object_title {
42
- padding-left: 16px;
43
- }
44
-
45
- .root_property_wrapper {
46
- padding: 16px;
47
- position: relative;
48
-
49
- .wrapper_delete {
50
- display: none;
51
- position: absolute;
52
- cursor: pointer;
53
- right: 16px;
54
- top: 16px;
55
-
56
- .close_icon {
57
- font-size: 21px;
58
- color: var(--kt-dangerButton-background);
59
- }
60
- }
61
-
62
- &:hover {
63
- background-color: var(--kt-tree-hoverBackground);
64
-
65
- .wrapper_delete {
66
- display: block;
67
- }
68
- }
69
- }
70
- }
71
- }
72
- }
73
-
74
- .description_field_template {
75
- display: inline-block;
76
- margin-bottom: 10px;
77
- font-size: 14px;
78
- opacity: 0.75;
79
- white-space: pre-wrap;
80
- color: var(--descriptionForeground);
81
- }
82
-
83
- .add_new_field {
84
- min-width: 300px;
85
- max-width: 500px;
86
- width: 100%;
87
- border-style: dashed;
88
- margin-left: 16px;
89
- }
90
-
91
- .additional_field_template {
92
- display: flex;
93
- flex-direction: column;
94
-
95
- .form_additional_container {
96
- display: flex;
97
- min-width: 300px;
98
- max-width: 500px;
99
- width: 100%;
100
- margin-bottom: 8px;
101
-
102
- .form_additional_children {
103
- label[class*='field_label'] {
104
- display: none;
105
- }
106
- }
107
-
108
- .form_additional,
109
- .form_additional_children {
110
- margin-right: 16px;
111
- }
112
- }
113
-
114
- .children_field {
115
- position: relative;
116
-
117
- .object_title,
118
- .object_description {
119
- display: none;
120
- }
121
-
122
- .dividing {
123
- width: 2px;
124
- background-color: var(--editorGroup-border);
125
- height: 100%;
126
- position: absolute;
127
- }
128
-
129
- .children_container {
130
- margin-left: 16px;
131
- }
132
- }
133
- }
@@ -1,156 +0,0 @@
1
- import {
2
- ObjectFieldTemplateProps,
3
- StrictRJSFSchema,
4
- RJSFSchema,
5
- FormContextType,
6
- getTemplate,
7
- getUiOptions,
8
- descriptionId,
9
- canExpand,
10
- titleId,
11
- ADDITIONAL_PROPERTY_FLAG,
12
- ObjectFieldTemplatePropertyType,
13
- } from '@rjsf/utils';
14
- import cls from 'classnames';
15
- import React, { useCallback, useMemo } from 'react';
16
-
17
- import { getIcon } from '@opensumi/ide-components';
18
- import { IJSONSchema, useInjectable } from '@opensumi/ide-core-browser';
19
- import { Key } from '@opensumi/ide-core-browser';
20
-
21
- import { ILaunchService } from '../../../common/debug-service';
22
- import { LaunchService } from '../launch.service';
23
-
24
- import styles from './json-templates.module.less';
25
-
26
- /**
27
- * 情况一: properties 为空则表明该属性的值是任意的 key:value 对象组合,所以需要显示添加按钮
28
- * 情况二: 如果 properties 当中存在 ADDITIONAL_PROPERTY_FLAG 字段,则允许继续添加
29
- */
30
- const extendCanExpand = <T, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
31
- props: ObjectFieldTemplateProps<T, S, F>,
32
- ) => {
33
- const { schema, uiSchema, formData } = props;
34
- const { properties } = schema;
35
-
36
- if (!properties) {
37
- return false;
38
- }
39
-
40
- if (Object.keys(properties).length === 0) {
41
- return true;
42
- }
43
-
44
- if (!Object.values(properties).some((item) => item[ADDITIONAL_PROPERTY_FLAG])) {
45
- return false;
46
- }
47
-
48
- return canExpand(schema, uiSchema, formData);
49
- };
50
-
51
- export const ObjectFieldTemplate = <T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
52
- props: ObjectFieldTemplateProps<T, S, F>,
53
- ) => {
54
- const { schema, uiSchema, required, registry, idSchema, title, disabled, readonly, properties, onAddClick } = props;
55
- const launchService = useInjectable<LaunchService>(ILaunchService);
56
- const uiOptions = getUiOptions<T, S, F>(uiSchema);
57
- const TitleFieldTemplate = getTemplate<'TitleFieldTemplate', T, S, F>('TitleFieldTemplate', registry, uiOptions);
58
- const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(
59
- 'DescriptionFieldTemplate',
60
- registry,
61
- uiOptions,
62
- );
63
- const {
64
- ButtonTemplates: { AddButton },
65
- } = registry.templates;
66
-
67
- const description = useMemo(() => props.description ?? (schema as IJSONSchema).markdownDescription, [props.description, schema]);
68
-
69
- const fieldContainerClass = useMemo(
70
- () =>
71
- idSchema.$id === 'root'
72
- ? cls(styles.object_field_container, styles.root_object_field_container)
73
- : styles.object_field_container,
74
- [idSchema],
75
- );
76
-
77
- const propertyWrapperClass = useMemo(
78
- () =>
79
- idSchema.$id === 'root' ? cls(styles.property_wrapper, styles.root_property_wrapper) : styles.property_wrapper,
80
- [idSchema],
81
- );
82
-
83
- const handleDelProperties = useCallback((node: ObjectFieldTemplatePropertyType) => {
84
- const { name } = node;
85
- launchService.delItem(name);
86
- }, []);
87
-
88
- const renderProperties = useCallback(
89
- (node: ObjectFieldTemplatePropertyType) => {
90
- const { rawSchemaProperties: schemaProperties } = launchService;
91
- if (!schemaProperties) {
92
- return null;
93
- }
94
-
95
- const required = schemaProperties.required || [];
96
-
97
- return (
98
- <div
99
- key={node.name}
100
- className={propertyWrapperClass}
101
- onKeyDown={(event) => {
102
- if (event.key === Key.ENTER.code) {
103
- event.preventDefault();
104
- event.stopPropagation();
105
- }
106
- }}
107
- >
108
- {node.content}
109
- {/* 非 root 节点不允许删除 */}
110
- {required.includes(node.name) || idSchema.$id !== 'root' ? null : (
111
- <div className={styles.wrapper_delete} onClick={() => handleDelProperties(node)}>
112
- <span className={cls(getIcon('close-circle'), styles.close_icon)}></span>
113
- </div>
114
- )}
115
- </div>
116
- );
117
- },
118
- [properties, launchService.rawSchemaProperties, idSchema],
119
- );
120
-
121
- return (
122
- <div className={styles.object_field_template}>
123
- <fieldset>
124
- <div className={fieldContainerClass}>
125
- {title && (
126
- <div className={styles.object_title}>
127
- <TitleFieldTemplate
128
- id={titleId<T>(idSchema)}
129
- title={title}
130
- required={required}
131
- schema={schema}
132
- uiSchema={uiSchema}
133
- registry={registry}
134
- />
135
- </div>
136
- )}
137
- {description && (
138
- <div className={styles.object_description}>
139
- <DescriptionFieldTemplate
140
- id={descriptionId<T>(idSchema)}
141
- description={description}
142
- schema={schema}
143
- uiSchema={uiSchema}
144
- registry={registry}
145
- />
146
- </div>
147
- )}
148
- {properties.filter((e) => !e.hidden).map((element) => renderProperties(element))}
149
- </div>
150
- {extendCanExpand<T, S, F>(props) && (
151
- <AddButton onClick={onAddClick(schema)} disabled={disabled || readonly} registry={registry} />
152
- )}
153
- </fieldset>
154
- </div>
155
- );
156
- };
@@ -1,5 +0,0 @@
1
- import { CodeSchemaId } from '@opensumi/ide-core-common';
2
-
3
- export const launchSchemaUri = CodeSchemaId.launch;
4
- export const launchExtensionSchemaUri = `${CodeSchemaId.launch}/extension`;
5
- export const launchDefaultSchemaUri = `${CodeSchemaId.launch}/default`;