@opensumi/ide-terminal-next 2.12.1-next-079c1930

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 (282) hide show
  1. package/README.md +89 -0
  2. package/lib/browser/component/resize.delegate.d.ts +14 -0
  3. package/lib/browser/component/resize.delegate.d.ts.map +1 -0
  4. package/lib/browser/component/resize.delegate.js +47 -0
  5. package/lib/browser/component/resize.delegate.js.map +1 -0
  6. package/lib/browser/component/resize.module.less +55 -0
  7. package/lib/browser/component/resize.view.d.ts +16 -0
  8. package/lib/browser/component/resize.view.d.ts.map +1 -0
  9. package/lib/browser/component/resize.view.js +40 -0
  10. package/lib/browser/component/resize.view.js.map +1 -0
  11. package/lib/browser/component/tab.item.d.ts +7 -0
  12. package/lib/browser/component/tab.item.d.ts.map +1 -0
  13. package/lib/browser/component/tab.item.js +61 -0
  14. package/lib/browser/component/tab.item.js.map +1 -0
  15. package/lib/browser/component/tab.module.less +112 -0
  16. package/lib/browser/component/tab.view.d.ts +4 -0
  17. package/lib/browser/component/tab.view.d.ts.map +1 -0
  18. package/lib/browser/component/tab.view.js +30 -0
  19. package/lib/browser/component/tab.view.js.map +1 -0
  20. package/lib/browser/component/terminal.module.less +69 -0
  21. package/lib/browser/component/terminal.select.d.ts +4 -0
  22. package/lib/browser/component/terminal.select.d.ts.map +1 -0
  23. package/lib/browser/component/terminal.select.js +21 -0
  24. package/lib/browser/component/terminal.select.js.map +1 -0
  25. package/lib/browser/component/terminal.variable.d.ts +8 -0
  26. package/lib/browser/component/terminal.variable.d.ts.map +1 -0
  27. package/lib/browser/component/terminal.variable.js +44 -0
  28. package/lib/browser/component/terminal.variable.js.map +1 -0
  29. package/lib/browser/component/terminal.view.d.ts +5 -0
  30. package/lib/browser/component/terminal.view.d.ts.map +1 -0
  31. package/lib/browser/component/terminal.view.js +68 -0
  32. package/lib/browser/component/terminal.view.js.map +1 -0
  33. package/lib/browser/component/terminal.widget.d.ts +10 -0
  34. package/lib/browser/component/terminal.widget.d.ts.map +1 -0
  35. package/lib/browser/component/terminal.widget.js +51 -0
  36. package/lib/browser/component/terminal.widget.js.map +1 -0
  37. package/lib/browser/component/variable.module.less +15 -0
  38. package/lib/browser/contribution/index.d.ts +7 -0
  39. package/lib/browser/contribution/index.d.ts.map +1 -0
  40. package/lib/browser/contribution/index.js +10 -0
  41. package/lib/browser/contribution/index.js.map +1 -0
  42. package/lib/browser/contribution/terminal.command.d.ts +20 -0
  43. package/lib/browser/contribution/terminal.command.d.ts.map +1 -0
  44. package/lib/browser/contribution/terminal.command.js +215 -0
  45. package/lib/browser/contribution/terminal.command.js.map +1 -0
  46. package/lib/browser/contribution/terminal.keybinding.d.ts +5 -0
  47. package/lib/browser/contribution/terminal.keybinding.d.ts.map +1 -0
  48. package/lib/browser/contribution/terminal.keybinding.js +55 -0
  49. package/lib/browser/contribution/terminal.keybinding.js.map +1 -0
  50. package/lib/browser/contribution/terminal.lifecycle.d.ts +15 -0
  51. package/lib/browser/contribution/terminal.lifecycle.d.ts.map +1 -0
  52. package/lib/browser/contribution/terminal.lifecycle.js +47 -0
  53. package/lib/browser/contribution/terminal.lifecycle.js.map +1 -0
  54. package/lib/browser/contribution/terminal.menu.d.ts +19 -0
  55. package/lib/browser/contribution/terminal.menu.d.ts.map +1 -0
  56. package/lib/browser/contribution/terminal.menu.js +144 -0
  57. package/lib/browser/contribution/terminal.menu.js.map +1 -0
  58. package/lib/browser/contribution/terminal.network.d.ts +11 -0
  59. package/lib/browser/contribution/terminal.network.d.ts.map +1 -0
  60. package/lib/browser/contribution/terminal.network.js +44 -0
  61. package/lib/browser/contribution/terminal.network.js.map +1 -0
  62. package/lib/browser/contribution/terminal.view.d.ts +7 -0
  63. package/lib/browser/contribution/terminal.view.d.ts.map +1 -0
  64. package/lib/browser/contribution/terminal.view.js +55 -0
  65. package/lib/browser/contribution/terminal.view.js.map +1 -0
  66. package/lib/browser/index.d.ts +10 -0
  67. package/lib/browser/index.d.ts.map +1 -0
  68. package/lib/browser/index.js +105 -0
  69. package/lib/browser/index.js.map +1 -0
  70. package/lib/browser/links/base.d.ts +8 -0
  71. package/lib/browser/links/base.d.ts.map +1 -0
  72. package/lib/browser/links/base.js +13 -0
  73. package/lib/browser/links/base.js.map +1 -0
  74. package/lib/browser/links/external-link-provider-adapter.d.ts +18 -0
  75. package/lib/browser/links/external-link-provider-adapter.d.ts.map +1 -0
  76. package/lib/browser/links/external-link-provider-adapter.js +56 -0
  77. package/lib/browser/links/external-link-provider-adapter.js.map +1 -0
  78. package/lib/browser/links/helpers.d.ts +7 -0
  79. package/lib/browser/links/helpers.d.ts.map +1 -0
  80. package/lib/browser/links/helpers.js +129 -0
  81. package/lib/browser/links/helpers.js.map +1 -0
  82. package/lib/browser/links/link-manager.d.ts +61 -0
  83. package/lib/browser/links/link-manager.d.ts.map +1 -0
  84. package/lib/browser/links/link-manager.js +252 -0
  85. package/lib/browser/links/link-manager.js.map +1 -0
  86. package/lib/browser/links/link.d.ts +24 -0
  87. package/lib/browser/links/link.d.ts.map +1 -0
  88. package/lib/browser/links/link.js +92 -0
  89. package/lib/browser/links/link.js.map +1 -0
  90. package/lib/browser/links/protocol-link-provider.d.ts +11 -0
  91. package/lib/browser/links/protocol-link-provider.d.ts.map +1 -0
  92. package/lib/browser/links/protocol-link-provider.js +53 -0
  93. package/lib/browser/links/protocol-link-provider.js.map +1 -0
  94. package/lib/browser/links/validated-local-link-provider.d.ts +31 -0
  95. package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -0
  96. package/lib/browser/links/validated-local-link-provider.js +137 -0
  97. package/lib/browser/links/validated-local-link-provider.js.map +1 -0
  98. package/lib/browser/terminal.addon.d.ts +42 -0
  99. package/lib/browser/terminal.addon.d.ts.map +1 -0
  100. package/lib/browser/terminal.addon.js +169 -0
  101. package/lib/browser/terminal.addon.js.map +1 -0
  102. package/lib/browser/terminal.api.d.ts +34 -0
  103. package/lib/browser/terminal.api.d.ts.map +1 -0
  104. package/lib/browser/terminal.api.js +132 -0
  105. package/lib/browser/terminal.api.js.map +1 -0
  106. package/lib/browser/terminal.client.d.ts +114 -0
  107. package/lib/browser/terminal.client.d.ts.map +1 -0
  108. package/lib/browser/terminal.client.js +518 -0
  109. package/lib/browser/terminal.client.js.map +1 -0
  110. package/lib/browser/terminal.color.d.ts +20 -0
  111. package/lib/browser/terminal.color.d.ts.map +1 -0
  112. package/lib/browser/terminal.color.js +172 -0
  113. package/lib/browser/terminal.color.js.map +1 -0
  114. package/lib/browser/terminal.context-key.d.ts +10 -0
  115. package/lib/browser/terminal.context-key.d.ts.map +1 -0
  116. package/lib/browser/terminal.context-key.js +28 -0
  117. package/lib/browser/terminal.context-key.js.map +1 -0
  118. package/lib/browser/terminal.context-menu.d.ts +15 -0
  119. package/lib/browser/terminal.context-menu.d.ts.map +1 -0
  120. package/lib/browser/terminal.context-menu.js +75 -0
  121. package/lib/browser/terminal.context-menu.js.map +1 -0
  122. package/lib/browser/terminal.controller.d.ts +68 -0
  123. package/lib/browser/terminal.controller.d.ts.map +1 -0
  124. package/lib/browser/terminal.controller.js +367 -0
  125. package/lib/browser/terminal.controller.js.map +1 -0
  126. package/lib/browser/terminal.environment.service.d.ts +27 -0
  127. package/lib/browser/terminal.environment.service.d.ts.map +1 -0
  128. package/lib/browser/terminal.environment.service.js +144 -0
  129. package/lib/browser/terminal.environment.service.js.map +1 -0
  130. package/lib/browser/terminal.error.d.ts +10 -0
  131. package/lib/browser/terminal.error.d.ts.map +1 -0
  132. package/lib/browser/terminal.error.js +58 -0
  133. package/lib/browser/terminal.error.js.map +1 -0
  134. package/lib/browser/terminal.ext.host.proxy.d.ts +58 -0
  135. package/lib/browser/terminal.ext.host.proxy.d.ts.map +1 -0
  136. package/lib/browser/terminal.ext.host.proxy.js +104 -0
  137. package/lib/browser/terminal.ext.host.proxy.js.map +1 -0
  138. package/lib/browser/terminal.input.d.ts +6 -0
  139. package/lib/browser/terminal.input.d.ts.map +1 -0
  140. package/lib/browser/terminal.input.js +32 -0
  141. package/lib/browser/terminal.input.js.map +1 -0
  142. package/lib/browser/terminal.network.d.ts +32 -0
  143. package/lib/browser/terminal.network.d.ts.map +1 -0
  144. package/lib/browser/terminal.network.js +150 -0
  145. package/lib/browser/terminal.network.js.map +1 -0
  146. package/lib/browser/terminal.preference.d.ts +26 -0
  147. package/lib/browser/terminal.preference.d.ts.map +1 -0
  148. package/lib/browser/terminal.preference.js +80 -0
  149. package/lib/browser/terminal.preference.js.map +1 -0
  150. package/lib/browser/terminal.render.d.ts +13 -0
  151. package/lib/browser/terminal.render.d.ts.map +1 -0
  152. package/lib/browser/terminal.render.js +25 -0
  153. package/lib/browser/terminal.render.js.map +1 -0
  154. package/lib/browser/terminal.restore.d.ts +10 -0
  155. package/lib/browser/terminal.restore.d.ts.map +1 -0
  156. package/lib/browser/terminal.restore.js +41 -0
  157. package/lib/browser/terminal.restore.js.map +1 -0
  158. package/lib/browser/terminal.search.d.ts +15 -0
  159. package/lib/browser/terminal.search.d.ts.map +1 -0
  160. package/lib/browser/terminal.search.js +53 -0
  161. package/lib/browser/terminal.search.js.map +1 -0
  162. package/lib/browser/terminal.service.d.ts +60 -0
  163. package/lib/browser/terminal.service.d.ts.map +1 -0
  164. package/lib/browser/terminal.service.js +212 -0
  165. package/lib/browser/terminal.service.js.map +1 -0
  166. package/lib/browser/terminal.theme.d.ts +7 -0
  167. package/lib/browser/terminal.theme.d.ts.map +1 -0
  168. package/lib/browser/terminal.theme.js +50 -0
  169. package/lib/browser/terminal.theme.js.map +1 -0
  170. package/lib/browser/terminal.view.d.ts +99 -0
  171. package/lib/browser/terminal.view.d.ts.map +1 -0
  172. package/lib/browser/terminal.view.js +358 -0
  173. package/lib/browser/terminal.view.js.map +1 -0
  174. package/lib/common/api.d.ts +20 -0
  175. package/lib/common/api.d.ts.map +1 -0
  176. package/lib/common/api.js +5 -0
  177. package/lib/common/api.js.map +1 -0
  178. package/lib/common/client.d.ts +163 -0
  179. package/lib/common/client.d.ts.map +1 -0
  180. package/lib/common/client.js +5 -0
  181. package/lib/common/client.js.map +1 -0
  182. package/lib/common/commands.d.ts +92 -0
  183. package/lib/common/commands.d.ts.map +1 -0
  184. package/lib/common/commands.js +97 -0
  185. package/lib/common/commands.js.map +1 -0
  186. package/lib/common/controller.d.ts +86 -0
  187. package/lib/common/controller.d.ts.map +1 -0
  188. package/lib/common/controller.js +7 -0
  189. package/lib/common/controller.js.map +1 -0
  190. package/lib/common/environmentVariable.d.ts +118 -0
  191. package/lib/common/environmentVariable.d.ts.map +1 -0
  192. package/lib/common/environmentVariable.js +27 -0
  193. package/lib/common/environmentVariable.js.map +1 -0
  194. package/lib/common/environmentVariableCollection.d.ts +10 -0
  195. package/lib/common/environmentVariableCollection.d.ts.map +1 -0
  196. package/lib/common/environmentVariableCollection.js +136 -0
  197. package/lib/common/environmentVariableCollection.js.map +1 -0
  198. package/lib/common/error.d.ts +30 -0
  199. package/lib/common/error.d.ts.map +1 -0
  200. package/lib/common/error.js +5 -0
  201. package/lib/common/error.js.map +1 -0
  202. package/lib/common/extension.d.ts +108 -0
  203. package/lib/common/extension.d.ts.map +1 -0
  204. package/lib/common/extension.js +52 -0
  205. package/lib/common/extension.js.map +1 -0
  206. package/lib/common/index.d.ts +17 -0
  207. package/lib/common/index.d.ts.map +1 -0
  208. package/lib/common/index.js +21 -0
  209. package/lib/common/index.js.map +1 -0
  210. package/lib/common/link-computer.d.ts +56 -0
  211. package/lib/common/link-computer.d.ts.map +1 -0
  212. package/lib/common/link-computer.js +273 -0
  213. package/lib/common/link-computer.js.map +1 -0
  214. package/lib/common/menu.d.ts +5 -0
  215. package/lib/common/menu.d.ts.map +1 -0
  216. package/lib/common/menu.js +9 -0
  217. package/lib/common/menu.js.map +1 -0
  218. package/lib/common/network.d.ts +48 -0
  219. package/lib/common/network.d.ts.map +1 -0
  220. package/lib/common/network.js +10 -0
  221. package/lib/common/network.js.map +1 -0
  222. package/lib/common/preference.d.ts +33 -0
  223. package/lib/common/preference.d.ts.map +1 -0
  224. package/lib/common/preference.js +18 -0
  225. package/lib/common/preference.js.map +1 -0
  226. package/lib/common/pty.d.ts +205 -0
  227. package/lib/common/pty.d.ts.map +1 -0
  228. package/lib/common/pty.js +8 -0
  229. package/lib/common/pty.js.map +1 -0
  230. package/lib/common/render.d.ts +24 -0
  231. package/lib/common/render.d.ts.map +1 -0
  232. package/lib/common/render.js +10 -0
  233. package/lib/common/render.js.map +1 -0
  234. package/lib/common/resize.d.ts +39 -0
  235. package/lib/common/resize.d.ts.map +1 -0
  236. package/lib/common/resize.js +3 -0
  237. package/lib/common/resize.js.map +1 -0
  238. package/lib/common/restore.d.ts +6 -0
  239. package/lib/common/restore.d.ts.map +1 -0
  240. package/lib/common/restore.js +5 -0
  241. package/lib/common/restore.js.map +1 -0
  242. package/lib/common/service.d.ts +88 -0
  243. package/lib/common/service.d.ts.map +1 -0
  244. package/lib/common/service.js +6 -0
  245. package/lib/common/service.js.map +1 -0
  246. package/lib/common/shell.d.ts +10 -0
  247. package/lib/common/shell.d.ts.map +1 -0
  248. package/lib/common/shell.js +14 -0
  249. package/lib/common/shell.js.map +1 -0
  250. package/lib/common/theme.d.ts +6 -0
  251. package/lib/common/theme.d.ts.map +1 -0
  252. package/lib/common/theme.js +5 -0
  253. package/lib/common/theme.js.map +1 -0
  254. package/lib/common/utils.d.ts +4 -0
  255. package/lib/common/utils.d.ts.map +1 -0
  256. package/lib/common/utils.js +21 -0
  257. package/lib/common/utils.js.map +1 -0
  258. package/lib/index.d.ts +2 -0
  259. package/lib/index.d.ts.map +1 -0
  260. package/lib/index.js +5 -0
  261. package/lib/index.js.map +1 -0
  262. package/lib/node/index.d.ts +10 -0
  263. package/lib/node/index.d.ts.map +1 -0
  264. package/lib/node/index.js +35 -0
  265. package/lib/node/index.js.map +1 -0
  266. package/lib/node/pty.d.ts +11 -0
  267. package/lib/node/pty.d.ts.map +1 -0
  268. package/lib/node/pty.js +54 -0
  269. package/lib/node/pty.js.map +1 -0
  270. package/lib/node/shell.d.ts +3 -0
  271. package/lib/node/shell.d.ts.map +1 -0
  272. package/lib/node/shell.js +28 -0
  273. package/lib/node/shell.js.map +1 -0
  274. package/lib/node/terminal.service.client.d.ts +34 -0
  275. package/lib/node/terminal.service.client.d.ts.map +1 -0
  276. package/lib/node/terminal.service.client.js +111 -0
  277. package/lib/node/terminal.service.client.js.map +1 -0
  278. package/lib/node/terminal.service.d.ts +28 -0
  279. package/lib/node/terminal.service.d.ts.map +1 -0
  280. package/lib/node/terminal.service.js +136 -0
  281. package/lib/node/terminal.service.js.map +1 -0
  282. package/package.json +58 -0
package/README.md ADDED
@@ -0,0 +1,89 @@
1
+ # 终端
2
+
3
+ ## 实现方式
4
+
5
+ 实现 src/common/term.ts 文件中的 ITerminalService 类型,并在 src/browser/index.ts 中替换默认的 service 类型。
6
+
7
+ ```ts
8
+ export interface ITerminalService {
9
+ /**
10
+ * 集成方自定义会话唯一标识的函数
11
+ */
12
+ makeId(): string;
13
+ /**
14
+ * 集成方自定义写入到 localStorage 的键值的函数
15
+ */
16
+ restore(): string;
17
+ /**
18
+ * 当关闭 IDE 的时候,允许集成方额外向每一个会话标识写入一个字符串字段,
19
+ * 信息内容由集成方决定
20
+ *
21
+ * @param sessionId 会话唯一标识
22
+ */
23
+ meta(sessionId: string): string;
24
+ /**
25
+ * Xterm 终端的构造选项
26
+ */
27
+ getOptions(): ITerminalOptions;
28
+ /**
29
+ * 用于获取特定会话的相关信息,包括进程 id 以及进程描述的 name,
30
+ * 这个函数允许返回为空
31
+ *
32
+ * @param sessionId 会话唯一标识
33
+ */
34
+ intro(sessionId: string): { pid: number, name: string } | undefined;
35
+ /**
36
+ *
37
+ * @param id 会话唯一标识
38
+ * @param message 发送的字符串信息
39
+ */
40
+ sendText(id: string, message: string): Promise<void>;
41
+ /**
42
+ *
43
+ * @param sessionId 会话唯一标识
44
+ * @param term 返回的 Xterm 终端实例
45
+ * @param restore 是否是恢复一个终端
46
+ * @param meta 恢复终端所需要的额外字段
47
+ * @param attachMethod 将 websocket 连接和 xterm 连接起来的函数
48
+ * @param options 创建一个新终端的进程选项
49
+ */
50
+ attach(sessionId: string, term: Terminal, restore: boolean, meta: string, attachMethod: (s: WebSocket) => void, options?: TerminalOptions): Promise<void>;
51
+ /**
52
+ *
53
+ * @param sessionId 会话唯一标识
54
+ * @param cols resize 的列数
55
+ * @param rows resize 的行数
56
+ */
57
+ resize(sessionId: string, cols: number, rows: number): Promise<void>;
58
+ /**
59
+ * 销毁一个终端进程
60
+ *
61
+ * @param sessionId 会话唯一标识
62
+ */
63
+ disposeById(sessionId: string): void;
64
+ /**
65
+ * 异步向后端获取一个会话的进程 id
66
+ *
67
+ * @param sessionId 会话唯一标识
68
+ */
69
+ getProcessId(sessionId: string): Promise<number>;
70
+
71
+ /**
72
+ * 报错处理的事件
73
+ *
74
+ * @param handler
75
+ */
76
+ onError(handler: (error: ITerminalError) => void): void;
77
+ }
78
+ ```
79
+
80
+ ## 外部和内部 API
81
+
82
+ 对于 common 中默认导出的 api 认为为外部 api,而对于 common 中没有默认导出的类型则认为为内部 api,内部 api 依然可以通过子名称获取到类型进行覆盖或者使用,但是内部 api 的任何 api 修改不作为 bk,不推荐直接使用内部 api。
83
+
84
+ ## 接下来
85
+
86
+ * [ ] 终端首次初始化使用对比的外层 dom 节点需要可指定,这里可能需要使用 core 内部 api 手动计算
87
+ * [ ] 终端 Singleton 模式
88
+ * [ ] 终端后端 Pty 代码优化,需要支持开发时重连
89
+ * [ ] Vim 显示优化
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { IWidget } from '../../common/resize';
3
+ export interface IResizeDelegateProps {
4
+ start: () => void;
5
+ stop: () => void;
6
+ left: IWidget | null;
7
+ self: IWidget;
8
+ right: IWidget | null;
9
+ last: boolean;
10
+ wholeWidth: number;
11
+ }
12
+ declare const _default: (props: IResizeDelegateProps) => JSX.Element;
13
+ export default _default;
14
+ //# sourceMappingURL=resize.delegate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.delegate.d.ts","sourceRoot":"","sources":["../../../src/browser/component/resize.delegate.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;gCAMsB,oBAAoB;AAA3C,wBAwDE"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = (0, tslib_1.__importDefault)(require("react"));
5
+ const resize_module_less_1 = (0, tslib_1.__importDefault)(require("./resize.module.less"));
6
+ // todo: 将这些变量放到一个实例中管理
7
+ let startX = 0;
8
+ let original = null;
9
+ exports.default = (props) => {
10
+ const { start, stop, self, left, right, wholeWidth, last } = props;
11
+ const onMouseDown = (event) => {
12
+ startX = event.clientX;
13
+ original = self;
14
+ start();
15
+ };
16
+ const onMouseMove = (event) => {
17
+ if (!startX) {
18
+ return false;
19
+ }
20
+ const endX = event.clientX;
21
+ const move = (endX - startX) / wholeWidth * 100;
22
+ startX = endX;
23
+ if (move < 0) {
24
+ self && self.increase(move);
25
+ right && right.increase(-move);
26
+ }
27
+ else {
28
+ if (original) {
29
+ if (original === left) {
30
+ self && self.increase(-move);
31
+ left && left.increase(move);
32
+ }
33
+ }
34
+ }
35
+ };
36
+ const onMouseUp = (_) => {
37
+ startX = 0;
38
+ original = null;
39
+ self.resize();
40
+ left && left.resize();
41
+ right && right.resize();
42
+ stop();
43
+ };
44
+ return (react_1.default.createElement("div", { className: resize_module_less_1.default.resizeDelegetContainer, onMouseUp: onMouseUp, onMouseMove: onMouseMove }, !last &&
45
+ react_1.default.createElement("div", { className: resize_module_less_1.default.resizeDelegateBar, onMouseDown: onMouseDown, onMouseUp: onMouseUp })));
46
+ };
47
+ //# sourceMappingURL=resize.delegate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.delegate.js","sourceRoot":"","sources":["../../../src/browser/component/resize.delegate.tsx"],"names":[],"mappings":";;;AAAA,+DAA0B;AAG1B,2FAA0C;AAY1C,uBAAuB;AACvB,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,IAAI,QAAQ,GAAmB,IAAI,CAAC;AAEpC,kBAAe,CAAC,KAA2B,EAAE,EAAE;IAC7C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEnE,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;QAC9C,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;QACvB,QAAQ,GAAG,IAAI,CAAC;QAChB,KAAK,EAAE,CAAC;IACV,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;QAC9C,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,KAAK,CAAC;SACd;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC;QAChD,MAAM,GAAG,IAAI,CAAC;QAEd,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;SAChC;aAAM;YACL,IAAI,QAAQ,EAAE;gBACZ,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACrB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC7B;aACF;SACF;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAmB,EAAE,EAAE;QACxC,MAAM,GAAG,CAAC,CAAC;QACX,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;IAEF,OAAO,CACL,uCACE,SAAS,EAAG,4BAAM,CAAC,sBAAsB,EACzC,SAAS,EAAG,SAAS,EACrB,WAAW,EAAG,WAAW,IAGvB,CAAC,IAAI;QACL,uCACE,SAAS,EAAG,4BAAM,CAAC,iBAAiB,EACpC,WAAW,EAAG,WAAW,EACzB,SAAS,EAAG,SAAS,GAChB,CAEL,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,55 @@
1
+ @import '~@opensumi/ide-core-browser/lib/style/variable.less';
2
+
3
+ .resizeWrapper {
4
+ width: 100%;
5
+ height: 100%;
6
+ user-select: none;
7
+ }
8
+
9
+ .resizePanel {
10
+ position: relative;
11
+ top: 0;
12
+ left: 0;
13
+ height: 100%;
14
+ width: 100%;
15
+ display: flex;
16
+ justify-content: flex-end;
17
+
18
+ .resizeItem {
19
+ width: 100%;
20
+ height: 100%;
21
+ overflow: hidden;
22
+ padding: 0px 2px 0px 10px;
23
+ }
24
+ }
25
+
26
+ .resizeDelegate {
27
+ position: absolute;
28
+ width: 100%;
29
+ height: 100%;
30
+ display: flex;
31
+ pointer-events: all;
32
+ z-index: 1;
33
+
34
+ .resizeHandler {
35
+ width: 100%;
36
+ height: 100%;
37
+
38
+ .resizeDelegetContainer {
39
+ width: 100%;
40
+ height: 100%;
41
+ pointer-events: inherit;
42
+ }
43
+
44
+ .resizeDelegateBar {
45
+ float: right;
46
+ width: 1px;
47
+ height: 100%;
48
+ cursor: ew-resize;
49
+ transform: translateX(1px);
50
+ pointer-events: all;
51
+ background: var(--terminal-foreground);
52
+ opacity: 0.35;
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { IWidget, IWidgetGroup } from '../../common/resize';
3
+ export declare enum ResizeDirection {
4
+ vertical = 0,
5
+ horizontal = 1
6
+ }
7
+ export interface IResizeViewProps {
8
+ direction: ResizeDirection;
9
+ useFlex: boolean;
10
+ shadow: boolean;
11
+ group: IWidgetGroup;
12
+ draw: (widget: IWidget) => JSX.Element;
13
+ }
14
+ declare const _default: React.FunctionComponent<IResizeViewProps>;
15
+ export default _default;
16
+ //# sourceMappingURL=resize.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.view.d.ts","sourceRoot":"","sources":["../../../src/browser/component/resize.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAI5D,oBAAY,eAAe;IACzB,QAAQ,IAAA;IACR,UAAU,IAAA;CACX;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC;CACxC;;AAED,wBAwEG"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResizeDirection = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = (0, tslib_1.__importDefault)(require("react"));
6
+ const mobx_react_lite_1 = require("mobx-react-lite");
7
+ const resize_delegate_1 = (0, tslib_1.__importDefault)(require("./resize.delegate"));
8
+ const resize_module_less_1 = (0, tslib_1.__importDefault)(require("./resize.module.less"));
9
+ var ResizeDirection;
10
+ (function (ResizeDirection) {
11
+ ResizeDirection[ResizeDirection["vertical"] = 0] = "vertical";
12
+ ResizeDirection[ResizeDirection["horizontal"] = 1] = "horizontal";
13
+ })(ResizeDirection = exports.ResizeDirection || (exports.ResizeDirection = {}));
14
+ exports.default = (0, mobx_react_lite_1.observer)((props) => {
15
+ const { group, shadow } = props;
16
+ const [event, setEvent] = react_1.default.useState(false);
17
+ const [wholeWidth, setWholeWidth] = react_1.default.useState(Infinity);
18
+ const whole = react_1.default.createRef();
19
+ react_1.default.useEffect(() => {
20
+ if (whole.current && (whole.current.clientHeight !== wholeWidth)) {
21
+ setWholeWidth(whole.current.clientWidth);
22
+ }
23
+ });
24
+ return (react_1.default.createElement("div", { className: resize_module_less_1.default.resizeWrapper, ref: whole },
25
+ react_1.default.createElement("div", { style: {
26
+ pointerEvents: event ? 'all' : 'none',
27
+ }, className: resize_module_less_1.default.resizeDelegate }, group && group.widgets.map((widget, index) => {
28
+ const left = index - 1 > -1 ? group.widgets[index - 1] : null;
29
+ const self = group.widgets[index];
30
+ const right = index + 1 < group.widgets.length ? group.widgets[index + 1] : null;
31
+ return (react_1.default.createElement("div", { key: `resize-item-${index}`, style: { width: `${widget.shadowDynamic}%` }, className: resize_module_less_1.default.resizeHandler },
32
+ react_1.default.createElement(resize_delegate_1.default, { wholeWidth: wholeWidth, start: () => setEvent(true), stop: () => setEvent(false), self: self, left: left, right: right, last: index === (group.widgets.length - 1) })));
33
+ })),
34
+ react_1.default.createElement("div", { style: {
35
+ pointerEvents: !event ? 'all' : 'none',
36
+ }, className: resize_module_less_1.default.resizePanel }, group && group.widgets.map((widget) => {
37
+ return (react_1.default.createElement("div", { key: widget.id, style: { width: `${shadow ? widget.dynamic : widget.shadowDynamic}%` }, className: resize_module_less_1.default.resizeItem }, props.draw(widget)));
38
+ }))));
39
+ });
40
+ //# sourceMappingURL=resize.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.view.js","sourceRoot":"","sources":["../../../src/browser/component/resize.view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { ItemProps } from '../../common';
3
+ export declare function renderInfoItem(props: ItemProps): JSX.Element;
4
+ export declare function renderAddItem(props: ItemProps): JSX.Element;
5
+ declare const _default: (props: ItemProps) => JSX.Element | null;
6
+ export default _default;
7
+ //# sourceMappingURL=tab.item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.item.d.ts","sourceRoot":"","sources":["../../../src/browser/component/tab.item.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAKnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,eAyD9C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,eAY7C;gCAEsB,SAAS;AAAhC,wBAWE"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderAddItem = exports.renderInfoItem = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = (0, tslib_1.__importDefault)(require("react"));
6
+ const classnames_1 = (0, tslib_1.__importDefault)(require("classnames"));
7
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
8
+ const common_1 = require("../../common");
9
+ const debouce = require("lodash.debounce");
10
+ const tab_module_less_1 = (0, tslib_1.__importDefault)(require("./tab.module.less"));
11
+ function renderInfoItem(props) {
12
+ const handleSelect = debouce(() => props.onClick && props.onClick(), 20);
13
+ const handleClose = debouce(() => props.onClose && props.onClose(), 20);
14
+ const handleOnKeyDown = (e) => {
15
+ if (e.key === 'Enter' && props.onInputEnter && props.id) {
16
+ props.onInputEnter(props.id, e.target.value);
17
+ }
18
+ };
19
+ const ref = react_1.default.useRef(null);
20
+ react_1.default.useEffect(() => {
21
+ var _a;
22
+ // 刚刚选中,滚一下
23
+ if (props.selected) {
24
+ (_a = ref.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
25
+ }
26
+ }, [props.selected]);
27
+ return (react_1.default.createElement("div", { ref: ref, className: (0, classnames_1.default)({
28
+ [tab_module_less_1.default.item_container]: true,
29
+ [tab_module_less_1.default.item_selected]: !!props.selected,
30
+ }), onClick: () => handleSelect(), onContextMenu: (event) => props.onContextMenu && props.onContextMenu(event) },
31
+ props.editable ?
32
+ react_1.default.createElement("input", { autoFocus: true, ref: (ele) => ele && ele.select(), className: tab_module_less_1.default.item_info_input, defaultValue: props.name, onClick: (e) => e.stopPropagation(), onBlur: () => (props.onInputBlur && props.id) && props.onInputBlur(props.id), onKeyDown: (e) => handleOnKeyDown(e) }) :
33
+ react_1.default.createElement("div", { id: props.id, className: tab_module_less_1.default.item_info_name, title: props.name }, props.name),
34
+ props.editable ?
35
+ react_1.default.createElement("div", null) :
36
+ react_1.default.createElement("div", { className: (0, classnames_1.default)([(0, ide_core_browser_1.getIcon)('close'), tab_module_less_1.default.close_icon]), onClick: (event) => {
37
+ event.stopPropagation();
38
+ handleClose();
39
+ } })));
40
+ }
41
+ exports.renderInfoItem = renderInfoItem;
42
+ function renderAddItem(props) {
43
+ const handleAdd = debouce(() => props.onClick && props.onClick(), 20);
44
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)({
45
+ [(0, ide_core_browser_1.getIcon)('plus')]: true,
46
+ [tab_module_less_1.default.item_add]: true,
47
+ }), onClick: () => handleAdd() }));
48
+ }
49
+ exports.renderAddItem = renderAddItem;
50
+ exports.default = (props) => {
51
+ const type = props.type || common_1.ItemType.info;
52
+ switch (type) {
53
+ case common_1.ItemType.info:
54
+ return props.provider.infoItemRender(props);
55
+ case common_1.ItemType.add:
56
+ return props.provider.addItemRender(props);
57
+ default:
58
+ return null;
59
+ }
60
+ };
61
+ //# sourceMappingURL=tab.item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.item.js","sourceRoot":"","sources":["../../../src/browser/component/tab.item.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ .view_container {
2
+ display: flex;
3
+ flex: 1;
4
+ min-width: 0;
5
+ font-size: 12px;
6
+ }
7
+
8
+ .tabs {
9
+ display: flex;
10
+ :first-child {
11
+ &.item_container {
12
+ border-left: 1px solid var(--kt-panelTab-border);
13
+ }
14
+ }
15
+ }
16
+
17
+ .tabs::-webkit-scrollbar {
18
+ display: none;
19
+ }
20
+
21
+ .button {
22
+ flex: 1;
23
+ }
24
+
25
+ .item_container {
26
+ padding: 0px 12px 0px 12px;
27
+ cursor: pointer;
28
+ user-select: none;
29
+ height: 28px;
30
+ display: flex;
31
+ color: var(--kt-panelTab-inactiveForeground);
32
+ background-color: var(--kt-panelTab-inactiveBackground);
33
+ border-right: 1px solid var(--kt-panelTab-border);
34
+ max-width: 800px;
35
+ min-width: 105px;
36
+ align-items: center;
37
+ position: relative;
38
+ :last-child {
39
+ transition: opacity 0.2s ease-in-out;
40
+ opacity: 0;
41
+ line-height: 24px;
42
+ border-right: 0;
43
+ }
44
+ &::before {
45
+ content: '';
46
+ position: absolute;
47
+ left: 0;
48
+ bottom: 0;
49
+ width: 100%;
50
+ height: 1px;
51
+ background-color: var(--kt-panelTab-border);
52
+ }
53
+ }
54
+
55
+ .item_container:hover {
56
+ :last-child {
57
+ opacity: 1;
58
+ }
59
+ }
60
+
61
+ .item_info_name {
62
+ flex: 1;
63
+ margin-right: 8px;
64
+ overflow: hidden;
65
+ text-overflow: ellipsis;
66
+ white-space: nowrap;
67
+ line-height: 20px;
68
+ height: 20px;
69
+ position: relative;
70
+ text-indent: 1px;
71
+ max-width: 160px;
72
+ }
73
+
74
+ .item_info_input {
75
+ flex: 1;
76
+ text-indent: 0px;
77
+ text-align: left;
78
+ border: none;
79
+ outline: none;
80
+ height: 20px;
81
+ line-height: 20px;
82
+ font-size: 12px;
83
+ color: inherit;
84
+ background-color: inherit;
85
+ }
86
+
87
+ .item_selected {
88
+ color: var(--kt-panelTab-activeForeground);
89
+ background-color: var(--kt-panelTab-activeBackground);
90
+ position: relative;
91
+ &::before {
92
+ content: '';
93
+ position: absolute;
94
+ left: 0;
95
+ bottom: -1px;
96
+ width: 100%;
97
+ height: 1px;
98
+ background-color: var(--kt-panelTab-activeBackground);
99
+ }
100
+ }
101
+
102
+ .item_add {
103
+ display: inline-block;
104
+ padding: 0 6px;
105
+ line-height: 28px;
106
+ cursor: pointer;
107
+ user-select: none;
108
+ }
109
+
110
+ .close_icon {
111
+ color: var(--kt-panelTabActionIcon-foreground);
112
+ }
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ declare const _default: React.FunctionComponent<object>;
3
+ export default _default;
4
+ //# sourceMappingURL=tab.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.view.d.ts","sourceRoot":"","sources":["../../../src/browser/component/tab.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;;AAS1B,wBA6CG"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = (0, tslib_1.__importDefault)(require("react"));
5
+ const mobx_react_lite_1 = require("mobx-react-lite");
6
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
+ const common_1 = require("../../common");
8
+ const tab_item_1 = (0, tslib_1.__importDefault)(require("./tab.item"));
9
+ const terminal_context_menu_1 = require("../terminal.context-menu");
10
+ const tab_module_less_1 = (0, tslib_1.__importDefault)(require("./tab.module.less"));
11
+ exports.default = (0, mobx_react_lite_1.observer)(() => {
12
+ const view = (0, ide_core_browser_1.useInjectable)(common_1.ITerminalGroupViewService);
13
+ const provider = (0, ide_core_browser_1.useInjectable)(common_1.ITerminalRenderProvider);
14
+ const menuService = (0, ide_core_browser_1.useInjectable)(terminal_context_menu_1.TerminalContextMenuService);
15
+ return (react_1.default.createElement("div", { className: tab_module_less_1.default.view_container },
16
+ react_1.default.createElement("div", { className: tab_module_less_1.default.tabs }, view.groups.map((group, index) => {
17
+ if (!group) {
18
+ return;
19
+ }
20
+ return (react_1.default.createElement(tab_item_1.default, { key: group.id, id: group.id, editable: group.editable, name: group.snapshot || 'init...', selected: view.currentGroup && view.currentGroup.id === group.id, onInputBlur: () => group.unedit(), onInputEnter: (_, name) => group.rename(name), onClick: () => view.selectGroup(index), onClose: () => view.removeGroup(index), onContextMenu: (event) => menuService.onTabContextMenu(event, index), provider: provider }));
21
+ })),
22
+ react_1.default.createElement("div", { className: tab_module_less_1.default.button },
23
+ react_1.default.createElement(tab_item_1.default, { type: common_1.ItemType.add, onClick: () => {
24
+ const index = view.createGroup();
25
+ const group = view.getGroup(index);
26
+ view.createWidget(group);
27
+ view.selectGroup(index);
28
+ }, provider: provider }))));
29
+ });
30
+ //# sourceMappingURL=tab.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.view.js","sourceRoot":"","sources":["../../../src/browser/component/tab.view.tsx"],"names":[],"mappings":";;;AAAA,+DAA0B;AAC1B,qDAA2C;AAC3C,iEAA2D;AAC3D,yCAA4F;AAC5F,uEAAiC;AACjC,oEAAsE;AAEtE,qFAAuC;AAEvC,kBAAe,IAAA,0BAAQ,EAAC,GAAG,EAAE;IAC3B,MAAM,IAAI,GAAG,IAAA,gCAAa,EAA4B,kCAAyB,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAA0B,gCAAuB,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,IAAA,gCAAa,EAA6B,kDAA0B,CAAC,CAAC;IAE1F,OAAO,CACL,uCAAK,SAAS,EAAG,yBAAM,CAAC,cAAc;QACpC,uCAAK,SAAS,EAAG,yBAAM,CAAC,IAAI,IAExB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO;aACR;YACD,OAAO,CACL,8BAAC,kBAAO,IACN,GAAG,EAAG,KAAK,CAAC,EAAE,EACd,EAAE,EAAG,KAAK,CAAC,EAAE,EACb,QAAQ,EAAG,KAAK,CAAC,QAAQ,EACzB,IAAI,EAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,EAClC,QAAQ,EAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EACjE,WAAW,EAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAClC,YAAY,EAAG,CAAC,CAAS,EAAE,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAC9D,OAAO,EAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EACvC,OAAO,EAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EACvC,aAAa,EAAG,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EACrE,QAAQ,EAAG,QAAQ,GACV,CACZ,CAAC;QACJ,CAAC,CAAC,CAEA;QACN,uCAAK,SAAS,EAAG,yBAAM,CAAC,MAAM;YAC5B,8BAAC,kBAAO,IACN,IAAI,EAAG,iBAAQ,CAAC,GAAG,EACnB,OAAO,EAAG,GAAG,EAAE;oBACb,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACnC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,EACD,QAAQ,EAAG,QAAQ,GACnB,CACE,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ @import "~@opensumi/ide-components/lib/style/mixins.less";
2
+
3
+ .terminalWrapper {
4
+ height: 100%;
5
+ width: 100%;
6
+ }
7
+
8
+ .terminalContainer {
9
+ height: 100%;
10
+ width: 100%;
11
+ position: relative;
12
+ }
13
+
14
+ .terminalInstance {
15
+ height: 100%;
16
+ width: 100%;
17
+ }
18
+
19
+ .group {
20
+ height: 100%;
21
+ width: 100%;
22
+ }
23
+
24
+ .terminalCover {
25
+ position: relative;
26
+ height: 100%;
27
+ width: 100%;
28
+ background: var(--terminal-background);
29
+ opacity: 0.8;
30
+ z-index: 2;
31
+ display: flex;
32
+ justify-content: center;
33
+ align-items: center;
34
+ flex-direction: column;
35
+ }
36
+
37
+ .terminalContent {
38
+ height: 100%;
39
+ width: 100%;
40
+ }
41
+
42
+ .terminalSearch {
43
+ display: flex;
44
+ justify-content: center;
45
+ align-items: center;
46
+ position: absolute;
47
+ z-index: 999;
48
+ right: 16px;
49
+ .overlay-shadow();
50
+ background: var(--kt-panelTitle-background);
51
+
52
+ input {
53
+ background: var(--kt-panelTitle-background);
54
+ border: none;
55
+ outline: none;
56
+ padding: 3px 0px 3px 8px;
57
+ font-size: 12px;
58
+ }
59
+
60
+ div {
61
+ padding: 0px 6px;
62
+ cursor: pointer;
63
+ }
64
+ }
65
+
66
+ .terminalFake {
67
+ position: absolute;
68
+ z-index: -999;
69
+ }
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ declare const _default: React.FunctionComponent<object>;
3
+ export default _default;
4
+ //# sourceMappingURL=terminal.select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.select.d.ts","sourceRoot":"","sources":["../../../src/browser/component/terminal.select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;;AAO1B,wBAsBG"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = (0, tslib_1.__importDefault)(require("react"));
5
+ const mobx_react_lite_1 = require("mobx-react-lite");
6
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
+ const common_1 = require("../../common");
8
+ const terminal_module_less_1 = (0, tslib_1.__importDefault)(require("./terminal.module.less"));
9
+ exports.default = (0, mobx_react_lite_1.observer)(() => {
10
+ const view = (0, ide_core_browser_1.useInjectable)(common_1.ITerminalGroupViewService);
11
+ const onChange = (event) => {
12
+ const index = event.target.value;
13
+ view.selectGroup(parseInt(index, 10));
14
+ };
15
+ const index = view.currentGroupIndex;
16
+ return (react_1.default.createElement("div", { className: terminal_module_less_1.default.toolbarSelect },
17
+ react_1.default.createElement("select", { value: index || 0, onChange: onChange }, (view.groups || []).map((group, index) => {
18
+ return react_1.default.createElement("option", { key: `${group}-${index}`, value: index }, `${index + 1}: ${group.snapshot}`);
19
+ }))));
20
+ });
21
+ //# sourceMappingURL=terminal.select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.select.js","sourceRoot":"","sources":["../../../src/browser/component/terminal.select.tsx"],"names":[],"mappings":";;;AAAA,+DAA0B;AAC1B,qDAA2C;AAC3C,iEAA2D;AAC3D,yCAAyD;AAEzD,+FAA4C;AAE5C,kBAAe,IAAA,0BAAQ,EAAC,GAAG,EAAE;IAE3B,MAAM,IAAI,GAAG,IAAA,gCAAa,EAA4B,kCAAyB,CAAC,CAAC;IAEjF,MAAM,QAAQ,GAAG,CAAC,KAA2C,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAErC,OAAO,CACL,uCAAK,SAAS,EAAE,8BAAM,CAAC,aAAa;QAClC,0CAAQ,KAAK,EAAG,KAAK,IAAI,CAAC,EAAG,QAAQ,EAAG,QAAQ,IAE5C,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,OAAO,0CAAQ,GAAG,EAAG,GAAG,KAAK,IAAI,KAAK,EAAE,EAAG,KAAK,EAAG,KAAK,IAAK,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAW,CAAC;QAC5G,CAAC,CAAC,CAEG,CACL,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { IMergedEnvironmentVariableCollectionDiff } from '../../common/environmentVariable';
3
+ interface ITerminalVariableProps {
4
+ diff: IMergedEnvironmentVariableCollectionDiff;
5
+ }
6
+ export declare const TerminalVariable: ({ diff }: ITerminalVariableProps) => JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=terminal.variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.variable.d.ts","sourceRoot":"","sources":["../../../src/browser/component/terminal.variable.tsx"],"names":[],"mappings":";AAEA,OAAO,EAA6C,wCAAwC,EAAoB,MAAM,kCAAkC,CAAC;AAIzJ,UAAU,sBAAsB;IAC9B,IAAI,EAAE,wCAAwC,CAAC;CAChD;AAeD,eAAO,MAAM,gBAAgB,aAAc,sBAAsB,gBA2ChE,CAAC"}