@opensumi/playwright 2.21.13 → 2.22.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 (155) hide show
  1. package/lib/app.d.ts +2 -1
  2. package/lib/app.d.ts.map +1 -1
  3. package/lib/app.js +21 -9
  4. package/lib/app.js.map +1 -1
  5. package/lib/component-editor.d.ts +2 -2
  6. package/lib/debug-view.d.ts +10 -0
  7. package/lib/debug-view.d.ts.map +1 -1
  8. package/lib/debug-view.js +41 -1
  9. package/lib/debug-view.js.map +1 -1
  10. package/lib/diff-editor.d.ts +4 -0
  11. package/lib/diff-editor.d.ts.map +1 -0
  12. package/lib/diff-editor.js +8 -0
  13. package/lib/diff-editor.js.map +1 -0
  14. package/lib/editor.d.ts +6 -5
  15. package/lib/editor.d.ts.map +1 -1
  16. package/lib/editor.js +6 -2
  17. package/lib/editor.js.map +1 -1
  18. package/lib/explorer-view.d.ts +4 -0
  19. package/lib/explorer-view.d.ts.map +1 -1
  20. package/lib/explorer-view.js +36 -10
  21. package/lib/explorer-view.js.map +1 -1
  22. package/lib/filetree-view.d.ts +1 -1
  23. package/lib/filetree-view.js +2 -2
  24. package/lib/filetree-view.js.map +1 -1
  25. package/lib/index.d.ts +2 -1
  26. package/lib/index.d.ts.map +1 -1
  27. package/lib/index.js +2 -1
  28. package/lib/index.js.map +1 -1
  29. package/lib/menu.d.ts +1 -1
  30. package/lib/opened-editor-view.d.ts +2 -2
  31. package/lib/opened-editor-view.d.ts.map +1 -1
  32. package/lib/opened-editor-view.js +4 -4
  33. package/lib/opened-editor-view.js.map +1 -1
  34. package/lib/outline-view.d.ts +9 -0
  35. package/lib/outline-view.d.ts.map +1 -0
  36. package/lib/outline-view.js +38 -0
  37. package/lib/outline-view.js.map +1 -0
  38. package/lib/output-view.d.ts +10 -0
  39. package/lib/output-view.d.ts.map +1 -0
  40. package/lib/output-view.js +78 -0
  41. package/lib/output-view.js.map +1 -0
  42. package/lib/panel.js +2 -2
  43. package/lib/panel.js.map +1 -1
  44. package/lib/scm-view.d.ts +21 -0
  45. package/lib/scm-view.d.ts.map +1 -0
  46. package/lib/scm-view.js +65 -0
  47. package/lib/scm-view.js.map +1 -0
  48. package/lib/search-view.d.ts +34 -0
  49. package/lib/search-view.d.ts.map +1 -1
  50. package/lib/search-view.js +196 -4
  51. package/lib/search-view.js.map +1 -1
  52. package/lib/source-control-view.d.ts +8 -0
  53. package/lib/source-control-view.d.ts.map +1 -0
  54. package/lib/source-control-view.js +45 -0
  55. package/lib/source-control-view.js.map +1 -0
  56. package/lib/terminal-view.d.ts +10 -0
  57. package/lib/terminal-view.d.ts.map +1 -0
  58. package/lib/terminal-view.js +50 -0
  59. package/lib/terminal-view.js.map +1 -0
  60. package/lib/tests/debug.test.js +49 -0
  61. package/lib/tests/debug.test.js.map +1 -1
  62. package/lib/tests/editor/undoRedo.test.d.ts +2 -0
  63. package/lib/tests/editor/undoRedo.test.d.ts.map +1 -0
  64. package/lib/tests/editor/undoRedo.test.js +52 -0
  65. package/lib/tests/editor/undoRedo.test.js.map +1 -0
  66. package/lib/tests/editor.test.js +0 -2
  67. package/lib/tests/editor.test.js.map +1 -1
  68. package/lib/tests/explorer-view.test.js +129 -5
  69. package/lib/tests/explorer-view.test.js.map +1 -1
  70. package/lib/tests/output.test.d.ts +2 -0
  71. package/lib/tests/output.test.d.ts.map +1 -0
  72. package/lib/tests/output.test.js +76 -0
  73. package/lib/tests/output.test.js.map +1 -0
  74. package/lib/tests/scm.test.js +42 -4
  75. package/lib/tests/scm.test.js.map +1 -1
  76. package/lib/tests/search-view.test.js +191 -8
  77. package/lib/tests/search-view.test.js.map +1 -1
  78. package/lib/tests/settings.test.d.ts +2 -0
  79. package/lib/tests/settings.test.d.ts.map +1 -0
  80. package/lib/tests/settings.test.js +95 -0
  81. package/lib/tests/settings.test.js.map +1 -0
  82. package/lib/text-editor.d.ts +7 -3
  83. package/lib/text-editor.d.ts.map +1 -1
  84. package/lib/text-editor.js +15 -0
  85. package/lib/text-editor.js.map +1 -1
  86. package/lib/tree-node.d.ts +3 -1
  87. package/lib/tree-node.d.ts.map +1 -1
  88. package/lib/tree-node.js +4 -4
  89. package/lib/tree-node.js.map +1 -1
  90. package/lib/utils/key.d.ts +1 -0
  91. package/lib/utils/key.d.ts.map +1 -1
  92. package/lib/utils/key.js +6 -1
  93. package/lib/utils/key.js.map +1 -1
  94. package/lib/view.js +1 -1
  95. package/lib/view.js.map +1 -1
  96. package/package.json +12 -11
  97. package/src/app.ts +148 -0
  98. package/src/component-editor.ts +64 -0
  99. package/src/constans/index.ts +18 -0
  100. package/src/context-menu.ts +27 -0
  101. package/src/debug-view.ts +73 -0
  102. package/src/diff-editor.ts +3 -0
  103. package/src/editor.ts +135 -0
  104. package/src/explorer-view.ts +149 -0
  105. package/src/filetree-view.ts +28 -0
  106. package/src/index.ts +20 -0
  107. package/src/menu-item.ts +40 -0
  108. package/src/menu.ts +69 -0
  109. package/src/menubar.ts +53 -0
  110. package/src/opened-editor-view.ts +28 -0
  111. package/src/outline-view.ts +37 -0
  112. package/src/output-view.ts +76 -0
  113. package/src/panel.ts +50 -0
  114. package/src/quick-command-palette.ts +62 -0
  115. package/src/quick-open-palette.ts +62 -0
  116. package/src/scm-view.ts +72 -0
  117. package/src/search-view.ts +260 -0
  118. package/src/source-control-view.ts +44 -0
  119. package/src/terminal-view.ts +50 -0
  120. package/src/tests/app.test.ts +16 -0
  121. package/src/tests/debug.test.ts +121 -0
  122. package/src/tests/editor/undoRedo.test.ts +55 -0
  123. package/src/tests/editor.test.ts +141 -0
  124. package/src/tests/explorer-view.test.ts +329 -0
  125. package/src/tests/hooks/index.ts +13 -0
  126. package/src/tests/keymaps.test.ts +118 -0
  127. package/src/tests/language.test.ts +55 -0
  128. package/src/tests/output.test.ts +87 -0
  129. package/src/tests/scm.test.ts +84 -0
  130. package/src/tests/search-view.test.ts +239 -0
  131. package/src/tests/settings.test.ts +115 -0
  132. package/src/tests/workspaces/debug/.sumi/launch.json +15 -0
  133. package/src/tests/workspaces/debug/index.js +18 -0
  134. package/src/tests/workspaces/default/editor-undo-redo.text +0 -0
  135. package/src/tests/workspaces/default/editor.js +0 -0
  136. package/src/tests/workspaces/default/editor2.js +87 -0
  137. package/src/tests/workspaces/default/editor3.js +0 -0
  138. package/src/tests/workspaces/default/test/test.js +1 -0
  139. package/src/tests/workspaces/git-workspace/a.js +0 -0
  140. package/src/tests/workspaces/language/definition.ts +12 -0
  141. package/src/tests/workspaces/language/reference.ts +9 -0
  142. package/src/tests/workspaces/search/index.js +5 -0
  143. package/src/tests/workspaces/search/index2.js +1 -0
  144. package/src/text-editor.ts +333 -0
  145. package/src/tree-node.ts +98 -0
  146. package/src/utils/element.ts +35 -0
  147. package/src/utils/index.ts +2 -0
  148. package/src/utils/key.ts +11 -0
  149. package/src/view-base.ts +11 -0
  150. package/src/view.ts +90 -0
  151. package/src/workspace.ts +36 -0
  152. package/lib/terminal.d.ts +0 -7
  153. package/lib/terminal.d.ts.map +0 -1
  154. package/lib/terminal.js +0 -25
  155. package/lib/terminal.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenSumiOutlineView = void 0;
4
+ const context_menu_1 = require("./context-menu");
5
+ const view_1 = require("./view");
6
+ class OpenSumiOutlineView extends view_1.OpenSumiView {
7
+ constructor(app) {
8
+ super(app, {
9
+ viewSelector: '[data-view-id="outline-view"]',
10
+ tabSelector: '[data-view-id="outline-view"] [tabindex="0"]',
11
+ name: 'OUTLINE',
12
+ });
13
+ }
14
+ async getTitleActionByName(name) {
15
+ const header = await this.getTabElement();
16
+ if (!header) {
17
+ return;
18
+ }
19
+ await header.hover();
20
+ const titleAction = await header.waitForSelector('[class*="titleActions___"]');
21
+ const actions = await titleAction.$$('[class*="iconAction__"]');
22
+ for (const action of actions) {
23
+ const title = await action.getAttribute('title');
24
+ if (name === title) {
25
+ return action;
26
+ }
27
+ }
28
+ }
29
+ async openTabContextMenu() {
30
+ const header = await this.getTabElement();
31
+ if (!header) {
32
+ return;
33
+ }
34
+ return context_menu_1.OpenSumiContextMenu.open(this.app, async () => header);
35
+ }
36
+ }
37
+ exports.OpenSumiOutlineView = OpenSumiOutlineView;
38
+ //# sourceMappingURL=outline-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline-view.js","sourceRoot":"","sources":["../src/outline-view.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AACrD,iCAAsC;AAEtC,MAAa,mBAAoB,SAAQ,mBAAY;IACnD,YAAY,GAAgB;QAC1B,KAAK,CAAC,GAAG,EAAE;YACT,YAAY,EAAE,+BAA+B;YAC7C,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,IAAI,KAAK,KAAK,EAAE;gBAClB,OAAO,MAAM,CAAC;aACf;SACF;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,OAAO,kCAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;CACF;AAhCD,kDAgCC"}
@@ -0,0 +1,10 @@
1
+ import { OpenSumiApp } from './app';
2
+ import { OpenSumiPanel } from './panel';
3
+ export declare class OpenSumiOutputView extends OpenSumiPanel {
4
+ constructor(app: OpenSumiApp);
5
+ setChannel(type: string): Promise<void>;
6
+ getCurrentContent(): Promise<string | undefined>;
7
+ clean(): Promise<void>;
8
+ getAction(name: string): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | undefined>;
9
+ }
10
+ //# sourceMappingURL=output-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-view.d.ts","sourceRoot":"","sources":["../src/output-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,qBAAa,kBAAmB,SAAQ,aAAa;gBACvC,GAAG,EAAE,WAAW;IAItB,UAAU,CAAC,IAAI,EAAE,MAAM;IAwBvB,iBAAiB;IAkBjB,KAAK;IAKL,SAAS,CAAC,IAAI,EAAE,MAAM;CAoB7B"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenSumiOutputView = void 0;
4
+ const panel_1 = require("./panel");
5
+ class OpenSumiOutputView extends panel_1.OpenSumiPanel {
6
+ constructor(app) {
7
+ super(app, 'OUTPUT');
8
+ }
9
+ async setChannel(type) {
10
+ var _a;
11
+ const visible = await this.isVisible();
12
+ if (!visible) {
13
+ await this.open();
14
+ }
15
+ const titleBar = await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$('[class*="panel_title_bar___"]'));
16
+ const select = await (titleBar === null || titleBar === void 0 ? void 0 : titleBar.$('.kt-select-option'));
17
+ if (select) {
18
+ await select.click();
19
+ const wrapper = await (titleBar === null || titleBar === void 0 ? void 0 : titleBar.$('.kt-select-options'));
20
+ const options = await (wrapper === null || wrapper === void 0 ? void 0 : wrapper.$$('span'));
21
+ if (!options) {
22
+ return;
23
+ }
24
+ for (const option of options) {
25
+ const text = await option.textContent();
26
+ if (text === type) {
27
+ await option.click();
28
+ return;
29
+ }
30
+ }
31
+ }
32
+ }
33
+ async getCurrentContent() {
34
+ var _a;
35
+ const visible = await this.isVisible();
36
+ if (!visible) {
37
+ await this.open();
38
+ }
39
+ const content = await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$('[class*="output___"]'));
40
+ const lines = await (content === null || content === void 0 ? void 0 : content.$$('.view-line'));
41
+ if (!lines) {
42
+ return;
43
+ }
44
+ let text = '';
45
+ for (const line of lines) {
46
+ const lineText = await line.textContent();
47
+ text += lineText + '\n';
48
+ }
49
+ return text;
50
+ }
51
+ async clean() {
52
+ const button = await this.getAction('Clear Output Panel');
53
+ await (button === null || button === void 0 ? void 0 : button.click());
54
+ }
55
+ async getAction(name) {
56
+ var _a;
57
+ const visible = await this.isVisible();
58
+ if (!visible) {
59
+ await this.open();
60
+ }
61
+ const titleBar = await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$('[class*="panel_title_bar___"]'));
62
+ const actions = await (titleBar === null || titleBar === void 0 ? void 0 : titleBar.$$('[class*="titleActions___"]'));
63
+ if (!actions) {
64
+ return;
65
+ }
66
+ for (const action of actions) {
67
+ const items = await action.$$('[class*="iconAction__"]');
68
+ for (const item of items) {
69
+ const title = await item.getAttribute('title');
70
+ if (title === name) {
71
+ return item;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ exports.OpenSumiOutputView = OpenSumiOutputView;
78
+ //# sourceMappingURL=output-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-view.js","sourceRoot":"","sources":["../src/output-view.ts"],"names":[],"mappings":"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"}
package/lib/panel.js CHANGED
@@ -9,7 +9,7 @@ class OpenSumiPanel extends view_base_1.OpenSumiViewBase {
9
9
  this.whenReady = this.init();
10
10
  }
11
11
  get viewSelector() {
12
- return `.${this.viewId}`;
12
+ return `[data-viewlet-id="${this.viewId.toLocaleLowerCase()}"]`;
13
13
  }
14
14
  async init() {
15
15
  this.view = await this.page.$(this.viewSelector);
@@ -24,7 +24,7 @@ class OpenSumiPanel extends view_base_1.OpenSumiViewBase {
24
24
  return;
25
25
  }
26
26
  await this.app.quickOpenPalette.type('view ');
27
- await this.app.quickOpenPalette.trigger(this.viewId.toLocaleUpperCase());
27
+ await this.app.quickOpenPalette.trigger(this.viewId);
28
28
  await this.waitForVisible();
29
29
  this.view = await this.page.$(this.viewSelector);
30
30
  return this;
package/lib/panel.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":";;;AAGA,2CAA+C;AAE/C,MAAsB,aAAc,SAAQ,4BAAgB;IAI1D,YAAY,GAAgB,EAAU,MAAc;QAClD,KAAK,CAAC,GAAG,CAAC,CAAC;QADyB,WAAM,GAAN,MAAM,CAAQ;QAElD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAS;;QACb,MAAM,IAAI,CAAC,SAAS,CAAC;QACrB,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK;;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE,CAAA,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF;AA5CD,sCA4CC"}
1
+ {"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":";;;AAGA,2CAA+C;AAE/C,MAAsB,aAAc,SAAQ,4BAAgB;IAI1D,YAAY,GAAgB,EAAU,MAAc;QAClD,KAAK,CAAC,GAAG,CAAC,CAAC;QADyB,WAAM,GAAN,MAAM,CAAQ;QAElD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,qBAAqB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAS;;QACb,MAAM,IAAI,CAAC,SAAS,CAAC;QACrB,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK;;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE,CAAA,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF;AA5CD,sCA4CC"}
@@ -0,0 +1,21 @@
1
+ import { OpenSumiApp } from './app';
2
+ import { OpenSumiOpenedEditorView } from './opened-editor-view';
3
+ import { OpenSumiPanel } from './panel';
4
+ import { OpenSumiSourceControlView } from './source-control-view';
5
+ import { OpenSumiTreeNode } from './tree-node';
6
+ export declare class OpenSumiSCMFileStatNode extends OpenSumiTreeNode {
7
+ getFsPath(): Promise<string | null>;
8
+ isFolder(): Promise<boolean | undefined>;
9
+ getMenuItemByName(name: string): Promise<import("./menu-item").OpenSumiMenuItem | undefined>;
10
+ open(): Promise<void>;
11
+ getBadge(): Promise<string | null | undefined>;
12
+ }
13
+ export declare class OpenSumiSCMView extends OpenSumiPanel {
14
+ private _scmView;
15
+ private _openedEditorView;
16
+ constructor(app: OpenSumiApp);
17
+ get scmView(): OpenSumiSourceControlView;
18
+ get openedEditorView(): OpenSumiOpenedEditorView;
19
+ getFileStatTreeNodeByPath(path: string): Promise<OpenSumiSCMFileStatNode | undefined>;
20
+ }
21
+ //# sourceMappingURL=scm-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scm-view.d.ts","sourceRoot":"","sources":["../src/scm-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,uBAAwB,SAAQ,gBAAgB;IACrD,SAAS;IAIT,QAAQ;IASR,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAM9B,IAAI;IAIJ,QAAQ;CAIf;AAED,qBAAa,eAAgB,SAAQ,aAAa;IAChD,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,iBAAiB,CAA2B;gBAExC,GAAG,EAAE,WAAW;IAK5B,IAAI,OAAO,8BAEV;IAED,IAAI,gBAAgB,6BAEnB;IAEK,yBAAyB,CAAC,IAAI,EAAE,MAAM;CAkB7C"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenSumiSCMView = exports.OpenSumiSCMFileStatNode = void 0;
4
+ const panel_1 = require("./panel");
5
+ const source_control_view_1 = require("./source-control-view");
6
+ const tree_node_1 = require("./tree-node");
7
+ class OpenSumiSCMFileStatNode extends tree_node_1.OpenSumiTreeNode {
8
+ async getFsPath() {
9
+ return await this.elementHandle.getAttribute('title');
10
+ }
11
+ async isFolder() {
12
+ const icon = await this.elementHandle.$("[class*='file_icon___']");
13
+ if (!icon) {
14
+ return false;
15
+ }
16
+ const className = await icon.getAttribute('class');
17
+ return className === null || className === void 0 ? void 0 : className.includes('folder-icon');
18
+ }
19
+ async getMenuItemByName(name) {
20
+ const contextMenu = await this.openContextMenu();
21
+ const menuItem = await contextMenu.menuItemByName(name);
22
+ return menuItem;
23
+ }
24
+ async open() {
25
+ await this.elementHandle.click();
26
+ }
27
+ async getBadge() {
28
+ const status = await this.elementHandle.$('[class*="scm_tree_node_status___"]');
29
+ return await (status === null || status === void 0 ? void 0 : status.textContent());
30
+ }
31
+ }
32
+ exports.OpenSumiSCMFileStatNode = OpenSumiSCMFileStatNode;
33
+ class OpenSumiSCMView extends panel_1.OpenSumiPanel {
34
+ constructor(app) {
35
+ super(app, 'SCM');
36
+ this._scmView = new source_control_view_1.OpenSumiSourceControlView(app, 'SOURCE CONTROL');
37
+ }
38
+ get scmView() {
39
+ return this._scmView;
40
+ }
41
+ get openedEditorView() {
42
+ return this._openedEditorView;
43
+ }
44
+ async getFileStatTreeNodeByPath(path) {
45
+ var _a, _b;
46
+ const treeItems = await ((_a = (await this.scmView.getViewElement())) === null || _a === void 0 ? void 0 : _a.$$('[class*="scm_tree_node___"]'));
47
+ if (!treeItems) {
48
+ return;
49
+ }
50
+ let node;
51
+ for (const item of treeItems) {
52
+ const title = await item.getAttribute('title');
53
+ // title maybe `a.js • Untracked`
54
+ if ((_b = title === null || title === void 0 ? void 0 : title.split(' ')[0]) === null || _b === void 0 ? void 0 : _b.endsWith(path)) {
55
+ node = item;
56
+ break;
57
+ }
58
+ }
59
+ if (node) {
60
+ return new OpenSumiSCMFileStatNode(node, this.app);
61
+ }
62
+ }
63
+ }
64
+ exports.OpenSumiSCMView = OpenSumiSCMView;
65
+ //# sourceMappingURL=scm-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scm-view.js","sourceRoot":"","sources":["../src/scm-view.ts"],"names":[],"mappings":";;;AAEA,mCAAwC;AACxC,+DAAkE;AAClE,2CAA+C;AAE/C,MAAa,uBAAwB,SAAQ,4BAAgB;IAC3D,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,KAAK,CAAC;SACd;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;QAChF,OAAO,MAAM,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,CAAA,CAAC;IACrC,CAAC;CACF;AA5BD,0DA4BC;AAED,MAAa,eAAgB,SAAQ,qBAAa;IAIhD,YAAY,GAAgB;QAC1B,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,+CAAyB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,IAAY;;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAA,MAAA,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,0CAAE,EAAE,CAAC,6BAA6B,CAAC,CAAA,CAAC;QACjG,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;QACD,IAAI,IAAI,CAAC;QACT,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC/C,iCAAiC;YACjC,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,0CAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACxC,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM;aACP;SACF;QACD,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;SACpD;IACH,CAAC;CACF;AAnCD,0CAmCC"}
@@ -1,13 +1,47 @@
1
1
  import { OpenSumiApp } from './app';
2
2
  import { OpenSumiPanel } from './panel';
3
+ import { OpenSumiTreeNode } from './tree-node';
4
+ export interface ISearchOptions {
5
+ search: string;
6
+ include?: string;
7
+ exclude?: string;
8
+ useDefaultExclude?: boolean;
9
+ useRegexp?: boolean;
10
+ isMatchWhileWord?: boolean;
11
+ isMatchCase?: boolean;
12
+ }
13
+ export declare class OpenSumiSearchFileStatNode extends OpenSumiTreeNode {
14
+ getFsPath(): Promise<string | null>;
15
+ isFile(): Promise<boolean | undefined>;
16
+ getMenuItemByName(name: string): Promise<import("./menu-item").OpenSumiMenuItem | undefined>;
17
+ open(): Promise<void>;
18
+ getBadge(): Promise<string | null | undefined>;
19
+ }
3
20
  export declare class OpenSumiSearchView extends OpenSumiPanel {
4
21
  constructor(app: OpenSumiApp);
5
22
  get searchInputSelector(): string;
6
23
  get replaceInputSelector(): string;
24
+ get includeInputSelector(): string;
25
+ get excludeInputSelector(): string;
7
26
  getSearchResult(): Promise<{
8
27
  results: any;
9
28
  files: any;
10
29
  }>;
30
+ getReplaceAllButton(): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | null | undefined>;
11
31
  focusOnSearch(): Promise<void>;
32
+ focusOnReplace(): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | null>;
33
+ focusOnExclude(): Promise<void>;
34
+ focusOnInclude(): Promise<void>;
35
+ getSearchInput(): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | null | undefined>;
36
+ getReplaceInput(): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | null | undefined>;
37
+ getExcludeInput(): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | null | undefined>;
38
+ getIncludeInput(): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | null | undefined>;
39
+ getSearchAction(value: string): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | undefined>;
40
+ activeSearchAction(value: string): Promise<void>;
41
+ deactiveSearchAction(value: string): Promise<void>;
42
+ toggleDisplaySearchRules(expected?: boolean): Promise<void>;
43
+ toggleUseDefaultExclude(expected?: boolean): Promise<void>;
44
+ search(options: ISearchOptions): Promise<void>;
45
+ getTreeNodeByIndex(index: number): Promise<OpenSumiSearchFileStatNode | undefined>;
12
46
  }
13
47
  //# sourceMappingURL=search-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-view.d.ts","sourceRoot":"","sources":["../src/search-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,qBAAa,kBAAmB,SAAQ,aAAa;gBACvC,GAAG,EAAE,WAAW;IAI5B,IAAI,mBAAmB,WAEtB;IAED,IAAI,oBAAoB,WAEvB;IAEK,eAAe;;;;IAmBf,aAAa;CAQpB"}
1
+ {"version":3,"file":"search-view.d.ts","sourceRoot":"","sources":["../src/search-view.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAQD,qBAAa,0BAA2B,SAAQ,gBAAgB;IACxD,SAAS;IAIT,MAAM;IASN,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAM9B,IAAI;IAIJ,QAAQ;CAIf;AAED,qBAAa,kBAAmB,SAAQ,aAAa;gBACvC,GAAG,EAAE,WAAW;IAI5B,IAAI,mBAAmB,WAEtB;IAED,IAAI,oBAAoB,WAEvB;IAED,IAAI,oBAAoB,WAEvB;IAED,IAAI,oBAAoB,WAEvB;IAEK,eAAe;;;;IAmBf,mBAAmB;IAKnB,aAAa;IAUb,cAAc;IAUd,cAAc;IASd,cAAc;IASd,cAAc;IAId,eAAe;IAIf,eAAe;IAIf,eAAe;IAIf,eAAe,CAAC,KAAK,EAAE,MAAM;IAa7B,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAShC,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAQlC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,OAAO;IAc3C,uBAAuB,CAAC,QAAQ,CAAC,EAAE,OAAO;IAc1C,MAAM,CAAC,OAAO,EAAE,cAAc;IAwC9B,kBAAkB,CAAC,KAAK,EAAE,MAAM;CAUvC"}
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenSumiSearchView = void 0;
3
+ exports.OpenSumiSearchView = exports.OpenSumiSearchFileStatNode = void 0;
4
+ const ide_utils_1 = require("@opensumi/ide-utils");
4
5
  const panel_1 = require("./panel");
6
+ const tree_node_1 = require("./tree-node");
7
+ const SEARCH_OPTIONS = {
8
+ MATCH_CASE: 'Match Case',
9
+ MATCH_WHOLE_WORD: 'Match Whole Word',
10
+ USE_REGEXP: 'Use Regular Expression',
11
+ };
12
+ class OpenSumiSearchFileStatNode extends tree_node_1.OpenSumiTreeNode {
13
+ async getFsPath() {
14
+ return await this.elementHandle.getAttribute('title');
15
+ }
16
+ async isFile() {
17
+ const icon = await this.elementHandle.$("[class*='icon__']");
18
+ if (!icon) {
19
+ return false;
20
+ }
21
+ const className = await icon.getAttribute('class');
22
+ return className === null || className === void 0 ? void 0 : className.includes('file-icon');
23
+ }
24
+ async getMenuItemByName(name) {
25
+ const contextMenu = await this.openContextMenu();
26
+ const menuItem = await contextMenu.menuItemByName(name);
27
+ return menuItem;
28
+ }
29
+ async open() {
30
+ await this.elementHandle.click();
31
+ }
32
+ async getBadge() {
33
+ const status = await this.elementHandle.$('[class*="status___"]');
34
+ return await (status === null || status === void 0 ? void 0 : status.textContent());
35
+ }
36
+ }
37
+ exports.OpenSumiSearchFileStatNode = OpenSumiSearchFileStatNode;
5
38
  class OpenSumiSearchView extends panel_1.OpenSumiPanel {
6
39
  constructor(app) {
7
- super(app, 'search');
40
+ super(app, 'SEARCH');
8
41
  }
9
42
  get searchInputSelector() {
10
43
  return '#search-input-field';
@@ -12,6 +45,12 @@ class OpenSumiSearchView extends panel_1.OpenSumiPanel {
12
45
  get replaceInputSelector() {
13
46
  return '#replace-input-field';
14
47
  }
48
+ get includeInputSelector() {
49
+ return '#include-input-field';
50
+ }
51
+ get excludeInputSelector() {
52
+ return '#exclude-input-field';
53
+ }
15
54
  async getSearchResult() {
16
55
  let results;
17
56
  let files;
@@ -30,13 +69,166 @@ class OpenSumiSearchView extends panel_1.OpenSumiPanel {
30
69
  files,
31
70
  };
32
71
  }
72
+ async getReplaceAllButton() {
73
+ var _a;
74
+ const button = (_a = this.view) === null || _a === void 0 ? void 0 : _a.$('[class*="replace_all_button__"]');
75
+ return button;
76
+ }
33
77
  async focusOnSearch() {
34
78
  const visible = await this.isVisible();
35
79
  if (!visible) {
36
80
  await this.open();
37
81
  }
38
- const $searchInput = await this.app.page.$(this.searchInputSelector);
39
- await ($searchInput === null || $searchInput === void 0 ? void 0 : $searchInput.focus());
82
+ const input = await this.app.page.$(this.searchInputSelector);
83
+ await (input === null || input === void 0 ? void 0 : input.fill(''));
84
+ await (input === null || input === void 0 ? void 0 : input.focus());
85
+ }
86
+ async focusOnReplace() {
87
+ const visible = await this.isVisible();
88
+ if (!visible) {
89
+ await this.open();
90
+ }
91
+ const input = await this.app.page.$(this.replaceInputSelector);
92
+ await (input === null || input === void 0 ? void 0 : input.focus());
93
+ return input;
94
+ }
95
+ async focusOnExclude() {
96
+ const visible = await this.isVisible();
97
+ if (!visible) {
98
+ await this.open();
99
+ }
100
+ const input = await this.getExcludeInput();
101
+ await (input === null || input === void 0 ? void 0 : input.focus());
102
+ }
103
+ async focusOnInclude() {
104
+ const visible = await this.isVisible();
105
+ if (!visible) {
106
+ await this.open();
107
+ }
108
+ const input = await this.getIncludeInput();
109
+ await (input === null || input === void 0 ? void 0 : input.focus());
110
+ }
111
+ async getSearchInput() {
112
+ var _a;
113
+ return await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$(this.searchInputSelector));
114
+ }
115
+ async getReplaceInput() {
116
+ var _a;
117
+ return await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$(this.replaceInputSelector));
118
+ }
119
+ async getExcludeInput() {
120
+ var _a;
121
+ return await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$(this.excludeInputSelector));
122
+ }
123
+ async getIncludeInput() {
124
+ var _a;
125
+ return await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$(this.includeInputSelector));
126
+ }
127
+ async getSearchAction(value) {
128
+ var _a;
129
+ const searchField = await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$('[class*="search_field__"]'));
130
+ if (searchField) {
131
+ const options = await searchField.$$('[class*="search_option__"]');
132
+ for (const option of options) {
133
+ const title = await option.getAttribute('title');
134
+ if (title === value) {
135
+ return option;
136
+ }
137
+ }
138
+ }
139
+ }
140
+ async activeSearchAction(value) {
141
+ const action = await this.getSearchAction(value);
142
+ const classname = await (action === null || action === void 0 ? void 0 : action.getAttribute('class'));
143
+ if (classname === null || classname === void 0 ? void 0 : classname.includes('select___')) {
144
+ return;
145
+ }
146
+ await (action === null || action === void 0 ? void 0 : action.click());
147
+ }
148
+ async deactiveSearchAction(value) {
149
+ const action = await this.getSearchAction(value);
150
+ const classname = await (action === null || action === void 0 ? void 0 : action.getAttribute('class'));
151
+ if (classname === null || classname === void 0 ? void 0 : classname.includes('select___')) {
152
+ await (action === null || action === void 0 ? void 0 : action.click());
153
+ }
154
+ }
155
+ async toggleDisplaySearchRules(expected) {
156
+ var _a;
157
+ const visible = await this.isVisible();
158
+ if (!visible) {
159
+ await this.open();
160
+ }
161
+ const titleBar = await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$('[class*="search_input_title_"]'));
162
+ const checkbox = await (titleBar === null || titleBar === void 0 ? void 0 : titleBar.$('.kt-checkbox'));
163
+ const checked = await (checkbox === null || checkbox === void 0 ? void 0 : checkbox.isChecked());
164
+ if ((0, ide_utils_1.isDefined)(expected) && expected === checked) {
165
+ return;
166
+ }
167
+ await (checkbox === null || checkbox === void 0 ? void 0 : checkbox.click());
168
+ }
169
+ async toggleUseDefaultExclude(expected) {
170
+ var _a;
171
+ const visible = await this.isVisible();
172
+ if (!visible) {
173
+ await this.open();
174
+ }
175
+ const wrapper = await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$('[class*="use_default_excludes_wrapper_"]'));
176
+ const checkbox = await (wrapper === null || wrapper === void 0 ? void 0 : wrapper.$('.kt-checkbox'));
177
+ const checked = await (checkbox === null || checkbox === void 0 ? void 0 : checkbox.isChecked());
178
+ if ((0, ide_utils_1.isDefined)(expected) && expected === checked) {
179
+ return;
180
+ }
181
+ await (checkbox === null || checkbox === void 0 ? void 0 : checkbox.click());
182
+ }
183
+ async search(options) {
184
+ if (!(await this.isVisible())) {
185
+ await this.open();
186
+ }
187
+ if (!options.search) {
188
+ return;
189
+ }
190
+ if ((0, ide_utils_1.isDefined)(options.isMatchCase)) {
191
+ (await options.isMatchCase)
192
+ ? this.activeSearchAction(SEARCH_OPTIONS.MATCH_CASE)
193
+ : this.deactiveSearchAction(SEARCH_OPTIONS.MATCH_CASE);
194
+ }
195
+ if ((0, ide_utils_1.isDefined)(options.isMatchWhileWord)) {
196
+ (await options.isMatchWhileWord)
197
+ ? this.activeSearchAction(SEARCH_OPTIONS.MATCH_WHOLE_WORD)
198
+ : this.deactiveSearchAction(SEARCH_OPTIONS.MATCH_WHOLE_WORD);
199
+ }
200
+ if ((0, ide_utils_1.isDefined)(options.useRegexp)) {
201
+ (await options.useRegexp)
202
+ ? this.activeSearchAction(SEARCH_OPTIONS.USE_REGEXP)
203
+ : this.deactiveSearchAction(SEARCH_OPTIONS.USE_REGEXP);
204
+ }
205
+ if (options.exclude || options.include || (0, ide_utils_1.isDefined)(options.useDefaultExclude)) {
206
+ await this.toggleDisplaySearchRules(true);
207
+ if (options.exclude) {
208
+ await this.focusOnExclude();
209
+ await this.page.keyboard.type(options.exclude);
210
+ }
211
+ if (options.include) {
212
+ await this.focusOnInclude();
213
+ await this.page.keyboard.type(options.include);
214
+ }
215
+ const useDefaultExlude = (0, ide_utils_1.isDefined)(options.useDefaultExclude) ? options.useDefaultExclude : true;
216
+ await this.toggleUseDefaultExclude(useDefaultExlude);
217
+ }
218
+ // Search on the end.
219
+ await this.focusOnSearch();
220
+ await this.page.keyboard.type(options.search);
221
+ }
222
+ async getTreeNodeByIndex(index) {
223
+ var _a;
224
+ const treeItems = await ((_a = this.view) === null || _a === void 0 ? void 0 : _a.$$('[class*="search_node___"]'));
225
+ if (!treeItems) {
226
+ return;
227
+ }
228
+ const node = treeItems[index];
229
+ if (node) {
230
+ return new OpenSumiSearchFileStatNode(node, this.app);
231
+ }
40
232
  }
41
233
  }
42
234
  exports.OpenSumiSearchView = OpenSumiSearchView;
@@ -1 +1 @@
1
- {"version":3,"file":"search-view.js","sourceRoot":"","sources":["../src/search-view.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAExC,MAAa,kBAAmB,SAAQ,qBAAa;IACnD,YAAY,GAAgB;QAC1B,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,OAAO,CAAC;QACZ,IAAI,KAAK,CAAC;QACV,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,uCAAuC,CAAC;QACrD,IAAI,IAAI,EAAE;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,KAAK,EAAE;gBACT,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1B;SACF;QACD,OAAO;YACL,OAAO;YACP,KAAK;SACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrE,MAAM,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,EAAE,CAAA,CAAC;IAC9B,CAAC;CACF;AAxCD,gDAwCC"}
1
+ {"version":3,"file":"search-view.js","sourceRoot":"","sources":["../src/search-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { OpenSumiApp } from './app';
2
+ import { OpenSumiView } from './view';
3
+ export declare class OpenSumiSourceControlView extends OpenSumiView {
4
+ constructor(app: OpenSumiApp, name: string);
5
+ getTitleActionByName(name: string): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | undefined>;
6
+ getTitleActionById(id: string): Promise<import("playwright-core").ElementHandle<SVGElement | HTMLElement> | undefined>;
7
+ }
8
+ //# sourceMappingURL=source-control-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-control-view.d.ts","sourceRoot":"","sources":["../src/source-control-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,qBAAa,yBAA0B,SAAQ,YAAY;gBAC7C,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;IAQpC,oBAAoB,CAAC,IAAI,EAAE,MAAM;IAgBjC,kBAAkB,CAAC,EAAE,EAAE,MAAM;CAepC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenSumiSourceControlView = void 0;
4
+ const view_1 = require("./view");
5
+ class OpenSumiSourceControlView extends view_1.OpenSumiView {
6
+ constructor(app, name) {
7
+ super(app, {
8
+ viewSelector: '[data-view-id="scm_view"]',
9
+ tabSelector: '[data-view-id="scm_view"] [tabindex="0"]',
10
+ name,
11
+ });
12
+ }
13
+ async getTitleActionByName(name) {
14
+ const header = await this.page.$('.scm [class*="titlebar___"]');
15
+ if (!header) {
16
+ return;
17
+ }
18
+ await header.hover();
19
+ const titleAction = await header.waitForSelector('[class*="titleActions___"]');
20
+ const actions = await titleAction.$$('[class*="iconAction__"]');
21
+ for (const action of actions) {
22
+ const title = await action.getAttribute('title');
23
+ if (name === title) {
24
+ return action;
25
+ }
26
+ }
27
+ }
28
+ async getTitleActionById(id) {
29
+ const header = await this.page.$('.scm [class*="titlebar___"]');
30
+ if (!header) {
31
+ return;
32
+ }
33
+ await header.hover();
34
+ const titleAction = await header.waitForSelector('[class*="titleActions___"]');
35
+ const actions = await titleAction.$$('[class*="iconAction__"]');
36
+ for (const action of actions) {
37
+ const itemId = await action.getAttribute('id');
38
+ if (id === itemId) {
39
+ return action;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ exports.OpenSumiSourceControlView = OpenSumiSourceControlView;
45
+ //# sourceMappingURL=source-control-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-control-view.js","sourceRoot":"","sources":["../src/source-control-view.ts"],"names":[],"mappings":";;;AACA,iCAAsC;AAEtC,MAAa,yBAA0B,SAAQ,mBAAY;IACzD,YAAY,GAAgB,EAAE,IAAY;QACxC,KAAK,CAAC,GAAG,EAAE;YACT,YAAY,EAAE,2BAA2B;YACzC,WAAW,EAAE,0CAA0C;YACvD,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,IAAI,KAAK,KAAK,EAAE;gBAClB,OAAO,MAAM,CAAC;aACf;SACF;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAU;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,EAAE,KAAK,MAAM,EAAE;gBACjB,OAAO,MAAM,CAAC;aACf;SACF;IACH,CAAC;CACF;AAxCD,8DAwCC"}
@@ -0,0 +1,10 @@
1
+ import { OpenSumiApp } from './app';
2
+ import { OpenSumiPanel } from './panel';
3
+ type TerminalType = 'bash' | 'zsh' | 'Javascript Debug Terminal';
4
+ export declare class OpenSumiTerminalView extends OpenSumiPanel {
5
+ constructor(app: OpenSumiApp);
6
+ sendText(text: string): Promise<void>;
7
+ createTerminalByType(type: TerminalType): Promise<void>;
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=terminal-view.d.ts.map