@opensumi/ide-terminal-next 3.7.2-next-1740052080.0 → 3.7.2-next-1740054042.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/LICENSE +21 -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 +46 -0
  5. package/lib/browser/component/resize.delegate.js.map +1 -0
  6. package/lib/browser/component/resize.module.less +77 -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 +55 -0
  10. package/lib/browser/component/resize.view.js.map +1 -0
  11. package/lib/browser/component/search.module.less +61 -0
  12. package/lib/browser/component/search.view.d.ts +3 -0
  13. package/lib/browser/component/search.view.d.ts.map +1 -0
  14. package/lib/browser/component/search.view.js +89 -0
  15. package/lib/browser/component/search.view.js.map +1 -0
  16. package/lib/browser/component/tab.item.d.ts +7 -0
  17. package/lib/browser/component/tab.item.d.ts.map +1 -0
  18. package/lib/browser/component/tab.item.js +121 -0
  19. package/lib/browser/component/tab.item.js.map +1 -0
  20. package/lib/browser/component/tab.module.less +174 -0
  21. package/lib/browser/component/tab.view.d.ts +4 -0
  22. package/lib/browser/component/tab.view.d.ts.map +1 -0
  23. package/lib/browser/component/tab.view.js +65 -0
  24. package/lib/browser/component/tab.view.js.map +1 -0
  25. package/lib/browser/component/terminal.module.less +50 -0
  26. package/lib/browser/component/terminal.variable.d.ts +8 -0
  27. package/lib/browser/component/terminal.variable.d.ts.map +1 -0
  28. package/lib/browser/component/terminal.variable.js +44 -0
  29. package/lib/browser/component/terminal.variable.js.map +1 -0
  30. package/lib/browser/component/terminal.view.d.ts +5 -0
  31. package/lib/browser/component/terminal.view.d.ts.map +1 -0
  32. package/lib/browser/component/terminal.view.js +63 -0
  33. package/lib/browser/component/terminal.view.js.map +1 -0
  34. package/lib/browser/component/terminal.widget.d.ts +10 -0
  35. package/lib/browser/component/terminal.widget.d.ts.map +1 -0
  36. package/lib/browser/component/terminal.widget.js +65 -0
  37. package/lib/browser/component/terminal.widget.js.map +1 -0
  38. package/lib/browser/component/variable.module.less +15 -0
  39. package/lib/browser/contribution/index.d.ts.map +1 -0
  40. package/lib/browser/contribution/index.js +11 -0
  41. package/lib/browser/contribution/index.js.map +1 -0
  42. package/lib/browser/contribution/terminal.command.js +328 -0
  43. package/lib/browser/contribution/terminal.keybinding.js +87 -0
  44. package/lib/browser/contribution/terminal.lifecycle.js +52 -0
  45. package/lib/browser/contribution/terminal.menu.js +168 -0
  46. package/lib/browser/contribution/terminal.network.js +44 -0
  47. package/lib/browser/contribution/terminal.preference.js +43 -0
  48. package/lib/browser/contribution/terminal.view.js +57 -0
  49. package/lib/browser/index.js +124 -0
  50. package/lib/browser/links/base.d.ts +8 -0
  51. package/lib/browser/links/base.d.ts.map +1 -0
  52. package/lib/browser/links/base.js +13 -0
  53. package/lib/browser/links/base.js.map +1 -0
  54. package/lib/browser/links/external-link-provider-adapter.d.ts +21 -0
  55. package/lib/browser/links/external-link-provider-adapter.d.ts.map +1 -0
  56. package/lib/browser/links/external-link-provider-adapter.js +74 -0
  57. package/lib/browser/links/external-link-provider-adapter.js.map +1 -0
  58. package/lib/browser/links/helpers.d.ts +7 -0
  59. package/lib/browser/links/helpers.d.ts.map +1 -0
  60. package/lib/browser/links/helpers.js +128 -0
  61. package/lib/browser/links/helpers.js.map +1 -0
  62. package/lib/browser/links/link-manager.d.ts +92 -0
  63. package/lib/browser/links/link-manager.d.ts.map +1 -0
  64. package/lib/browser/links/link-manager.js +342 -0
  65. package/lib/browser/links/link-manager.js.map +1 -0
  66. package/lib/browser/links/link.d.ts +31 -0
  67. package/lib/browser/links/link.d.ts.map +1 -0
  68. package/lib/browser/links/link.js +136 -0
  69. package/lib/browser/links/link.js.map +1 -0
  70. package/lib/browser/links/protocol-link-provider.d.ts +14 -0
  71. package/lib/browser/links/protocol-link-provider.d.ts.map +1 -0
  72. package/lib/browser/links/protocol-link-provider.js +71 -0
  73. package/lib/browser/links/protocol-link-provider.js.map +1 -0
  74. package/lib/browser/links/validated-local-link-provider.d.ts +41 -0
  75. package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -0
  76. package/lib/browser/links/validated-local-link-provider.js +235 -0
  77. package/lib/browser/links/validated-local-link-provider.js.map +1 -0
  78. package/lib/browser/links/word-link-provider.d.ts +29 -0
  79. package/lib/browser/links/word-link-provider.d.ts.map +1 -0
  80. package/lib/browser/links/word-link-provider.js +153 -0
  81. package/lib/browser/links/word-link-provider.js.map +1 -0
  82. package/lib/browser/terminal.addon.js +83 -0
  83. package/lib/browser/terminal.api.js +162 -0
  84. package/lib/browser/terminal.client.js +680 -0
  85. package/lib/browser/terminal.color.js +240 -0
  86. package/lib/browser/terminal.context-key.js +29 -0
  87. package/lib/browser/terminal.context-menu.js +96 -0
  88. package/lib/browser/terminal.controller.js +669 -0
  89. package/lib/browser/terminal.environment.service.js +153 -0
  90. package/lib/browser/terminal.error.js +61 -0
  91. package/lib/browser/terminal.ext.host.proxy.js +108 -0
  92. package/lib/browser/terminal.hover.manager.js +85 -0
  93. package/lib/browser/terminal.input.js +32 -0
  94. package/lib/browser/terminal.internal.service.js +107 -0
  95. package/lib/browser/terminal.network.js +150 -0
  96. package/lib/browser/terminal.preference.js +136 -0
  97. package/lib/browser/terminal.profile.internal.js +104 -0
  98. package/lib/browser/terminal.profile.js +211 -0
  99. package/lib/browser/terminal.render.js +25 -0
  100. package/lib/browser/terminal.restore.js +49 -0
  101. package/lib/browser/terminal.search.js +109 -0
  102. package/lib/browser/terminal.service.js +163 -0
  103. package/lib/common/api.d.ts +22 -0
  104. package/lib/common/api.d.ts.map +1 -0
  105. package/lib/common/api.js +5 -0
  106. package/lib/common/api.js.map +1 -0
  107. package/lib/common/client.d.ts +199 -0
  108. package/lib/common/client.d.ts.map +1 -0
  109. package/lib/common/client.js +6 -0
  110. package/lib/common/client.js.map +1 -0
  111. package/lib/common/controller.d.ts +149 -0
  112. package/lib/common/controller.d.ts.map +1 -0
  113. package/lib/common/controller.js +8 -0
  114. package/lib/common/controller.js.map +1 -0
  115. package/lib/common/environmentVariable.d.ts +116 -0
  116. package/lib/common/environmentVariable.d.ts.map +1 -0
  117. package/lib/common/environmentVariable.js +30 -0
  118. package/lib/common/environmentVariable.js.map +1 -0
  119. package/lib/common/environmentVariableCollection.d.ts +9 -0
  120. package/lib/common/environmentVariableCollection.d.ts.map +1 -0
  121. package/lib/common/environmentVariableCollection.js +140 -0
  122. package/lib/common/environmentVariableCollection.js.map +1 -0
  123. package/lib/common/error.d.ts +41 -0
  124. package/lib/common/error.d.ts.map +1 -0
  125. package/lib/common/error.js +13 -0
  126. package/lib/common/error.js.map +1 -0
  127. package/lib/common/extension.d.ts +139 -0
  128. package/lib/common/extension.d.ts.map +1 -0
  129. package/lib/common/extension.js +57 -0
  130. package/lib/common/extension.js.map +1 -0
  131. package/lib/common/index.d.ts +17 -0
  132. package/lib/common/index.d.ts.map +1 -0
  133. package/lib/common/index.js +20 -0
  134. package/lib/common/index.js.map +1 -0
  135. package/lib/common/link-computer.d.ts +56 -0
  136. package/lib/common/link-computer.d.ts.map +1 -0
  137. package/lib/common/link-computer.js +282 -0
  138. package/lib/common/link-computer.js.map +1 -0
  139. package/lib/common/network.d.ts +48 -0
  140. package/lib/common/network.d.ts.map +1 -0
  141. package/lib/common/network.js +10 -0
  142. package/lib/common/network.js.map +1 -0
  143. package/lib/common/preference.d.ts +134 -0
  144. package/lib/common/preference.d.ts.map +1 -0
  145. package/lib/common/preference.js +199 -0
  146. package/lib/common/preference.js.map +1 -0
  147. package/lib/common/process.d.ts +8 -0
  148. package/lib/common/process.d.ts.map +1 -0
  149. package/lib/common/process.js +3 -0
  150. package/lib/common/process.js.map +1 -0
  151. package/lib/common/profile.d.ts +99 -0
  152. package/lib/common/profile.d.ts.map +1 -0
  153. package/lib/common/profile.js +27 -0
  154. package/lib/common/profile.js.map +1 -0
  155. package/lib/common/pty.d.ts +525 -0
  156. package/lib/common/pty.d.ts.map +1 -0
  157. package/lib/common/pty.js +28 -0
  158. package/lib/common/pty.js.map +1 -0
  159. package/lib/common/render.d.ts +29 -0
  160. package/lib/common/render.d.ts.map +1 -0
  161. package/lib/common/render.js +10 -0
  162. package/lib/common/render.js.map +1 -0
  163. package/lib/common/resize.d.ts +43 -0
  164. package/lib/common/resize.d.ts.map +1 -0
  165. package/lib/common/resize.js +3 -0
  166. package/lib/common/resize.js.map +1 -0
  167. package/lib/common/restore.d.ts +6 -0
  168. package/lib/common/restore.d.ts.map +1 -0
  169. package/lib/common/restore.js +5 -0
  170. package/lib/common/restore.js.map +1 -0
  171. package/lib/common/service.d.ts +96 -0
  172. package/lib/common/service.d.ts.map +1 -0
  173. package/lib/common/service.js +6 -0
  174. package/lib/common/service.js.map +1 -0
  175. package/lib/common/shell.d.ts +11 -0
  176. package/lib/common/shell.d.ts.map +1 -0
  177. package/lib/common/shell.js +14 -0
  178. package/lib/common/shell.js.map +1 -0
  179. package/lib/common/theme.d.ts +6 -0
  180. package/lib/common/theme.d.ts.map +1 -0
  181. package/lib/common/theme.js +5 -0
  182. package/lib/common/theme.js.map +1 -0
  183. package/lib/common/utils.d.ts +4 -0
  184. package/lib/common/utils.d.ts.map +1 -0
  185. package/lib/common/utils.js +15 -0
  186. package/lib/common/utils.js.map +1 -0
  187. package/lib/common/xterm.d.ts +27 -0
  188. package/lib/common/xterm.d.ts.map +1 -0
  189. package/lib/common/xterm.js +10 -0
  190. package/lib/common/xterm.js.map +1 -0
  191. package/lib/index.js +5 -0
  192. package/lib/node/data-store.d.ts +13 -0
  193. package/lib/node/data-store.d.ts.map +1 -0
  194. package/lib/node/data-store.js +6 -0
  195. package/lib/node/data-store.js.map +1 -0
  196. package/lib/node/index.d.ts +10 -0
  197. package/lib/node/index.d.ts.map +1 -0
  198. package/lib/node/index.js +64 -0
  199. package/lib/node/index.js.map +1 -0
  200. package/lib/node/pty.d.ts +42 -0
  201. package/lib/node/pty.d.ts.map +1 -0
  202. package/lib/node/pty.js +277 -0
  203. package/lib/node/pty.js.map +1 -0
  204. package/lib/node/pty.manager.d.ts +52 -0
  205. package/lib/node/pty.manager.d.ts.map +1 -0
  206. package/lib/node/pty.manager.js +157 -0
  207. package/lib/node/pty.manager.js.map +1 -0
  208. package/lib/node/pty.manager.remote.d.ts +23 -0
  209. package/lib/node/pty.manager.remote.d.ts.map +1 -0
  210. package/lib/node/pty.manager.remote.js +124 -0
  211. package/lib/node/pty.manager.remote.js.map +1 -0
  212. package/lib/node/pty.proxy.d.ts +45 -0
  213. package/lib/node/pty.proxy.d.ts.map +1 -0
  214. package/lib/node/pty.proxy.js +277 -0
  215. package/lib/node/pty.proxy.js.map +1 -0
  216. package/lib/node/pty.proxy.remote.exec.d.ts +2 -0
  217. package/lib/node/pty.proxy.remote.exec.d.ts.map +1 -0
  218. package/lib/node/pty.proxy.remote.exec.js +7 -0
  219. package/lib/node/pty.proxy.remote.exec.js.map +1 -0
  220. package/lib/node/shell-integration.service.d.ts +24 -0
  221. package/lib/node/shell-integration.service.d.ts.map +1 -0
  222. package/lib/node/shell-integration.service.js +187 -0
  223. package/lib/node/shell-integration.service.js.map +1 -0
  224. package/lib/node/shell.d.ts +20 -0
  225. package/lib/node/shell.d.ts.map +1 -0
  226. package/lib/node/shell.js +199 -0
  227. package/lib/node/shell.js.map +1 -0
  228. package/lib/node/terminal.process.service.d.ts +5 -0
  229. package/lib/node/terminal.process.service.d.ts.map +1 -0
  230. package/lib/node/terminal.process.service.js +15 -0
  231. package/lib/node/terminal.process.service.js.map +1 -0
  232. package/lib/node/terminal.profile.service.d.ts +19 -0
  233. package/lib/node/terminal.profile.service.d.ts.map +1 -0
  234. package/lib/node/terminal.profile.service.js +228 -0
  235. package/lib/node/terminal.profile.service.js.map +1 -0
  236. package/lib/node/terminal.service.client.d.ts +51 -0
  237. package/lib/node/terminal.service.client.d.ts.map +1 -0
  238. package/lib/node/terminal.service.client.js +159 -0
  239. package/lib/node/terminal.service.client.js.map +1 -0
  240. package/lib/node/terminal.service.d.ts +30 -0
  241. package/lib/node/terminal.service.d.ts.map +1 -0
  242. package/lib/node/terminal.service.js +246 -0
  243. package/lib/node/terminal.service.js.map +1 -0
  244. package/package.json +18 -18
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019-present Alibaba Group Holding Limited, Ant Group Co. Ltd.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,14 @@
1
+ import React from '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) => React.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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,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,wBA6CE"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const resize_module_less_1 = 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 && react_1.default.createElement("div", { className: resize_module_less_1.default.resizeDelegateBar, onMouseDown: onMouseDown, onMouseUp: onMouseUp })));
45
+ };
46
+ //# 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,0DAA0B;AAI1B,sFAA0C;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,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;QAClD,MAAM,GAAG,IAAI,CAAC;QAEd,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;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,uCAAK,SAAS,EAAE,4BAAM,CAAC,sBAAsB,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,IAC1F,CAAC,IAAI,IAAI,uCAAK,SAAS,EAAE,4BAAM,CAAC,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAQ,CACtG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,77 @@
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
+ position: relative;
20
+ width: 100%;
21
+ height: 100%;
22
+ overflow: hidden;
23
+ padding: 8px 20px 0 10px;
24
+ .closeBtn {
25
+ display: none;
26
+ position: absolute;
27
+ right: 12px;
28
+ top: 10px;
29
+ cursor: pointer;
30
+ border-radius: 4px;
31
+ font-size: 14px;
32
+ width: 16px;
33
+ height: 16px;
34
+ line-height: 16px;
35
+ &:hover {
36
+ background-color: var(--kt-icon-hoverBackground);
37
+ transform: scale(1.1);
38
+ }
39
+ }
40
+ &:hover {
41
+ .closeBtn {
42
+ display: block;
43
+ }
44
+ }
45
+ }
46
+ }
47
+
48
+ .resizeDelegate {
49
+ position: absolute;
50
+ width: 100%;
51
+ height: 100%;
52
+ display: flex;
53
+ pointer-events: all;
54
+ z-index: 1;
55
+
56
+ .resizeHandler {
57
+ width: 100%;
58
+ height: 100%;
59
+
60
+ .resizeDelegetContainer {
61
+ width: 100%;
62
+ height: 100%;
63
+ pointer-events: inherit;
64
+ }
65
+
66
+ .resizeDelegateBar {
67
+ float: right;
68
+ width: 1px;
69
+ height: 100%;
70
+ cursor: ew-resize;
71
+ transform: translateX(1px);
72
+ pointer-events: all;
73
+ background: var(--terminal-border);
74
+ opacity: 0.35;
75
+ }
76
+ }
77
+ }
@@ -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: (props: IResizeViewProps) => React.JSX.Element;
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":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAK5D,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;gCAqCsB,gBAAgB;AAAvC,wBA0DE"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResizeDirection = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
6
+ const react_1 = tslib_1.__importDefault(require("react"));
7
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
8
+ const controller_1 = require("../../common/controller");
9
+ const resize_delegate_1 = tslib_1.__importDefault(require("./resize.delegate"));
10
+ const resize_module_less_1 = tslib_1.__importDefault(require("./resize.module.less"));
11
+ var ResizeDirection;
12
+ (function (ResizeDirection) {
13
+ ResizeDirection[ResizeDirection["vertical"] = 0] = "vertical";
14
+ ResizeDirection[ResizeDirection["horizontal"] = 1] = "horizontal";
15
+ })(ResizeDirection || (exports.ResizeDirection = ResizeDirection = {}));
16
+ const ResizeItem = ({ index, widget, wholeWidth, setEvent, self, left, right, last }) => {
17
+ const shadowDynamic = (0, ide_core_browser_1.useAutorun)(widget.shadowDynamic);
18
+ return (react_1.default.createElement("div", { key: `resize-item-${index}`, style: { width: `${shadowDynamic}%` }, className: resize_module_less_1.default.resizeHandler },
19
+ react_1.default.createElement(resize_delegate_1.default, { wholeWidth: wholeWidth, start: () => setEvent(true), stop: () => setEvent(false), self: self, left: left, right: right, last: last })));
20
+ };
21
+ const ResizePanelItem = ({ widget, dynamic, draw, handleRemoveWidget, widgetsLength }) => {
22
+ const _dynamic = (0, ide_core_browser_1.useAutorun)(dynamic);
23
+ return (react_1.default.createElement("div", { key: widget.id, style: { width: `${_dynamic}%` }, className: resize_module_less_1.default.resizeItem },
24
+ draw(widget),
25
+ widgetsLength > 1 && (react_1.default.createElement("div", { className: (0, classnames_1.default)(resize_module_less_1.default.closeBtn, (0, ide_core_browser_1.getIcon)('close')), onClick: () => {
26
+ handleRemoveWidget(widget.id);
27
+ } }))));
28
+ };
29
+ exports.default = (props) => {
30
+ const { group, shadow } = props;
31
+ const widgets = (0, ide_core_browser_1.useAutorun)(group.widgets);
32
+ const [event, setEvent] = react_1.default.useState(false);
33
+ const [wholeWidth, setWholeWidth] = react_1.default.useState(Infinity);
34
+ const view = (0, ide_core_browser_1.useInjectable)(controller_1.ITerminalGroupViewService);
35
+ const whole = react_1.default.useRef(null);
36
+ react_1.default.useEffect(() => {
37
+ if (whole.current && whole.current.clientHeight !== wholeWidth) {
38
+ setWholeWidth(whole.current.clientWidth);
39
+ }
40
+ });
41
+ const handleRemoveWidget = react_1.default.useCallback((widgetId) => {
42
+ view.removeWidget(widgetId);
43
+ }, []);
44
+ return (react_1.default.createElement("div", { className: resize_module_less_1.default.resizeWrapper, ref: whole },
45
+ react_1.default.createElement("div", { style: { pointerEvents: event ? 'all' : 'none' }, className: resize_module_less_1.default.resizeDelegate }, widgets &&
46
+ widgets.map((widget, index) => {
47
+ const left = index - 1 > -1 ? widgets[index - 1] : null;
48
+ const self = widgets[index];
49
+ const right = index + 1 < widgets.length ? widgets[index + 1] : null;
50
+ return (react_1.default.createElement(ResizeItem, { key: index, index: index, widget: widget, wholeWidth: wholeWidth, setEvent: setEvent, self: self, left: left, right: right, last: index === widgets.length - 1 }));
51
+ })),
52
+ react_1.default.createElement("div", { style: { pointerEvents: !event ? 'all' : 'none' }, className: resize_module_less_1.default.resizePanel }, widgets &&
53
+ widgets.map((widget) => (react_1.default.createElement(ResizePanelItem, { key: widget.id, widget: widget, dynamic: shadow ? widget.dynamic : widget.shadowDynamic, draw: props.draw, handleRemoveWidget: handleRemoveWidget, widgetsLength: widgets.length }))))));
54
+ };
55
+ //# 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,61 @@
1
+ @option-size: 20px;
2
+
3
+ .terminalSearch {
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ position: absolute;
8
+ z-index: 999;
9
+ right: 16px;
10
+ border-radius: 2px;
11
+ padding: 6px 8px;
12
+ box-shadow: rgba(0, 0, 0, 0.133) 0px 3.2px 7.2px 0px, rgba(0, 0, 0, 0.11) 0px 0.6px 1.8px 0px;
13
+ background: var(--kt-panelTitle-background);
14
+
15
+ .searchField {
16
+ &:focus {
17
+ border-color: var(--focusBorder);
18
+ }
19
+
20
+ .optionBtn {
21
+ width: @option-size;
22
+ height: @option-size;
23
+ margin: 0 1px;
24
+ box-sizing: border-box;
25
+ display: flex;
26
+ justify-content: center;
27
+ user-select: none;
28
+ background-repeat: no-repeat;
29
+ background-position: center;
30
+ border: 1px solid transparent;
31
+ cursor: pointer;
32
+ opacity: 0.7;
33
+
34
+ &:hover {
35
+ opacity: 1;
36
+ }
37
+
38
+ &::before {
39
+ display: inline-block;
40
+ height: @option-size - 2;
41
+ line-height: @option-size - 2;
42
+ }
43
+
44
+ &.select {
45
+ background-color: var(--inputOption-activeBackground);
46
+ border-color: var(--inputOption-activeBorder);
47
+ opacity: 1;
48
+ }
49
+ }
50
+ }
51
+
52
+ .panelBtn {
53
+ padding: 0px 6px;
54
+ cursor: pointer;
55
+ }
56
+
57
+ .searchResult {
58
+ margin: 0 4px;
59
+ font-size: 14px;
60
+ }
61
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const TerminalSearch: React.FC<{}>;
3
+ //# sourceMappingURL=search.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.view.d.ts","sourceRoot":"","sources":["../../../src/browser/component/search.view.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAmItC,CAAC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TerminalSearch = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
6
+ const react_1 = tslib_1.__importDefault(require("react"));
7
+ const ide_components_1 = require("@opensumi/ide-components");
8
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
9
+ const common_1 = require("../../common");
10
+ const search_module_less_1 = tslib_1.__importDefault(require("./search.module.less"));
11
+ exports.TerminalSearch = react_1.default.memo((props) => {
12
+ const searchService = (0, ide_core_browser_1.useInjectable)(common_1.ITerminalSearchService);
13
+ const [UIState, setUIState] = react_1.default.useState(searchService.UIState);
14
+ const [searchResult, setSearchResult] = react_1.default.useState(null);
15
+ const [inputText, setInputText] = react_1.default.useState(searchService.text || '');
16
+ const inputRef = react_1.default.useRef(null);
17
+ react_1.default.useEffect(() => {
18
+ const dispose = searchService.onVisibleChange((show) => {
19
+ if (show && inputRef.current) {
20
+ inputRef.current.focus();
21
+ if (inputRef.current.value.length > 0) {
22
+ inputRef.current.setSelectionRange(0, inputRef.current.value.length);
23
+ }
24
+ }
25
+ });
26
+ return () => dispose.dispose();
27
+ }, [searchService]);
28
+ react_1.default.useEffect(() => {
29
+ if (!searchService.onResultChange) {
30
+ return;
31
+ }
32
+ const dispose = searchService.onResultChange((event) => {
33
+ setSearchResult(event);
34
+ });
35
+ return () => dispose.dispose();
36
+ }, [searchService]);
37
+ const searchInput = react_1.default.useCallback((event) => {
38
+ searchService.text = event.target.value;
39
+ searchService.search();
40
+ setInputText(event.target.value);
41
+ }, [searchService]);
42
+ const searchKeyDown = react_1.default.useCallback((event) => {
43
+ if (event.key === 'Enter') {
44
+ searchService.search();
45
+ }
46
+ if (event.key === 'Escape') {
47
+ searchService.close();
48
+ searchService.clear();
49
+ }
50
+ }, [searchService]);
51
+ const toggleMatchCase = react_1.default.useCallback(() => {
52
+ searchService.updateUIState({ isMatchCase: !UIState.isMatchCase });
53
+ setUIState(searchService.UIState);
54
+ }, [searchService, UIState]);
55
+ const toggleRegex = react_1.default.useCallback(() => {
56
+ searchService.updateUIState({ isUseRegexp: !UIState.isUseRegexp });
57
+ setUIState(searchService.UIState);
58
+ }, [searchService, UIState]);
59
+ const toggleWholeWord = react_1.default.useCallback(() => {
60
+ searchService.updateUIState({ isWholeWord: !UIState.isWholeWord });
61
+ setUIState(searchService.UIState);
62
+ }, [searchService, UIState]);
63
+ const searchNext = react_1.default.useCallback(() => {
64
+ searchService.searchNext();
65
+ }, [searchService]);
66
+ const searchPrev = react_1.default.useCallback(() => {
67
+ searchService.searchPrevious();
68
+ }, [searchService]);
69
+ const close = react_1.default.useCallback(() => {
70
+ searchService.close();
71
+ }, [searchService]);
72
+ return (react_1.default.createElement("div", { className: search_module_less_1.default.terminalSearch },
73
+ react_1.default.createElement(ide_components_1.ValidateInput, { className: search_module_less_1.default.searchField, autoFocus: true, id: 'search-input-field', title: (0, ide_core_browser_1.localize)('search.input.placeholder'), type: 'text', value: inputText, placeholder: (0, ide_core_browser_1.localize)('common.find'), onKeyDown: searchKeyDown, onChange: searchInput, ref: inputRef, validateMessage: undefined, addonAfter: [
74
+ react_1.default.createElement("span", { key: (0, ide_core_browser_1.localize)('search.caseDescription'), className: (0, classnames_1.default)((0, ide_core_browser_1.getIcon)('ab'), search_module_less_1.default['match-case'], search_module_less_1.default.optionBtn, {
75
+ [search_module_less_1.default.select]: UIState.isMatchCase,
76
+ }), title: (0, ide_core_browser_1.localize)('search.caseDescription'), onClick: toggleMatchCase }),
77
+ react_1.default.createElement("span", { key: (0, ide_core_browser_1.localize)('search.wordsDescription'), className: (0, classnames_1.default)((0, ide_core_browser_1.getIcon)('abl'), search_module_less_1.default['whole-word'], search_module_less_1.default.optionBtn, {
78
+ [search_module_less_1.default.select]: UIState.isWholeWord,
79
+ }), title: (0, ide_core_browser_1.localize)('search.wordsDescription'), onClick: toggleWholeWord }),
80
+ react_1.default.createElement("span", { key: (0, ide_core_browser_1.localize)('search.regexDescription'), className: (0, classnames_1.default)((0, ide_core_browser_1.getIcon)('regex'), search_module_less_1.default['use-regexp'], search_module_less_1.default.optionBtn, {
81
+ [search_module_less_1.default.select]: UIState.isUseRegexp,
82
+ }), title: (0, ide_core_browser_1.localize)('search.regexDescription'), onClick: toggleRegex }),
83
+ ] }),
84
+ react_1.default.createElement("div", { className: search_module_less_1.default.searchResult }, searchResult ? `${searchResult.resultIndex + 1}/${searchResult.resultCount}` : '0/0'),
85
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(search_module_less_1.default.panelBtn, (0, ide_core_browser_1.getIcon)('up')), onClick: searchPrev }),
86
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(search_module_less_1.default.panelBtn, (0, ide_core_browser_1.getIcon)('down')), onClick: searchNext }),
87
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(search_module_less_1.default.panelBtn, (0, ide_core_browser_1.getIcon)('close')), onClick: close })));
88
+ });
89
+ //# sourceMappingURL=search.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.view.js","sourceRoot":"","sources":["../../../src/browser/component/search.view.tsx"],"names":[],"mappings":";;;;AAAA,oEAA6B;AAC7B,0DAA0B;AAE1B,6DAAyD;AACzD,iEAA8E;AAE9E,yCAAqE;AAErE,sFAA0C;AAE7B,QAAA,cAAc,GAAiB,eAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;IAC/D,MAAM,aAAa,GAAG,IAAA,gCAAa,EAAyB,+BAAsB,CAAC,CAAC;IACpF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAuB,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEtD,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE;YACrD,IAAI,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC7B,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAEzB,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;YACrD,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CACnC,CAAC,KAA0C,EAAE,EAAE;QAC7C,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACxC,aAAa,CAAC,MAAM,EAAE,CAAC;QACvB,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,KAA4C,EAAE,EAAE;QAC/C,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1B,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3B,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,aAAa,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,eAAe,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,aAAa,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7B,MAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,aAAa,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7B,MAAM,eAAe,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,aAAa,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7B,MAAM,UAAU,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,aAAa,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,UAAU,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,aAAa,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,KAAK,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACnC,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,CACL,uCAAK,SAAS,EAAE,4BAAM,CAAC,cAAc;QACnC,8BAAC,8BAAa,IACZ,SAAS,EAAE,4BAAM,CAAC,WAAW,EAC7B,SAAS,QACT,EAAE,EAAC,oBAAoB,EACvB,KAAK,EAAE,IAAA,2BAAQ,EAAC,0BAA0B,CAAC,EAC3C,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,IAAA,2BAAQ,EAAC,aAAa,CAAC,EACpC,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,WAAW,EACrB,GAAG,EAAE,QAAQ,EACb,eAAe,EAAE,SAAS,EAC1B,UAAU,EAAE;gBACV,wCACE,GAAG,EAAE,IAAA,2BAAQ,EAAC,wBAAwB,CAAC,EACvC,SAAS,EAAE,IAAA,oBAAG,EAAC,IAAA,0BAAO,EAAC,IAAI,CAAC,EAAE,4BAAM,CAAC,YAAY,CAAC,EAAE,4BAAM,CAAC,SAAS,EAAE;wBACpE,CAAC,4BAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW;qBACrC,CAAC,EACF,KAAK,EAAE,IAAA,2BAAQ,EAAC,wBAAwB,CAAC,EACzC,OAAO,EAAE,eAAe,GAClB;gBACR,wCACE,GAAG,EAAE,IAAA,2BAAQ,EAAC,yBAAyB,CAAC,EACxC,SAAS,EAAE,IAAA,oBAAG,EAAC,IAAA,0BAAO,EAAC,KAAK,CAAC,EAAE,4BAAM,CAAC,YAAY,CAAC,EAAE,4BAAM,CAAC,SAAS,EAAE;wBACrE,CAAC,4BAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW;qBACrC,CAAC,EACF,KAAK,EAAE,IAAA,2BAAQ,EAAC,yBAAyB,CAAC,EAC1C,OAAO,EAAE,eAAe,GAClB;gBACR,wCACE,GAAG,EAAE,IAAA,2BAAQ,EAAC,yBAAyB,CAAC,EACxC,SAAS,EAAE,IAAA,oBAAG,EAAC,IAAA,0BAAO,EAAC,OAAO,CAAC,EAAE,4BAAM,CAAC,YAAY,CAAC,EAAE,4BAAM,CAAC,SAAS,EAAE;wBACvE,CAAC,4BAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW;qBACrC,CAAC,EACF,KAAK,EAAE,IAAA,2BAAQ,EAAC,yBAAyB,CAAC,EAC1C,OAAO,EAAE,WAAW,GACd;aACT,GACD;QACF,uCAAK,SAAS,EAAE,4BAAM,CAAC,YAAY,IAChC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,GAAG,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CACjF;QACN,uCAAK,SAAS,EAAE,IAAA,oBAAG,EAAC,4BAAM,CAAC,QAAQ,EAAE,IAAA,0BAAO,EAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAQ;QAChF,uCAAK,SAAS,EAAE,IAAA,oBAAG,EAAC,4BAAM,CAAC,QAAQ,EAAE,IAAA,0BAAO,EAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAQ;QAClF,uCAAK,SAAS,EAAE,IAAA,oBAAG,EAAC,4BAAM,CAAC,QAAQ,EAAE,IAAA,0BAAO,EAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,GAAQ,CAC1E,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ItemProps } from '../../common';
3
+ export declare const renderInfoItem: (props: ItemProps) => React.JSX.Element | null;
4
+ export declare const renderAddItem: (props: ItemProps) => React.JSX.Element;
5
+ declare const _default: (props: ItemProps) => React.FunctionComponentElement<ItemProps> | 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":"AAEA,OAAO,KAAuE,MAAM,OAAO,CAAC;AAiB5F,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAInD,eAAO,MAAM,cAAc,UAAW,SAAS,6BA0I9C,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,SAAS,sBA0B7C,CAAC;gCAEqB,SAAS;AAAhC,wBAUE"}
@@ -0,0 +1,121 @@
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 classnames_1 = tslib_1.__importDefault(require("classnames"));
6
+ const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
7
+ const react_1 = tslib_1.__importStar(require("react"));
8
+ const icon_1 = require("@opensumi/ide-components/lib/icon/icon");
9
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
10
+ const loading_1 = require("@opensumi/ide-core-browser/lib/components/loading");
11
+ const constants_1 = require("@opensumi/ide-core-browser/lib/layout/constants");
12
+ const browser_1 = require("@opensumi/ide-theme/lib/browser");
13
+ const common_1 = require("../../common");
14
+ const tab_module_less_1 = tslib_1.__importDefault(require("./tab.module.less"));
15
+ const renderInfoItem = (props) => {
16
+ var _a, _b, _c, _d;
17
+ const iconService = (0, ide_core_browser_1.useInjectable)(browser_1.IconService);
18
+ const handleSelect = (0, debounce_1.default)(() => props.onClick && props.onClick(), 20);
19
+ const handleClose = (0, debounce_1.default)(() => props.onClose && props.onClose(), 20);
20
+ const styles_item_container = (0, ide_core_browser_1.useDesignStyles)(tab_module_less_1.default.item_container, 'item_container');
21
+ const styles_tab_item_selected = (0, ide_core_browser_1.useDesignStyles)(tab_module_less_1.default.tab_item_selected, 'tab_item_selected');
22
+ const styles_item_info_name = (0, ide_core_browser_1.useDesignStyles)(tab_module_less_1.default.item_info_name, 'item_info_name');
23
+ const styles_tab_close_icon = (0, ide_core_browser_1.useDesignStyles)(tab_module_less_1.default.tab_close_icon, 'tab_close_icon');
24
+ const layoutViewSize = (0, ide_core_browser_1.useInjectable)(constants_1.LayoutViewSizeConfig);
25
+ const ref = (0, react_1.useRef)(null);
26
+ const { group } = props;
27
+ if (!group) {
28
+ return null;
29
+ }
30
+ const { options, id } = group;
31
+ const editable = (0, ide_core_browser_1.useAutorun)(group.editable);
32
+ const name = (0, ide_core_browser_1.useAutorun)(group.snapshot);
33
+ const handleOnKeyDown = (0, react_1.useCallback)((e) => {
34
+ if (e.key === 'Enter' && props.onInputEnter && id) {
35
+ props.onInputEnter(id, e.target.value);
36
+ }
37
+ }, [id, props.onInputEnter]);
38
+ (0, react_1.useEffect)(() => {
39
+ var _a;
40
+ if (props.selected) {
41
+ (_a = ref.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
42
+ }
43
+ }, [ref, props.selected]);
44
+ let iconClass;
45
+ if (options === null || options === void 0 ? void 0 : options.icon) {
46
+ if ((_a = options.icon) === null || _a === void 0 ? void 0 : _a.id) {
47
+ iconClass = iconService.fromString(`$(${(_b = options.icon) === null || _b === void 0 ? void 0 : _b.id})`);
48
+ }
49
+ else if (options.icon instanceof ide_core_browser_1.URI) {
50
+ iconClass = iconService.fromIcon(options === null || options === void 0 ? void 0 : options.icon.toString());
51
+ }
52
+ else if (((_c = options.icon) === null || _c === void 0 ? void 0 : _c.light) || ((_d = options === null || options === void 0 ? void 0 : options.icon) === null || _d === void 0 ? void 0 : _d.dark)) {
53
+ iconClass =
54
+ props.theme === 'light'
55
+ ? iconService.fromIcon(options.icon.light.toString())
56
+ : iconService.fromIcon(options.icon.dark.toString());
57
+ }
58
+ }
59
+ const handleDragStart = (0, react_1.useCallback)((e) => {
60
+ var _a;
61
+ (_a = props.onDragStart) === null || _a === void 0 ? void 0 : _a.call(props, e);
62
+ }, [props.onDragStart]);
63
+ const handleDragOver = (0, react_1.useCallback)((e) => {
64
+ e.preventDefault();
65
+ if (ref.current) {
66
+ ref.current.classList.add('on-drag-over');
67
+ }
68
+ }, [ref]);
69
+ const handleDragLeave = (0, react_1.useCallback)(() => {
70
+ if (ref.current) {
71
+ ref.current.classList.remove('on-drag-over');
72
+ }
73
+ }, [ref]);
74
+ const handleDrop = (0, react_1.useCallback)((e) => {
75
+ var _a;
76
+ if (ref.current) {
77
+ ref.current.classList.remove('on-drag-over');
78
+ }
79
+ (_a = props.onDrop) === null || _a === void 0 ? void 0 : _a.call(props, e);
80
+ }, [ref, props.onDrop]);
81
+ return (react_1.default.createElement("div", { draggable: props.draggable, onDragStart: handleDragStart, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, ref: ref, className: (0, classnames_1.default)({
82
+ [styles_item_container]: true,
83
+ [styles_tab_item_selected]: !!props.selected,
84
+ }), style: { height: layoutViewSize.panelTitleBarHeight }, onClick: () => handleSelect(), onContextMenu: (event) => props.onContextMenu && props.onContextMenu(event) },
85
+ editable ? (react_1.default.createElement("input", { autoFocus: true, ref: (ele) => ele && ele.select(), className: tab_module_less_1.default.item_info_input, defaultValue: name, onClick: (e) => e.stopPropagation(), onBlur: () => props.onInputBlur && group.id && props.onInputBlur(group.id), onKeyDown: (e) => handleOnKeyDown(e) })) : (react_1.default.createElement("div", { id: group.id, className: styles_item_info_name, title: name }, name !== '' ? (react_1.default.createElement(react_1.default.Fragment, null,
86
+ react_1.default.createElement(icon_1.Icon, { iconClass: iconClass ? iconClass : (0, ide_core_browser_1.getIcon)((name === null || name === void 0 ? void 0 : name.toLowerCase()) || 'terminal') || (0, ide_core_browser_1.getIcon)('terminal'), style: { marginRight: 4, color: 'inherit', fontSize: 14 } }),
87
+ react_1.default.createElement("span", { className: tab_module_less_1.default.item_title }, name))) : (react_1.default.createElement(loading_1.Loading, null)))),
88
+ editable ? (react_1.default.createElement("div", null)) : (react_1.default.createElement("div", { className: (0, classnames_1.default)([(0, ide_core_browser_1.getIcon)('close'), styles_tab_close_icon]), onClick: (event) => {
89
+ event.stopPropagation();
90
+ handleClose();
91
+ } }))));
92
+ };
93
+ exports.renderInfoItem = renderInfoItem;
94
+ const renderAddItem = (props) => {
95
+ const handleAdd = (0, debounce_1.default)(() => props.onClick && props.onClick(), 20);
96
+ const keybinding = props.getKeybinding && props.getKeybinding(ide_core_browser_1.TERMINAL_COMMANDS.ADD.id);
97
+ const createTitle = keybinding ? `${(0, ide_core_browser_1.localize)('terminal.new')}(${keybinding})` : (0, ide_core_browser_1.localize)('terminal.new');
98
+ const style_tab_item_wrapper = (0, ide_core_browser_1.useDesignStyles)(tab_module_less_1.default.tab_item_wrapper, 'tab_item_wrapper');
99
+ return (react_1.default.createElement("div", { className: style_tab_item_wrapper },
100
+ react_1.default.createElement("div", { title: createTitle, className: (0, classnames_1.default)({
101
+ [(0, ide_core_browser_1.getIcon)('plus')]: true,
102
+ [tab_module_less_1.default.item_add]: true,
103
+ }), onClick: () => handleAdd() }),
104
+ react_1.default.createElement("div", { title: (0, ide_core_browser_1.localize)('terminal.new.type'), className: (0, classnames_1.default)({
105
+ [(0, ide_core_browser_1.getIcon)('down')]: true,
106
+ [tab_module_less_1.default.item_more]: true,
107
+ }), onClick: props.onDropdown })));
108
+ };
109
+ exports.renderAddItem = renderAddItem;
110
+ exports.default = (props) => {
111
+ const type = props.type || common_1.ItemType.info;
112
+ switch (type) {
113
+ case common_1.ItemType.info:
114
+ return (0, react_1.createElement)(props.provider.infoItemRender, props);
115
+ case common_1.ItemType.add:
116
+ return (0, react_1.createElement)(props.provider.addItemRender, props);
117
+ default:
118
+ return null;
119
+ }
120
+ };
121
+ //# 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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"}