@opensumi/ide-core-browser 2.21.8-rc-1670567192.0 → 2.21.8

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 (317) hide show
  1. package/lib/components/actions/index.d.ts.map +1 -1
  2. package/lib/components/actions/index.js +22 -2
  3. package/lib/components/actions/index.js.map +1 -1
  4. package/lib/components/tree/tree.module.less +0 -1
  5. package/lib/contextkey/testing.d.ts +0 -1
  6. package/lib/contextkey/testing.d.ts.map +1 -1
  7. package/lib/contextkey/testing.js +1 -2
  8. package/lib/contextkey/testing.js.map +1 -1
  9. package/lib/menu/next/menu.contrib.interface.d.ts +2 -3
  10. package/lib/menu/next/menu.contrib.interface.d.ts.map +1 -1
  11. package/lib/menu/next/menu.contrib.interface.js.map +1 -1
  12. package/lib/preferences/preference-configurations.js +1 -1
  13. package/lib/preferences/preference-configurations.js.map +1 -1
  14. package/lib/react-providers/config-provider.d.ts +0 -4
  15. package/lib/react-providers/config-provider.d.ts.map +1 -1
  16. package/lib/react-providers/config-provider.js.map +1 -1
  17. package/lib/services/storage-service.d.ts.map +1 -1
  18. package/lib/services/storage-service.js +1 -7
  19. package/lib/services/storage-service.js.map +1 -1
  20. package/lib/utils/label.d.ts.map +1 -1
  21. package/lib/utils/label.js +9 -16
  22. package/lib/utils/label.js.map +1 -1
  23. package/package.json +6 -7
  24. package/src/application/application-state-service.ts +0 -54
  25. package/src/application/application.service.ts +0 -51
  26. package/src/application/index.ts +0 -2
  27. package/src/authentication/authentication.contribution.ts +0 -35
  28. package/src/authentication/authentication.service.ts +0 -517
  29. package/src/bootstrap/app.ts +0 -745
  30. package/src/bootstrap/app.view.tsx +0 -88
  31. package/src/bootstrap/connection.ts +0 -116
  32. package/src/bootstrap/index.ts +0 -3
  33. package/src/bootstrap/inner-providers.ts +0 -297
  34. package/src/bootstrap/lifecycle.service.ts +0 -19
  35. package/src/browser-module.ts +0 -24
  36. package/src/common/common.command.ts +0 -977
  37. package/src/common/common.contribution.ts +0 -343
  38. package/src/common/common.define.ts +0 -55
  39. package/src/common/common.module.ts +0 -33
  40. package/src/common/common.storage.ts +0 -22
  41. package/src/common/container-id.ts +0 -12
  42. package/src/common/index.ts +0 -4
  43. package/src/components/actions/index.tsx +0 -486
  44. package/src/components/actions/placements.ts +0 -47
  45. package/src/components/actions/styles.module.less +0 -144
  46. package/src/components/badge/index.tsx +0 -1
  47. package/src/components/index.ts +0 -26
  48. package/src/components/layout/box-panel.tsx +0 -88
  49. package/src/components/layout/default-layout.tsx +0 -61
  50. package/src/components/layout/index.ts +0 -4
  51. package/src/components/layout/layout.ts +0 -80
  52. package/src/components/layout/split-panel.service.ts +0 -56
  53. package/src/components/layout/split-panel.tsx +0 -296
  54. package/src/components/layout/styles.module.less +0 -21
  55. package/src/components/loading/index.ts +0 -1
  56. package/src/components/loading/loading.less +0 -14
  57. package/src/components/loading/loading.view.tsx +0 -7
  58. package/src/components/loading/media/loading-dark.svg +0 -52
  59. package/src/components/loading/media/loading-hc.svg +0 -52
  60. package/src/components/loading/media/loading.svg +0 -52
  61. package/src/components/popover/styles.module.less +0 -81
  62. package/src/components/portal/index.tsx +0 -13
  63. package/src/components/progressbar/index.tsx +0 -16
  64. package/src/components/progressbar/styles.module.less +0 -31
  65. package/src/components/recycle-tree/index.ts +0 -1
  66. package/src/components/recycle-tree/recycle-tree.view.tsx +0 -368
  67. package/src/components/resize/resize.module.less +0 -78
  68. package/src/components/resize/resize.tsx +0 -663
  69. package/src/components/scroll/index.tsx +0 -386
  70. package/src/components/scroll/scroll.module.less +0 -108
  71. package/src/components/scrollbar/index.ts +0 -1
  72. package/src/components/scrollbar/scrollbar.less +0 -36
  73. package/src/components/scrollbar/scrollbar.view.ts +0 -8
  74. package/src/components/select/index.tsx +0 -12
  75. package/src/components/select/styles.less +0 -6
  76. package/src/components/tree/index.ts +0 -3
  77. package/src/components/tree/tree-node.view.tsx +0 -546
  78. package/src/components/tree/tree.module.less +0 -297
  79. package/src/components/tree/tree.view.tsx +0 -486
  80. package/src/context-key.ts +0 -48
  81. package/src/contextkey/dialog.ts +0 -3
  82. package/src/contextkey/explorer.ts +0 -26
  83. package/src/contextkey/index.ts +0 -6
  84. package/src/contextkey/outline.ts +0 -4
  85. package/src/contextkey/resource.ts +0 -61
  86. package/src/contextkey/terminal.ts +0 -7
  87. package/src/contextkey/testing.ts +0 -9
  88. package/src/contextkey/workspace.ts +0 -7
  89. package/src/core-preferences.ts +0 -318
  90. package/src/dom/index.ts +0 -176
  91. package/src/encoding-registry.ts +0 -83
  92. package/src/extensions/extensions-point.service.ts +0 -78
  93. package/src/extensions/index.ts +0 -3
  94. package/src/extensions/schema/browserViews.ts +0 -96
  95. package/src/extensions/schema/menu.ts +0 -245
  96. package/src/extensions/schema/opensumiExtensionPackageSchema.ts +0 -12
  97. package/src/extensions/schema/toolbar.ts +0 -338
  98. package/src/extensions/schema/vscodeExtensionPackageSchema.ts +0 -330
  99. package/src/fs/index.ts +0 -12
  100. package/src/hash-calculate/hash-calculate.contribution.ts +0 -19
  101. package/src/index.ts +0 -42
  102. package/src/keybinding/index.ts +0 -1
  103. package/src/keybinding/keybinding.ts +0 -908
  104. package/src/keyboard/index.ts +0 -3
  105. package/src/keyboard/keyboard-layout-provider.ts +0 -412
  106. package/src/keyboard/keyboard-layout-service.ts +0 -449
  107. package/src/keyboard/keys.ts +0 -748
  108. package/src/keyboard/layouts/_.contribution.ts +0 -24
  109. package/src/keyboard/layouts/cz.win.ts +0 -168
  110. package/src/keyboard/layouts/de-swiss.win.ts +0 -168
  111. package/src/keyboard/layouts/de.darwin.ts +0 -131
  112. package/src/keyboard/layouts/de.linux.ts +0 -186
  113. package/src/keyboard/layouts/de.win.ts +0 -168
  114. package/src/keyboard/layouts/dk.win.ts +0 -168
  115. package/src/keyboard/layouts/dvorak.darwin.ts +0 -131
  116. package/src/keyboard/layouts/en-belgian.win.ts +0 -168
  117. package/src/keyboard/layouts/en-ext.darwin.ts +0 -131
  118. package/src/keyboard/layouts/en-in.win.ts +0 -168
  119. package/src/keyboard/layouts/en-intl.darwin.ts +0 -131
  120. package/src/keyboard/layouts/en-intl.win.ts +0 -168
  121. package/src/keyboard/layouts/en-uk.darwin.ts +0 -131
  122. package/src/keyboard/layouts/en-uk.win.ts +0 -168
  123. package/src/keyboard/layouts/en.darwin.ts +0 -139
  124. package/src/keyboard/layouts/en.linux.ts +0 -186
  125. package/src/keyboard/layouts/en.win.ts +0 -173
  126. package/src/keyboard/layouts/es-latin.win.ts +0 -168
  127. package/src/keyboard/layouts/es.darwin.ts +0 -131
  128. package/src/keyboard/layouts/es.linux.ts +0 -186
  129. package/src/keyboard/layouts/es.win.ts +0 -168
  130. package/src/keyboard/layouts/fr.darwin.ts +0 -131
  131. package/src/keyboard/layouts/fr.linux.ts +0 -186
  132. package/src/keyboard/layouts/fr.win.ts +0 -168
  133. package/src/keyboard/layouts/hu.win.ts +0 -168
  134. package/src/keyboard/layouts/it.darwin.ts +0 -131
  135. package/src/keyboard/layouts/it.win.ts +0 -168
  136. package/src/keyboard/layouts/jp-roman.darwin.ts +0 -131
  137. package/src/keyboard/layouts/jp.darwin.ts +0 -131
  138. package/src/keyboard/layouts/ko.darwin.ts +0 -131
  139. package/src/keyboard/layouts/layout.contribution.darwin.ts +0 -23
  140. package/src/keyboard/layouts/layout.contribution.linux.ts +0 -12
  141. package/src/keyboard/layouts/layout.contribution.ts +0 -9
  142. package/src/keyboard/layouts/layout.contribution.win.ts +0 -29
  143. package/src/keyboard/layouts/no.win.ts +0 -168
  144. package/src/keyboard/layouts/pl.darwin.ts +0 -131
  145. package/src/keyboard/layouts/pl.win.ts +0 -168
  146. package/src/keyboard/layouts/pt-br.win.ts +0 -169
  147. package/src/keyboard/layouts/pt.darwin.ts +0 -131
  148. package/src/keyboard/layouts/pt.win.ts +0 -168
  149. package/src/keyboard/layouts/ru.darwin.ts +0 -131
  150. package/src/keyboard/layouts/ru.linux.ts +0 -186
  151. package/src/keyboard/layouts/ru.win.ts +0 -168
  152. package/src/keyboard/layouts/sv.darwin.ts +0 -131
  153. package/src/keyboard/layouts/sv.win.ts +0 -168
  154. package/src/keyboard/layouts/thai.win.ts +0 -168
  155. package/src/keyboard/layouts/tr.win.ts +0 -168
  156. package/src/keyboard/layouts/zh-hans.darwin.ts +0 -131
  157. package/src/layout/accordion/tab-bar-toolbar.tsx +0 -59
  158. package/src/layout/accordion/view-context-key.registry.ts +0 -34
  159. package/src/layout/constants.ts +0 -7
  160. package/src/layout/index.ts +0 -5
  161. package/src/layout/layout-hooks.ts +0 -68
  162. package/src/layout/layout-state.ts +0 -107
  163. package/src/layout/layout.interface.ts +0 -101
  164. package/src/layout/layout.ts +0 -80
  165. package/src/layout/view-id.ts +0 -18
  166. package/src/logger/browser-logger.ts +0 -51
  167. package/src/logger/index.ts +0 -1
  168. package/src/markdown/index.tsx +0 -62
  169. package/src/menu/next/base.ts +0 -513
  170. package/src/menu/next/ctxmenu-service.ts +0 -188
  171. package/src/menu/next/index.ts +0 -10
  172. package/src/menu/next/menu-id.ts +0 -86
  173. package/src/menu/next/menu-service.ts +0 -252
  174. package/src/menu/next/menu-util.ts +0 -77
  175. package/src/menu/next/menu.contrib.interface.ts +0 -79
  176. package/src/menu/next/menu.interface.ts +0 -253
  177. package/src/menu/next/menubar-service.ts +0 -211
  178. package/src/menu/next/renderer/ctxmenu/base.ts +0 -18
  179. package/src/menu/next/renderer/ctxmenu/browser.ts +0 -45
  180. package/src/menu/next/renderer/ctxmenu/electron.ts +0 -207
  181. package/src/menu/next/toolbar-action.service.ts +0 -132
  182. package/src/monaco/index.ts +0 -128
  183. package/src/opener/command-opener.ts +0 -42
  184. package/src/opener/default-opener.ts +0 -31
  185. package/src/opener/http-opener.ts +0 -25
  186. package/src/opener/index.ts +0 -19
  187. package/src/opener/opener.contribution.ts +0 -57
  188. package/src/opener/opener.service.ts +0 -66
  189. package/src/preferences/early-preferences.ts +0 -117
  190. package/src/preferences/index.ts +0 -9
  191. package/src/preferences/preference-configurations.ts +0 -77
  192. package/src/preferences/preference-contribution.ts +0 -401
  193. package/src/preferences/preference-provider.ts +0 -414
  194. package/src/preferences/preference-proxy.ts +0 -292
  195. package/src/preferences/preference-scope.ts +0 -3
  196. package/src/preferences/preference-service.ts +0 -571
  197. package/src/preferences/settings.ts +0 -53
  198. package/src/preferences/types.ts +0 -111
  199. package/src/progress/index.ts +0 -58
  200. package/src/progress/progress-bar.tsx +0 -22
  201. package/src/progress/progress-indicator.ts +0 -90
  202. package/src/progress/progress.module.less +0 -46
  203. package/src/progress/progress.service.tsx +0 -429
  204. package/src/quick-open/index.ts +0 -655
  205. package/src/quick-open/recent-files.ts +0 -68
  206. package/src/raw-context-key.ts +0 -116
  207. package/src/react-hooks/event.tsx +0 -80
  208. package/src/react-hooks/hot-key.tsx +0 -58
  209. package/src/react-hooks/index.ts +0 -3
  210. package/src/react-hooks/injectable-hooks.tsx +0 -35
  211. package/src/react-hooks/portal-hooks.tsx +0 -38
  212. package/src/react-providers/config-provider.tsx +0 -263
  213. package/src/react-providers/index.tsx +0 -2
  214. package/src/react-providers/slot.module.less +0 -19
  215. package/src/react-providers/slot.tsx +0 -242
  216. package/src/services/clipboard.service.ts +0 -97
  217. package/src/services/credentials-service.ts +0 -91
  218. package/src/services/crypto-service.ts +0 -23
  219. package/src/services/external-uri.service.ts +0 -68
  220. package/src/services/index.ts +0 -7
  221. package/src/services/label-service.ts +0 -386
  222. package/src/services/status-bar-service.ts +0 -108
  223. package/src/services/storage-service.ts +0 -197
  224. package/src/style/codicons/README.md +0 -22
  225. package/src/style/codicons/codicon-animations.css +0 -15
  226. package/src/style/codicons/generator.js +0 -15
  227. package/src/style/entry.less +0 -25
  228. package/src/style/icon/fileicons/file-default.svg +0 -1
  229. package/src/style/icon/fileicons/folder-default.svg +0 -1
  230. package/src/style/icon/fileicons.less +0 -20
  231. package/src/style/icon/icon.ts +0 -543
  232. package/src/style/icon/ide-iconfont.ts +0 -13
  233. package/src/style/icon/index.less +0 -54
  234. package/src/style/icon/seti.woff +0 -0
  235. package/src/style/icon/symbol-icons/boolean-dark.svg +0 -3
  236. package/src/style/icon/symbol-icons/boolean-light.svg +0 -3
  237. package/src/style/icon/symbol-icons/class-dark.svg +0 -3
  238. package/src/style/icon/symbol-icons/class-light.svg +0 -3
  239. package/src/style/icon/symbol-icons/constant-dark.svg +0 -4
  240. package/src/style/icon/symbol-icons/constant-light.svg +0 -4
  241. package/src/style/icon/symbol-icons/enumerator-dark.svg +0 -3
  242. package/src/style/icon/symbol-icons/enumerator-item-dark.svg +0 -3
  243. package/src/style/icon/symbol-icons/enumerator-item-light.svg +0 -3
  244. package/src/style/icon/symbol-icons/enumerator-light.svg +0 -3
  245. package/src/style/icon/symbol-icons/event-dark.svg +0 -3
  246. package/src/style/icon/symbol-icons/event-light.svg +0 -3
  247. package/src/style/icon/symbol-icons/field-dark.svg +0 -3
  248. package/src/style/icon/symbol-icons/field-light.svg +0 -3
  249. package/src/style/icon/symbol-icons/file-dark.svg +0 -3
  250. package/src/style/icon/symbol-icons/file-light.svg +0 -3
  251. package/src/style/icon/symbol-icons/indexer-dark.svg +0 -3
  252. package/src/style/icon/symbol-icons/indexer-light.svg +0 -3
  253. package/src/style/icon/symbol-icons/interface-dark.svg +0 -3
  254. package/src/style/icon/symbol-icons/interface-light.svg +0 -3
  255. package/src/style/icon/symbol-icons/keyword-dark.svg +0 -3
  256. package/src/style/icon/symbol-icons/keyword-light.svg +0 -3
  257. package/src/style/icon/symbol-icons/method-dark.svg +0 -3
  258. package/src/style/icon/symbol-icons/method-light.svg +0 -3
  259. package/src/style/icon/symbol-icons/namespace-dark.svg +0 -3
  260. package/src/style/icon/symbol-icons/namespace-light.svg +0 -3
  261. package/src/style/icon/symbol-icons/numeric-dark.svg +0 -3
  262. package/src/style/icon/symbol-icons/numeric-light.svg +0 -3
  263. package/src/style/icon/symbol-icons/operator-dark.svg +0 -3
  264. package/src/style/icon/symbol-icons/operator-light.svg +0 -3
  265. package/src/style/icon/symbol-icons/property-dark.svg +0 -3
  266. package/src/style/icon/symbol-icons/property-light.svg +0 -3
  267. package/src/style/icon/symbol-icons/snippet-dark.svg +0 -3
  268. package/src/style/icon/symbol-icons/snippet-light.svg +0 -3
  269. package/src/style/icon/symbol-icons/string-dark.svg +0 -3
  270. package/src/style/icon/symbol-icons/string-light.svg +0 -3
  271. package/src/style/icon/symbol-icons/structure-dark.svg +0 -3
  272. package/src/style/icon/symbol-icons/structure-light.svg +0 -3
  273. package/src/style/icon/symbol-icons/symbol-icons.css +0 -284
  274. package/src/style/icon/symbol-icons/template-dark.svg +0 -3
  275. package/src/style/icon/symbol-icons/template-light.svg +0 -3
  276. package/src/style/icon/symbol-icons/variable-dark.svg +0 -3
  277. package/src/style/icon/symbol-icons/variable-light.svg +0 -3
  278. package/src/style/icon.less +0 -8
  279. package/src/style/index.less +0 -14
  280. package/src/style/monaco-override.less +0 -116
  281. package/src/style/normalize.less +0 -92
  282. package/src/style/octicons/octicons-cdn.css +0 -720
  283. package/src/style/octicons/octicons.css +0 -714
  284. package/src/style/octicons/octicons.html +0 -1882
  285. package/src/style/octicons/octicons.svg +0 -582
  286. package/src/style/octicons/octicons.ttf +0 -0
  287. package/src/style/override.less +0 -97
  288. package/src/style/toolbar.less +0 -199
  289. package/src/style/utilities.less +0 -8
  290. package/src/style/variable.less +0 -8
  291. package/src/terminal/index.ts +0 -7
  292. package/src/toolbar/components/auto-complete.tsx +0 -0
  293. package/src/toolbar/components/button.tsx +0 -440
  294. package/src/toolbar/components/index.ts +0 -2
  295. package/src/toolbar/components/select.tsx +0 -189
  296. package/src/toolbar/index.ts +0 -3
  297. package/src/toolbar/toolbar.popover.registry.ts +0 -32
  298. package/src/toolbar/toolbar.registry.ts +0 -352
  299. package/src/toolbar/toolbar.tsx +0 -710
  300. package/src/toolbar/types.ts +0 -383
  301. package/src/tree/index.ts +0 -3
  302. package/src/tree/tree-expansion.ts +0 -25
  303. package/src/tree/tree-selection.ts +0 -89
  304. package/src/tree/tree.ts +0 -294
  305. package/src/utils/create-overlay.tsx +0 -53
  306. package/src/utils/electron.ts +0 -92
  307. package/src/utils/env.ts +0 -26
  308. package/src/utils/icon.ts +0 -13
  309. package/src/utils/index.ts +0 -7
  310. package/src/utils/json.ts +0 -251
  311. package/src/utils/label.tsx +0 -36
  312. package/src/utils/parse.ts +0 -72
  313. package/src/utils/react-hooks.ts +0 -118
  314. package/src/variable/index.ts +0 -1
  315. package/src/variable/variable.ts +0 -84
  316. package/src/window/index.ts +0 -34
  317. package/src/window/window.service.ts +0 -100
@@ -1,88 +0,0 @@
1
- import clsx from 'classnames';
2
- import React from 'react';
3
-
4
- import { Layout } from './layout';
5
- import styles from './styles.module.less';
6
-
7
- export interface IChildComponentProps {
8
- /**
9
- * 创建的 div 标签样式中要使用的 flex 属性
10
- */
11
- flex?: number;
12
- /**
13
- * 创建的 div 标签样式中要使用的默认宽度
14
- */
15
- defaultSize?: number;
16
- id: string;
17
- overflow: string;
18
- /**
19
- * 创建的 div 标签样式中要使用的 zIndex 属性
20
- */
21
- zIndex?: number;
22
- /**
23
- * 创建的 div 标签样式中要使用的 z-index 属性
24
- */
25
- 'z-index'?: number;
26
- /**
27
- * 创建的 div 标签样式中要使用的 backgroundColor 属性
28
- */
29
- backgroundColor?: string;
30
-
31
- // 以上都是老代码,直接取 props 的相关属性太直接了
32
- // 优雅一些的做法是使用 data- 标签
33
- /**
34
- * 创建的 div 标签要使用的 id
35
- */
36
- 'data-wrapper-id'?: string;
37
- /**
38
- * 创建的 div 标签要使用的 className
39
- */
40
- 'data-wrapper-class'?: string;
41
- }
42
-
43
- type ChildComponent = React.ReactElement<IChildComponentProps>;
44
-
45
- /**
46
- * 包裹放入其中的元素,并为每个元素创建一个 div
47
- *
48
- * 可以通过修改传入的 children 的 props 来定义一些属性,props 的定义可见:{ @link ChildComponent }
49
- */
50
- export const BoxPanel: React.FC<{
51
- children?: ChildComponent | ChildComponent[];
52
- className?: string;
53
- direction?: Layout.direction;
54
- flex?: number;
55
- zIndex?: number;
56
- }> = ({ className, children = [], direction = 'left-to-right', ...restProps }) => {
57
- // convert children to list
58
- const arrayChildren = React.Children.toArray(children) as ChildComponent[];
59
-
60
- return (
61
- <div
62
- {...restProps}
63
- className={clsx(styles['box-panel'], className)}
64
- style={{ flexDirection: Layout.getFlexDirection(direction), zIndex: restProps['z-index'] }}
65
- >
66
- {arrayChildren.map((child, index) => (
67
- <div
68
- key={index}
69
- id={child['props']?.['data-wrapper-id']}
70
- className={clsx(styles.wrapper, child['props']?.['data-wrapper-class'])}
71
- style={
72
- child['props']
73
- ? {
74
- flex: child['props'].flex,
75
- overflow: child['props'].overflow,
76
- zIndex: child['props'].zIndex || child['props']['z-index'],
77
- [Layout.getMinSizeProperty(direction)]: child['props'].defaultSize,
78
- backgroundColor: child['props'].backgroundColor,
79
- }
80
- : {}
81
- }
82
- >
83
- {child}
84
- </div>
85
- ))}
86
- </div>
87
- );
88
- };
@@ -1,61 +0,0 @@
1
- import React from 'react';
2
-
3
- import { SlotRenderer } from '../../react-providers/slot';
4
-
5
- import { BoxPanel } from './box-panel';
6
- import { SplitPanel } from './split-panel';
7
-
8
- export const getStorageValue = () => {
9
- // 启动时渲染的颜色和尺寸,弱依赖
10
- let savedLayout: { [key: string]: { size: number; currentId: string } } = {};
11
- let savedColors: { [colorKey: string]: string } = {};
12
- try {
13
- savedLayout = JSON.parse(localStorage.getItem('layout') || '{}');
14
- savedColors = JSON.parse(localStorage.getItem('theme') || '{}');
15
- } catch (err) {}
16
- return {
17
- layout: savedLayout,
18
- colors: savedColors,
19
- };
20
- };
21
-
22
- export const DefaultLayout = ToolbarActionBasedLayout;
23
-
24
- export function ToolbarActionBasedLayout() {
25
- const { colors, layout } = getStorageValue();
26
- return (
27
- <BoxPanel direction='top-to-bottom'>
28
- <SlotRenderer backgroundColor={colors.menuBarBackground} defaultSize={0} slot='top' z-index={2} />
29
- <SplitPanel id='main-horizontal' flex={1}>
30
- <SlotRenderer
31
- backgroundColor={colors.sideBarBackground}
32
- slot='left'
33
- isTabbar={true}
34
- defaultSize={layout.left?.currentId ? layout.left?.size || 310 : 49}
35
- minResize={204}
36
- minSize={49}
37
- />
38
- <SplitPanel id='main-vertical' minResize={300} flexGrow={1} direction='top-to-bottom'>
39
- <SlotRenderer backgroundColor={colors.editorBackground} flex={2} flexGrow={1} minResize={200} slot='main' />
40
- <SlotRenderer
41
- backgroundColor={colors.panelBackground}
42
- flex={1}
43
- defaultSize={layout.bottom?.size}
44
- minResize={160}
45
- slot='bottom'
46
- isTabbar={true}
47
- />
48
- </SplitPanel>
49
- <SlotRenderer
50
- backgroundColor={colors.sideBarBackground}
51
- slot='right'
52
- isTabbar={true}
53
- defaultSize={layout.right?.currentId ? layout.right?.size || 310 : 0}
54
- minResize={200}
55
- minSize={0}
56
- />
57
- </SplitPanel>
58
- <SlotRenderer backgroundColor={colors.statusBarBackground} defaultSize={24} slot='statusBar' />
59
- </BoxPanel>
60
- );
61
- }
@@ -1,4 +0,0 @@
1
- export * from './layout';
2
- export * from './split-panel';
3
- export * from './box-panel';
4
- export * from './default-layout';
@@ -1,80 +0,0 @@
1
- import { ResizeHandleVertical, ResizeHandleHorizontal } from '../resize/resize';
2
-
3
- const flexDirectionMap: {
4
- [index: string]: {
5
- direction: any;
6
- size: 'width' | 'height';
7
- domSize: 'clientWidth' | 'clientHeight';
8
- minSize: 'minWidth' | 'minHeight';
9
- maxSize: 'maxWidth' | 'maxHeight';
10
- };
11
- } = {
12
- 'left-to-right': {
13
- direction: 'row',
14
- size: 'width',
15
- domSize: 'clientHeight',
16
- minSize: 'minWidth',
17
- maxSize: 'maxWidth',
18
- },
19
- 'right-to-left': {
20
- direction: 'row-reverse',
21
- size: 'width',
22
- domSize: 'clientHeight',
23
- minSize: 'minWidth',
24
- maxSize: 'maxWidth',
25
- },
26
- 'top-to-bottom': {
27
- direction: 'column',
28
- size: 'height',
29
- domSize: 'clientWidth',
30
- minSize: 'minHeight',
31
- maxSize: 'maxHeight',
32
- },
33
- 'bottom-to-top': {
34
- direction: 'column-reverse',
35
- size: 'height',
36
- domSize: 'clientWidth',
37
- minSize: 'minHeight',
38
- maxSize: 'maxHeight',
39
- },
40
- };
41
-
42
- export namespace Layout {
43
- export type direction = 'left-to-right' | 'right-to-left' | 'top-to-bottom' | 'bottom-to-top';
44
-
45
- export type alignment = 'horizontal' | 'vertical';
46
-
47
- export function getFlexDirection(direction: Layout.direction) {
48
- return flexDirectionMap[direction].direction;
49
- }
50
-
51
- export function getSizeProperty(direction: Layout.direction) {
52
- return flexDirectionMap[direction].size;
53
- }
54
-
55
- export function getDomSizeProperty(direction: Layout.direction) {
56
- return flexDirectionMap[direction].domSize;
57
- }
58
-
59
- export function getMinSizeProperty(direction: Layout.direction) {
60
- return flexDirectionMap[direction].minSize;
61
- }
62
-
63
- export function getMaxSizeProperty(direction: Layout.direction) {
64
- return flexDirectionMap[direction].maxSize;
65
- }
66
-
67
- export function getResizeHandle(direction: Layout.direction) {
68
- if (direction === 'bottom-to-top' || direction === 'top-to-bottom') {
69
- return ResizeHandleVertical;
70
- }
71
- return ResizeHandleHorizontal;
72
- }
73
-
74
- export function getTabbarDirection(direction: Layout.direction) {
75
- if (direction === 'bottom-to-top' || direction === 'top-to-bottom') {
76
- return 'row';
77
- }
78
- return 'column';
79
- }
80
- }
@@ -1,56 +0,0 @@
1
- import { Injectable, INJECTOR_TOKEN, Injector, Autowired } from '@opensumi/di';
2
-
3
- @Injectable({ multiple: true })
4
- export class SplitPanelService {
5
- private static MIN_SIZE = 120;
6
- constructor(public panelId: string) {}
7
-
8
- panels: HTMLElement[] = [];
9
-
10
- rootNode: HTMLElement | undefined;
11
-
12
- get isVisible(): boolean {
13
- return (this.rootNode && this.rootNode.clientHeight > 0) || false;
14
- }
15
-
16
- getFirstResizablePanel(index: number, direction: boolean, isPrev?: boolean): HTMLElement | undefined {
17
- if (isPrev) {
18
- if (direction) {
19
- return this.panels[index];
20
- } else {
21
- for (let i = index; i >= 0; i--) {
22
- if (this.panels[i].clientHeight > SplitPanelService.MIN_SIZE) {
23
- return this.panels[i];
24
- }
25
- }
26
- }
27
- } else {
28
- if (!direction) {
29
- return this.panels[index + 1];
30
- } else {
31
- for (let i = index + 1; i < this.panels.length; i++) {
32
- if (this.panels[i].clientHeight > SplitPanelService.MIN_SIZE) {
33
- return this.panels[i];
34
- }
35
- }
36
- }
37
- }
38
- }
39
- }
40
-
41
- @Injectable()
42
- export class SplitPanelManager {
43
- @Autowired(INJECTOR_TOKEN)
44
- injector: Injector;
45
-
46
- services: Map<string, SplitPanelService> = new Map();
47
-
48
- getService(panelId: string) {
49
- let service = this.services.get(panelId);
50
- if (!service) {
51
- service = this.injector.get(SplitPanelService, [panelId]);
52
- this.services.set(panelId, service);
53
- }
54
- return service;
55
- }
56
- }
@@ -1,296 +0,0 @@
1
- import clsx from 'classnames';
2
- import React from 'react';
3
-
4
- import { IEventBus } from '@opensumi/ide-core-common';
5
-
6
- import { ResizeEvent } from '../../layout';
7
- import { useInjectable } from '../../react-hooks';
8
- import { IResizeHandleDelegate, ResizeFlexMode } from '../resize/resize';
9
-
10
- import { Layout } from './layout';
11
- import { SplitPanelManager } from './split-panel.service';
12
- import styles from './styles.module.less';
13
-
14
- export interface ResizeHandle {
15
- setSize: (targetSize?: number, isLatter?: boolean) => void;
16
- setRelativeSize: (prev: number, next: number, isLatter: boolean) => void;
17
- getSize: (isLatter: boolean) => number;
18
- getRelativeSize: (isLatter: boolean) => number[];
19
- lockSize: (lock: boolean | undefined, isLatter: boolean) => void;
20
- setMaxSize: (lock: boolean | undefined, isLatter: boolean) => void;
21
- hidePanel: (show?: boolean) => void;
22
- }
23
-
24
- export const PanelContext = React.createContext<ResizeHandle>({
25
- setSize: (targetSize: number, isLatter: boolean) => {},
26
- setRelativeSize: (prev, next, isLatter) => {},
27
- getSize: (isLatter: boolean) => 0,
28
- getRelativeSize: (isLatter: boolean) => [0, 0],
29
- lockSize: (lock: boolean | undefined, isLatter: boolean) => {},
30
- setMaxSize: (lock: boolean | undefined, isLatter: boolean) => {},
31
- hidePanel: (show?: boolean) => {},
32
- });
33
-
34
- type ChildComponent = React.ReactElement<SplitChildProps>;
35
-
36
- interface SplitChildProps {
37
- id: string;
38
- minSize?: number;
39
- maxSize?: number;
40
- minResize?: number;
41
- flex?: number;
42
- overflow?: string;
43
- flexGrow?: number;
44
- slot?: string;
45
- noResize?: boolean;
46
- savedSize?: number;
47
- defaultSize?: number;
48
- children?: ChildComponent | ChildComponent[];
49
- }
50
-
51
- export interface SplitPanelProps extends SplitChildProps {
52
- className?: string;
53
- style?: React.CSSProperties;
54
- direction?: Layout.direction;
55
- id: string;
56
- // setAbsoluteSize 时保证相邻节点总宽度不变
57
- resizeKeep?: boolean;
58
- dynamicTarget?: boolean;
59
- // 控制使用传入尺寸之和作为总尺寸或使用dom尺寸
60
- useDomSize?: boolean;
61
- }
62
-
63
- const getProp = (child: React.ReactNode, prop: string) => child && child['props'] && child['props'][prop];
64
-
65
- export const SplitPanel: React.FC<SplitPanelProps> = ({
66
- id,
67
- className,
68
- style,
69
- children = [],
70
- direction = 'left-to-right',
71
- resizeKeep = true,
72
- flexGrow,
73
- dynamicTarget,
74
- minResize,
75
- useDomSize,
76
- ...restProps
77
- }) => {
78
- const ResizeHandle = Layout.getResizeHandle(direction);
79
- // convert children to list
80
- const childList = React.Children.toArray(children);
81
- const totalFlexNum = childList.reduce(
82
- (accumulator, item) => accumulator + (getProp(item, 'flex') !== undefined ? item['props'].flex : 1),
83
- 0,
84
- );
85
- const elements: React.ReactNodeArray = [];
86
- const resizeDelegates = React.useRef<IResizeHandleDelegate[]>([]);
87
- const eventBus = useInjectable<IEventBus>(IEventBus);
88
- const rootRef = React.useRef<HTMLElement>();
89
-
90
- const splitPanelService = useInjectable<SplitPanelManager>(SplitPanelManager).getService(id);
91
- const maxLockState = React.useRef(childList.map(() => false));
92
- const hideState = React.useRef(childList.map(() => false));
93
- const resizeLockState = React.useRef(maxLockState.current.slice(0, childList.length - 1));
94
- const [locks, setLocks] = React.useState<boolean[]>(resizeLockState.current);
95
- const [hides, setHides] = React.useState<boolean[]>(hideState.current);
96
- const [maxLocks, setMaxLocks] = React.useState<boolean[]>(maxLockState.current);
97
- splitPanelService.panels = [];
98
-
99
- // 获取setSize的handle,对于最右端或最底部的视图,取上一个位置的handle
100
- const setSizeHandle = (index) => (size?: number, isLatter?: boolean) => {
101
- const targetIndex = isLatter ? index - 1 : index;
102
- const delegate = resizeDelegates.current[targetIndex];
103
- if (delegate) {
104
- delegate.setAbsoluteSize(
105
- size !== undefined ? size : getProp(childList[index], 'defaultSize'),
106
- isLatter,
107
- resizeKeep,
108
- );
109
- }
110
- };
111
-
112
- const setRelativeSizeHandle = (index) => (prev: number, next: number, isLatter?: boolean) => {
113
- const targetIndex = isLatter ? index - 1 : index;
114
- const delegate = resizeDelegates.current[targetIndex];
115
- if (delegate) {
116
- delegate.setRelativeSize(prev, next);
117
- }
118
- };
119
-
120
- const getSizeHandle = (index) => (isLatter?: boolean) => {
121
- const targetIndex = isLatter ? index - 1 : index;
122
- const delegate = resizeDelegates.current[targetIndex];
123
- if (delegate) {
124
- return delegate.getAbsoluteSize(isLatter);
125
- }
126
- return 0;
127
- };
128
-
129
- const getRelativeSizeHandle = (index) => (isLatter?: boolean) => {
130
- const targetIndex = isLatter ? index - 1 : index;
131
- const delegate = resizeDelegates.current[targetIndex];
132
- if (delegate) {
133
- return delegate.getRelativeSize();
134
- }
135
- return [0, 0];
136
- };
137
-
138
- const lockResizeHandle = (index) => (lock: boolean | undefined, isLatter?: boolean) => {
139
- const targetIndex = isLatter ? index - 1 : index;
140
- const newResizeState = resizeLockState.current.map((state, idx) =>
141
- idx === targetIndex ? (lock !== undefined ? lock : !state) : state,
142
- );
143
- resizeLockState.current = newResizeState;
144
- setLocks(newResizeState);
145
- };
146
-
147
- const setMaxSizeHandle = (index) => (lock: boolean | undefined, isLatter?: boolean) => {
148
- const newMaxState = maxLockState.current.map((state, idx) =>
149
- idx === index ? (lock !== undefined ? lock : !state) : state,
150
- );
151
- maxLockState.current = newMaxState;
152
- setMaxLocks(newMaxState);
153
- };
154
-
155
- const hidePanelHandle = (index: number) => (show?: boolean) => {
156
- const newHideState = hideState.current.map((state, idx) =>
157
- idx === index ? (show !== undefined ? !show : !state) : state,
158
- );
159
- hideState.current = newHideState;
160
- const location = getProp(childList[index], 'slot') || getProp(childList[index], 'id');
161
- if (location) {
162
- fireResizeEvent(location);
163
- }
164
- setHides(newHideState);
165
- };
166
-
167
- const fireResizeEvent = (location?: string) => {
168
- if (location) {
169
- eventBus.fire(new ResizeEvent({ slotLocation: location }));
170
- }
171
- };
172
-
173
- childList.forEach((element, index) => {
174
- if (index !== 0) {
175
- const targetElement = index === 1 ? childList[index - 1] : childList[index];
176
- let flexMode: ResizeFlexMode | undefined;
177
- if (getProp(element, 'flexGrow')) {
178
- flexMode = ResizeFlexMode.Prev;
179
- } else if (getProp(childList[index - 1], 'flexGrow')) {
180
- flexMode = ResizeFlexMode.Next;
181
- }
182
- const noResize = getProp(targetElement, 'noResize') || locks[index - 1];
183
- if (!noResize) {
184
- elements.push(
185
- <ResizeHandle
186
- onResize={(prev, next) => {
187
- const prevLocation = getProp(childList[index - 1], 'slot') || getProp(childList[index - 1], 'id');
188
- const nextLocation = getProp(childList[index], 'slot') || getProp(childList[index], 'id');
189
- fireResizeEvent(prevLocation!);
190
- fireResizeEvent(nextLocation!);
191
- }}
192
- noColor={true}
193
- findNextElement={
194
- dynamicTarget
195
- ? (direction: boolean) => splitPanelService.getFirstResizablePanel(index - 1, direction)
196
- : undefined
197
- }
198
- findPrevElement={
199
- dynamicTarget
200
- ? (direction: boolean) => splitPanelService.getFirstResizablePanel(index - 1, direction, true)
201
- : undefined
202
- }
203
- key={`split-handle-${index}`}
204
- delegate={(delegate) => {
205
- resizeDelegates.current.push(delegate);
206
- }}
207
- flexMode={flexMode}
208
- />,
209
- );
210
- }
211
- }
212
- elements.push(
213
- <PanelContext.Provider
214
- key={index}
215
- value={{
216
- setSize: setSizeHandle(index),
217
- getSize: getSizeHandle(index),
218
- setRelativeSize: setRelativeSizeHandle(index),
219
- getRelativeSize: getRelativeSizeHandle(index),
220
- lockSize: lockResizeHandle(index),
221
- setMaxSize: setMaxSizeHandle(index),
222
- hidePanel: hidePanelHandle(index),
223
- }}
224
- >
225
- <div
226
- data-min-resize={getProp(element, 'minResize')}
227
- ref={(ele) => {
228
- if (ele && splitPanelService.panels.indexOf(ele) === -1) {
229
- splitPanelService.panels.push(ele);
230
- }
231
- }}
232
- id={getProp(element, 'id') /* @deprecated: query by data-view-id */}
233
- style={{
234
- // 手风琴场景,固定尺寸和flex尺寸混合布局;需要在resize flex模式下禁用
235
- ...(element['props'].flex &&
236
- !element['props'].savedSize &&
237
- !childList.find((item) => item!['props'].flexGrow)
238
- ? { flex: element['props'].flex }
239
- : { [Layout.getSizeProperty(direction)]: getElementSize(element) }),
240
- // 相对尺寸带来的问题,必须限制最小最大尺寸
241
- [Layout.getMinSizeProperty(direction)]: getProp(element, 'minSize')
242
- ? element['props'].minSize + 'px'
243
- : '-1px',
244
- [Layout.getMaxSizeProperty(direction)]:
245
- maxLocks[index] && getProp(element, 'maxSize') ? element['props'].maxSize + 'px' : 'unset',
246
- // resize flex模式下应用flexGrow
247
- ...(getProp(element, 'flexGrow') !== undefined ? { flexGrow: element['props'].flexGrow } : {}),
248
- display: hides[index] ? 'none' : 'block',
249
- backgroundColor: element['props'].backgroundColor,
250
- }}
251
- >
252
- {element}
253
- </div>
254
- </PanelContext.Provider>,
255
- );
256
- });
257
-
258
- function getElementSize(element: any) {
259
- if (element.props.savedSize) {
260
- return element.props.savedSize + 'px';
261
- } else if (element.props.defaultSize !== undefined) {
262
- return element.props.defaultSize + 'px';
263
- } else if (element.props.flex) {
264
- return (element.props.flex / totalFlexNum) * 100 + '%';
265
- } else {
266
- return (1 / totalFlexNum) * 100 + '%';
267
- }
268
- }
269
-
270
- React.useEffect(() => {
271
- if (rootRef.current) {
272
- splitPanelService.rootNode = rootRef.current;
273
- }
274
- const disposer = eventBus.on(ResizeEvent, (e) => {
275
- if (e.payload.slotLocation === id) {
276
- childList.forEach((c) => {
277
- fireResizeEvent(getProp(c, 'slot') || getProp(c, 'id'));
278
- });
279
- }
280
- });
281
- return () => {
282
- disposer.dispose();
283
- };
284
- }, []);
285
-
286
- return (
287
- <div
288
- ref={(ele) => (rootRef.current = ele!)}
289
- {...restProps}
290
- className={clsx(styles['split-panel'], className)}
291
- style={{ flexDirection: Layout.getFlexDirection(direction), ...style }}
292
- >
293
- {elements}
294
- </div>
295
- );
296
- };
@@ -1,21 +0,0 @@
1
- .split-panel {
2
- display: flex;
3
- flex: 1;
4
- width: 100%;
5
- height: 100%;
6
- }
7
-
8
- .box-panel {
9
- display: flex;
10
- width: 100%;
11
- height: 100%;
12
- }
13
-
14
- .ease {
15
- transition: height 0.1s ease-out, width 0.1s ease-out;
16
- }
17
-
18
- .wrapper {
19
- position: relative;
20
- z-index: 2;
21
- }
@@ -1 +0,0 @@
1
- export * from './loading.view';
@@ -1,14 +0,0 @@
1
- .loading_indicator {
2
- width: 20px;
3
- height: 20px;
4
- background-image: url('./media/loading.svg');
5
- background-size: cover;
6
- }
7
-
8
- .vs-dark .loading_indicator {
9
- background-image: url('./media/loading-dark.svg');
10
- }
11
-
12
- .hc-black .loading_indicator {
13
- background-image: url('./media/loading-hc.svg');
14
- }
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
-
3
- import './loading.less';
4
-
5
- export const Loading: React.FC<React.HTMLAttributes<HTMLDivElement>> = () => <div className='loading_indicator ' />;
6
-
7
- Loading.displayName = 'Loading';