@theia/playwright 1.67.0-next.13 → 1.67.0-next.56

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 (213) hide show
  1. package/package.json +3 -3
  2. package/lib/index.d.ts +0 -37
  3. package/lib/index.d.ts.map +0 -1
  4. package/lib/index.js +0 -55
  5. package/lib/index.js.map +0 -1
  6. package/lib/tests/theia-app.test.d.ts +0 -2
  7. package/lib/tests/theia-app.test.d.ts.map +0 -1
  8. package/lib/tests/theia-app.test.js +0 -30
  9. package/lib/tests/theia-app.test.js.map +0 -1
  10. package/lib/tests/theia-application-shell.test.d.ts +0 -2
  11. package/lib/tests/theia-application-shell.test.d.ts.map +0 -1
  12. package/lib/tests/theia-application-shell.test.js +0 -59
  13. package/lib/tests/theia-application-shell.test.js.map +0 -1
  14. package/lib/tests/theia-explorer-view.test.d.ts +0 -2
  15. package/lib/tests/theia-explorer-view.test.d.ts.map +0 -1
  16. package/lib/tests/theia-explorer-view.test.js +0 -186
  17. package/lib/tests/theia-explorer-view.test.js.map +0 -1
  18. package/lib/tests/theia-getting-started.test.d.ts +0 -2
  19. package/lib/tests/theia-getting-started.test.d.ts.map +0 -1
  20. package/lib/tests/theia-getting-started.test.js +0 -46
  21. package/lib/tests/theia-getting-started.test.js.map +0 -1
  22. package/lib/tests/theia-main-menu.test.d.ts +0 -2
  23. package/lib/tests/theia-main-menu.test.d.ts.map +0 -1
  24. package/lib/tests/theia-main-menu.test.js +0 -111
  25. package/lib/tests/theia-main-menu.test.js.map +0 -1
  26. package/lib/tests/theia-notebook-editor.test.d.ts +0 -2
  27. package/lib/tests/theia-notebook-editor.test.d.ts.map +0 -1
  28. package/lib/tests/theia-notebook-editor.test.js +0 -301
  29. package/lib/tests/theia-notebook-editor.test.js.map +0 -1
  30. package/lib/tests/theia-output-view.test.d.ts +0 -2
  31. package/lib/tests/theia-output-view.test.d.ts.map +0 -1
  32. package/lib/tests/theia-output-view.test.js +0 -79
  33. package/lib/tests/theia-output-view.test.js.map +0 -1
  34. package/lib/tests/theia-preference-view.test.d.ts +0 -2
  35. package/lib/tests/theia-preference-view.test.d.ts.map +0 -1
  36. package/lib/tests/theia-preference-view.test.js +0 -102
  37. package/lib/tests/theia-preference-view.test.js.map +0 -1
  38. package/lib/tests/theia-problems-view.test.d.ts +0 -2
  39. package/lib/tests/theia-problems-view.test.d.ts.map +0 -1
  40. package/lib/tests/theia-problems-view.test.js +0 -55
  41. package/lib/tests/theia-problems-view.test.js.map +0 -1
  42. package/lib/tests/theia-quick-command.test.d.ts +0 -2
  43. package/lib/tests/theia-quick-command.test.d.ts.map +0 -1
  44. package/lib/tests/theia-quick-command.test.js +0 -75
  45. package/lib/tests/theia-quick-command.test.js.map +0 -1
  46. package/lib/tests/theia-sample-app.test.d.ts +0 -2
  47. package/lib/tests/theia-sample-app.test.d.ts.map +0 -1
  48. package/lib/tests/theia-sample-app.test.js +0 -58
  49. package/lib/tests/theia-sample-app.test.js.map +0 -1
  50. package/lib/tests/theia-status-bar.test.d.ts +0 -2
  51. package/lib/tests/theia-status-bar.test.d.ts.map +0 -1
  52. package/lib/tests/theia-status-bar.test.js +0 -45
  53. package/lib/tests/theia-status-bar.test.js.map +0 -1
  54. package/lib/tests/theia-terminal-view.test.d.ts +0 -2
  55. package/lib/tests/theia-terminal-view.test.d.ts.map +0 -1
  56. package/lib/tests/theia-terminal-view.test.js +0 -80
  57. package/lib/tests/theia-terminal-view.test.js.map +0 -1
  58. package/lib/tests/theia-text-editor.test.d.ts +0 -2
  59. package/lib/tests/theia-text-editor.test.d.ts.map +0 -1
  60. package/lib/tests/theia-text-editor.test.js +0 -159
  61. package/lib/tests/theia-text-editor.test.js.map +0 -1
  62. package/lib/tests/theia-toolbar.test.d.ts +0 -2
  63. package/lib/tests/theia-toolbar.test.d.ts.map +0 -1
  64. package/lib/tests/theia-toolbar.test.js +0 -62
  65. package/lib/tests/theia-toolbar.test.js.map +0 -1
  66. package/lib/tests/theia-workspace.test.d.ts +0 -2
  67. package/lib/tests/theia-workspace.test.d.ts.map +0 -1
  68. package/lib/tests/theia-workspace.test.js +0 -77
  69. package/lib/tests/theia-workspace.test.js.map +0 -1
  70. package/lib/theia-about-dialog.d.ts +0 -5
  71. package/lib/theia-about-dialog.d.ts.map +0 -1
  72. package/lib/theia-about-dialog.js +0 -27
  73. package/lib/theia-about-dialog.js.map +0 -1
  74. package/lib/theia-app-loader.d.ts +0 -20
  75. package/lib/theia-app-loader.d.ts.map +0 -1
  76. package/lib/theia-app-loader.js +0 -124
  77. package/lib/theia-app-loader.js.map +0 -1
  78. package/lib/theia-app.d.ts +0 -51
  79. package/lib/theia-app.d.ts.map +0 -1
  80. package/lib/theia-app.js +0 -154
  81. package/lib/theia-app.js.map +0 -1
  82. package/lib/theia-context-menu.d.ts +0 -9
  83. package/lib/theia-context-menu.d.ts.map +0 -1
  84. package/lib/theia-context-menu.js +0 -38
  85. package/lib/theia-context-menu.js.map +0 -1
  86. package/lib/theia-dialog.d.ts +0 -29
  87. package/lib/theia-dialog.d.ts.map +0 -1
  88. package/lib/theia-dialog.js +0 -100
  89. package/lib/theia-dialog.js.map +0 -1
  90. package/lib/theia-editor.d.ts +0 -10
  91. package/lib/theia-editor.d.ts.map +0 -1
  92. package/lib/theia-editor.js +0 -69
  93. package/lib/theia-editor.js.map +0 -1
  94. package/lib/theia-explorer-view.d.ts +0 -48
  95. package/lib/theia-explorer-view.d.ts.map +0 -1
  96. package/lib/theia-explorer-view.js +0 -274
  97. package/lib/theia-explorer-view.js.map +0 -1
  98. package/lib/theia-main-menu.d.ts +0 -17
  99. package/lib/theia-main-menu.d.ts.map +0 -1
  100. package/lib/theia-main-menu.js +0 -73
  101. package/lib/theia-main-menu.js.map +0 -1
  102. package/lib/theia-menu-item.d.ts +0 -15
  103. package/lib/theia-menu-item.d.ts.map +0 -1
  104. package/lib/theia-menu-item.js +0 -67
  105. package/lib/theia-menu-item.js.map +0 -1
  106. package/lib/theia-menu.d.ts +0 -17
  107. package/lib/theia-menu.d.ts.map +0 -1
  108. package/lib/theia-menu.js +0 -106
  109. package/lib/theia-menu.js.map +0 -1
  110. package/lib/theia-monaco-editor.d.ts +0 -63
  111. package/lib/theia-monaco-editor.d.ts.map +0 -1
  112. package/lib/theia-monaco-editor.js +0 -155
  113. package/lib/theia-monaco-editor.js.map +0 -1
  114. package/lib/theia-notebook-cell.d.ts +0 -104
  115. package/lib/theia-notebook-cell.d.ts.map +0 -1
  116. package/lib/theia-notebook-cell.js +0 -228
  117. package/lib/theia-notebook-cell.js.map +0 -1
  118. package/lib/theia-notebook-editor.d.ts +0 -50
  119. package/lib/theia-notebook-editor.d.ts.map +0 -1
  120. package/lib/theia-notebook-editor.js +0 -153
  121. package/lib/theia-notebook-editor.js.map +0 -1
  122. package/lib/theia-notebook-toolbar.d.ts +0 -13
  123. package/lib/theia-notebook-toolbar.d.ts.map +0 -1
  124. package/lib/theia-notebook-toolbar.js +0 -47
  125. package/lib/theia-notebook-toolbar.js.map +0 -1
  126. package/lib/theia-notification-indicator.d.ts +0 -8
  127. package/lib/theia-notification-indicator.d.ts.map +0 -1
  128. package/lib/theia-notification-indicator.js +0 -45
  129. package/lib/theia-notification-indicator.js.map +0 -1
  130. package/lib/theia-notification-overlay.d.ts +0 -23
  131. package/lib/theia-notification-overlay.d.ts.map +0 -1
  132. package/lib/theia-notification-overlay.js +0 -80
  133. package/lib/theia-notification-overlay.js.map +0 -1
  134. package/lib/theia-output-channel.d.ts +0 -25
  135. package/lib/theia-output-channel.d.ts.map +0 -1
  136. package/lib/theia-output-channel.js +0 -72
  137. package/lib/theia-output-channel.js.map +0 -1
  138. package/lib/theia-output-view.d.ts +0 -10
  139. package/lib/theia-output-view.d.ts.map +0 -1
  140. package/lib/theia-output-view.js +0 -82
  141. package/lib/theia-output-view.js.map +0 -1
  142. package/lib/theia-page-object.d.ts +0 -8
  143. package/lib/theia-page-object.d.ts.map +0 -1
  144. package/lib/theia-page-object.js +0 -28
  145. package/lib/theia-page-object.js.map +0 -1
  146. package/lib/theia-preference-view.d.ts +0 -91
  147. package/lib/theia-preference-view.d.ts.map +0 -1
  148. package/lib/theia-preference-view.js +0 -224
  149. package/lib/theia-preference-view.js.map +0 -1
  150. package/lib/theia-problem-indicator.d.ts +0 -9
  151. package/lib/theia-problem-indicator.d.ts.map +0 -1
  152. package/lib/theia-problem-indicator.js +0 -39
  153. package/lib/theia-problem-indicator.js.map +0 -1
  154. package/lib/theia-problem-view.d.ts +0 -6
  155. package/lib/theia-problem-view.d.ts.map +0 -1
  156. package/lib/theia-problem-view.js +0 -31
  157. package/lib/theia-problem-view.js.map +0 -1
  158. package/lib/theia-quick-command-palette.d.ts +0 -14
  159. package/lib/theia-quick-command-palette.d.ts.map +0 -1
  160. package/lib/theia-quick-command-palette.js +0 -87
  161. package/lib/theia-quick-command-palette.js.map +0 -1
  162. package/lib/theia-rename-dialog.d.ts +0 -6
  163. package/lib/theia-rename-dialog.d.ts.map +0 -1
  164. package/lib/theia-rename-dialog.js +0 -35
  165. package/lib/theia-rename-dialog.js.map +0 -1
  166. package/lib/theia-status-bar.d.ts +0 -14
  167. package/lib/theia-status-bar.d.ts.map +0 -1
  168. package/lib/theia-status-bar.js +0 -40
  169. package/lib/theia-status-bar.js.map +0 -1
  170. package/lib/theia-status-indicator.d.ts +0 -11
  171. package/lib/theia-status-indicator.d.ts.map +0 -1
  172. package/lib/theia-status-indicator.js +0 -49
  173. package/lib/theia-status-indicator.js.map +0 -1
  174. package/lib/theia-terminal.d.ts +0 -14
  175. package/lib/theia-terminal.d.ts.map +0 -1
  176. package/lib/theia-terminal.js +0 -60
  177. package/lib/theia-terminal.js.map +0 -1
  178. package/lib/theia-text-editor.d.ts +0 -27
  179. package/lib/theia-text-editor.d.ts.map +0 -1
  180. package/lib/theia-text-editor.js +0 -124
  181. package/lib/theia-text-editor.js.map +0 -1
  182. package/lib/theia-toggle-bottom-indicator.d.ts +0 -5
  183. package/lib/theia-toggle-bottom-indicator.d.ts.map +0 -1
  184. package/lib/theia-toggle-bottom-indicator.js +0 -27
  185. package/lib/theia-toggle-bottom-indicator.js.map +0 -1
  186. package/lib/theia-toolbar-item.d.ts +0 -11
  187. package/lib/theia-toolbar-item.d.ts.map +0 -1
  188. package/lib/theia-toolbar-item.js +0 -41
  189. package/lib/theia-toolbar-item.js.map +0 -1
  190. package/lib/theia-toolbar.d.ts +0 -20
  191. package/lib/theia-toolbar.d.ts.map +0 -1
  192. package/lib/theia-toolbar.js +0 -91
  193. package/lib/theia-toolbar.js.map +0 -1
  194. package/lib/theia-tree-node.d.ts +0 -20
  195. package/lib/theia-tree-node.d.ts.map +0 -1
  196. package/lib/theia-tree-node.js +0 -73
  197. package/lib/theia-tree-node.js.map +0 -1
  198. package/lib/theia-view.d.ts +0 -33
  199. package/lib/theia-view.d.ts.map +0 -1
  200. package/lib/theia-view.js +0 -150
  201. package/lib/theia-view.js.map +0 -1
  202. package/lib/theia-welcome-view.d.ts +0 -6
  203. package/lib/theia-welcome-view.d.ts.map +0 -1
  204. package/lib/theia-welcome-view.js +0 -31
  205. package/lib/theia-welcome-view.js.map +0 -1
  206. package/lib/theia-workspace.d.ts +0 -27
  207. package/lib/theia-workspace.d.ts.map +0 -1
  208. package/lib/theia-workspace.js +0 -84
  209. package/lib/theia-workspace.js.map +0 -1
  210. package/lib/util.d.ts +0 -18
  211. package/lib/util.d.ts.map +0 -1
  212. package/lib/util.js +0 -86
  213. package/lib/util.js.map +0 -1
@@ -1,63 +0,0 @@
1
- import { ElementHandle, Locator } from '@playwright/test';
2
- import { TheiaPageObject } from './theia-page-object';
3
- import { TheiaApp } from './theia-app';
4
- /**
5
- * Monaco editor page object.
6
- *
7
- * Note: The constructor overload using `selector: string` is deprecated. Use the `locator: Locator` overload instead.
8
- *
9
- */
10
- export declare class TheiaMonacoEditor extends TheiaPageObject {
11
- readonly locator: Locator;
12
- protected readonly LINES_SELECTOR = ".view-lines > .view-line";
13
- /**
14
- * Monaco editor page object.
15
- *
16
- * @param locator The locator of the editor.
17
- * @param app The Theia app instance.
18
- */
19
- constructor(locator: Locator, app: TheiaApp);
20
- /**
21
- * @deprecated Use the `constructor(locator: Locator, app: TheiaApp)` overload instead.
22
- */
23
- constructor(selector: string, app: TheiaApp);
24
- waitForVisible(): Promise<void>;
25
- /**
26
- * @deprecated Use `locator` instead. To get the element handle use `await locator.elementHandle()`.
27
- * @returns The view element of the editor.
28
- */
29
- protected viewElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
30
- numberOfLines(): Promise<number>;
31
- textContentOfLineByLineNumber(lineNumber: number): Promise<string | undefined>;
32
- /**
33
- * @deprecated Use `line(lineNumber: number)` instead.
34
- * @param lineNumber The line number to retrieve.
35
- * @returns The line element of the editor.
36
- */
37
- lineByLineNumber(lineNumber: number): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
38
- line(lineNumber: number): Promise<Locator>;
39
- textContentOfLineContainingText(text: string): Promise<string | undefined>;
40
- /**
41
- * @deprecated Use `lineWithText(text: string)` instead.
42
- * @param text The text to search for in the editor.
43
- * @returns The line element containing the text.
44
- */
45
- lineContainingText(text: string): Promise<ElementHandle<SVGElement | HTMLElement> | undefined>;
46
- lineWithText(text: string): Promise<Locator | undefined>;
47
- /**
48
- * @returns The text content of the editor.
49
- */
50
- editorText(): Promise<string | undefined>;
51
- /**
52
- * Adds text to the editor.
53
- * @param text The text to add to the editor.
54
- * @param lineNumber The line number where to add the text. Default is 1.
55
- */
56
- addEditorText(text: string, lineNumber?: number): Promise<void>;
57
- /**
58
- * @returns `true` if the editor is focused, `false` otherwise.
59
- */
60
- isFocused(): Promise<boolean>;
61
- protected replaceEditorSymbolsWithSpace(content: string): string | Promise<string | undefined>;
62
- }
63
- //# sourceMappingURL=theia-monaco-editor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theia-monaco-editor.d.ts","sourceRoot":"","sources":["../src/theia-monaco-editor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IAElD,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,SAAS,CAAC,QAAQ,CAAC,cAAc,8BAA8B;IAE/D;;;;;OAKG;gBACS,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IAE3C;;OAEG;gBACS,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ;IAWrC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC;;;OAGG;cACa,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAIhF,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAMhC,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAOpF;;;;OAIG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAKlG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB1C,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAOhF;;;;OAIG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;IAK9F,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAM9D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgB/C;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC,SAAS,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAMjG"}
@@ -1,155 +0,0 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2023 EclipseSource and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.TheiaMonacoEditor = void 0;
19
- const theia_page_object_1 = require("./theia-page-object");
20
- /**
21
- * Monaco editor page object.
22
- *
23
- * Note: The constructor overload using `selector: string` is deprecated. Use the `locator: Locator` overload instead.
24
- *
25
- */
26
- class TheiaMonacoEditor extends theia_page_object_1.TheiaPageObject {
27
- constructor(locatorOrString, app) {
28
- super(app);
29
- this.LINES_SELECTOR = '.view-lines > .view-line';
30
- if (typeof locatorOrString === 'string') {
31
- this.locator = app.page.locator(locatorOrString);
32
- }
33
- else {
34
- this.locator = locatorOrString;
35
- }
36
- }
37
- async waitForVisible() {
38
- await this.locator.waitFor({ state: 'visible' });
39
- // wait until lines are created
40
- await this.locator.evaluate(editor => editor.querySelectorAll(this.LINES_SELECTOR).length > 0);
41
- }
42
- /**
43
- * @deprecated Use `locator` instead. To get the element handle use `await locator.elementHandle()`.
44
- * @returns The view element of the editor.
45
- */
46
- async viewElement() {
47
- return this.locator.elementHandle();
48
- }
49
- async numberOfLines() {
50
- await this.waitForVisible();
51
- const lineElements = await this.locator.locator(this.LINES_SELECTOR).all();
52
- return lineElements.length;
53
- }
54
- async textContentOfLineByLineNumber(lineNumber) {
55
- await this.waitForVisible();
56
- const lineElement = await this.line(lineNumber);
57
- const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
58
- return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
59
- }
60
- /**
61
- * @deprecated Use `line(lineNumber: number)` instead.
62
- * @param lineNumber The line number to retrieve.
63
- * @returns The line element of the editor.
64
- */
65
- async lineByLineNumber(lineNumber) {
66
- var _a;
67
- const lineLocator = await this.line(lineNumber);
68
- return (_a = (await lineLocator.elementHandle())) !== null && _a !== void 0 ? _a : undefined;
69
- }
70
- async line(lineNumber) {
71
- await this.waitForVisible();
72
- const lines = await this.locator.locator(this.LINES_SELECTOR).all();
73
- if (!lines || lines.length === 0) {
74
- throw new Error('Couldn\'t retrieve lines of monaco editor');
75
- }
76
- const linesWithXCoordinates = [];
77
- for (const line of lines) {
78
- await line.waitFor({ state: 'visible' });
79
- const box = await line.boundingBox();
80
- linesWithXCoordinates.push({ x: box ? box.x : Number.MAX_VALUE, line });
81
- }
82
- linesWithXCoordinates.sort((a, b) => a.x.toString().localeCompare(b.x.toString()));
83
- const lineInfo = linesWithXCoordinates[lineNumber - 1];
84
- if (!lineInfo) {
85
- throw new Error(`Could not find line number ${lineNumber}`);
86
- }
87
- return lineInfo.line;
88
- }
89
- async textContentOfLineContainingText(text) {
90
- await this.waitForVisible();
91
- const lineElement = await this.lineWithText(text);
92
- const content = await (lineElement === null || lineElement === void 0 ? void 0 : lineElement.textContent());
93
- return content ? this.replaceEditorSymbolsWithSpace(content) : undefined;
94
- }
95
- /**
96
- * @deprecated Use `lineWithText(text: string)` instead.
97
- * @param text The text to search for in the editor.
98
- * @returns The line element containing the text.
99
- */
100
- async lineContainingText(text) {
101
- var _a;
102
- const lineWithText = await this.lineWithText(text);
103
- return (_a = await (lineWithText === null || lineWithText === void 0 ? void 0 : lineWithText.elementHandle())) !== null && _a !== void 0 ? _a : undefined;
104
- }
105
- async lineWithText(text) {
106
- const lineWithText = this.locator.locator(`${this.LINES_SELECTOR}:has-text("${text}")`);
107
- await lineWithText.waitFor({ state: 'visible' });
108
- return lineWithText;
109
- }
110
- /**
111
- * @returns The text content of the editor.
112
- */
113
- async editorText() {
114
- const lines = [];
115
- const linesCount = await this.numberOfLines();
116
- if (linesCount === undefined) {
117
- return undefined;
118
- }
119
- for (let line = 1; line <= linesCount; line++) {
120
- const lineText = await this.textContentOfLineByLineNumber(line);
121
- if (lineText === undefined) {
122
- break;
123
- }
124
- lines.push(lineText);
125
- }
126
- return lines.join('\n');
127
- }
128
- /**
129
- * Adds text to the editor.
130
- * @param text The text to add to the editor.
131
- * @param lineNumber The line number where to add the text. Default is 1.
132
- */
133
- async addEditorText(text, lineNumber = 1) {
134
- const line = await this.line(lineNumber);
135
- await (line === null || line === void 0 ? void 0 : line.click());
136
- await this.page.keyboard.type(text);
137
- }
138
- /**
139
- * @returns `true` if the editor is focused, `false` otherwise.
140
- */
141
- async isFocused() {
142
- var _a;
143
- await this.locator.waitFor({ state: 'visible' });
144
- const editorClass = await this.locator.getAttribute('class');
145
- return (_a = editorClass === null || editorClass === void 0 ? void 0 : editorClass.includes('focused')) !== null && _a !== void 0 ? _a : false;
146
- }
147
- replaceEditorSymbolsWithSpace(content) {
148
- // [ ] &nbsp; => \u00a0 -- NO-BREAK SPACE
149
- // [·] &middot; => \u00b7 -- MIDDLE DOT
150
- // [] &zwnj; => \u200c -- ZERO WIDTH NON-JOINER
151
- return content.replace(/[\u00a0\u00b7]/g, ' ').replace(/[\u200c]/g, '');
152
- }
153
- }
154
- exports.TheiaMonacoEditor = TheiaMonacoEditor;
155
- //# sourceMappingURL=theia-monaco-editor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theia-monaco-editor.js","sourceRoot":"","sources":["../src/theia-monaco-editor.ts"],"names":[],"mappings":"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"}
@@ -1,104 +0,0 @@
1
- import { FrameLocator, Locator } from '@playwright/test';
2
- import { TheiaApp } from './theia-app';
3
- import { TheiaMonacoEditor } from './theia-monaco-editor';
4
- import { TheiaPageObject } from './theia-page-object';
5
- export type CellStatus = 'success' | 'error' | 'waiting';
6
- /**
7
- * Page object for a Theia notebook cell.
8
- */
9
- export declare class TheiaNotebookCell extends TheiaPageObject {
10
- readonly locator: Locator;
11
- protected readonly notebookEditorLocator: Locator;
12
- protected cellEditor: TheiaNotebookCellEditor;
13
- constructor(locator: Locator, notebookEditorLocator: Locator, app: TheiaApp);
14
- /**
15
- * @returns The cell editor page object.
16
- */
17
- get editor(): TheiaNotebookCellEditor;
18
- /**
19
- * @returns Locator for the sidebar (left) of the cell.
20
- */
21
- sidebar(): Locator;
22
- /**
23
- * @returns Locator for the toolbar (top) of the cell.
24
- */
25
- toolbar(): Locator;
26
- /**
27
- * @returns Locator for the statusbar (bottom) of the cell.
28
- */
29
- statusbar(): Locator;
30
- /**
31
- * @returns Locator for the status icon inside the statusbar of the cell.
32
- */
33
- statusIcon(): Locator;
34
- /**
35
- * @returns `true` id the cell is a code cell, `false` otherwise.
36
- */
37
- isCodeCell(): Promise<boolean>;
38
- /**
39
- * @returns The mode of the cell, e.g. 'python', 'markdown', etc.
40
- */
41
- mode(): Promise<string>;
42
- /**
43
- * @returns The text content of the cell editor.
44
- */
45
- editorText(): Promise<string | undefined>;
46
- /**
47
- * Adds text to the editor of the cell.
48
- * @param text The text to add to the editor.
49
- * @param lineNumber The line number where to add the text. Default is 1.
50
- */
51
- addEditorText(text: string, lineNumber?: number): Promise<void>;
52
- /**
53
- * @param wait If `true` waits for the cell to finish execution, otherwise returns immediately.
54
- */
55
- execute(wait?: boolean): Promise<void>;
56
- /**
57
- * Splits the cell into two cells by dividing the cell text on current cursor position.
58
- */
59
- splitCell(): Promise<void>;
60
- /**
61
- * Deletes the cell.
62
- */
63
- deleteCell(): Promise<void>;
64
- /**
65
- * Waits for the cell to reach success or error status.
66
- */
67
- waitForCellToFinish(): Promise<void>;
68
- /**
69
- * @returns The status of the cell. Possible values are 'success', 'error', 'waiting'.
70
- */
71
- status(): Promise<CellStatus>;
72
- protected toCellStatus(classes: string): CellStatus;
73
- /**
74
- * @param acceptEmpty If `true`, accepts empty execution count. Otherwise waits for the execution count to be set.
75
- * @returns The execution count of the cell.
76
- */
77
- executionCount(acceptEmpty?: boolean): Promise<string | undefined>;
78
- /**
79
- * @returns `true` if the cell is selected (blue vertical line), `false` otherwise.
80
- */
81
- isSelected(): Promise<boolean>;
82
- /**
83
- * @returns The output text of the cell.
84
- */
85
- outputText(): Promise<string>;
86
- /**
87
- * Selects the cell itself not it's editor. Important for shortcut usage like copy-, cut-, paste-cell.
88
- */
89
- selectCell(): Promise<void>;
90
- outputContainer(): Promise<Locator>;
91
- protected cellHandle(): Promise<string | null>;
92
- protected outputFrame(): Promise<FrameLocator>;
93
- }
94
- /**
95
- * Wrapper around the monaco editor inside a notebook cell.
96
- */
97
- export declare class TheiaNotebookCellEditor extends TheiaPageObject {
98
- readonly locator: Locator;
99
- readonly monacoEditor: TheiaMonacoEditor;
100
- constructor(locator: Locator, app: TheiaApp);
101
- waitForVisible(): Promise<void>;
102
- isVisible(): Promise<boolean>;
103
- }
104
- //# sourceMappingURL=theia-notebook-cell.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theia-notebook-cell.d.ts","sourceRoot":"","sources":["../src/theia-notebook-cell.ts"],"names":[],"mappings":"AAeA,OAAO,EAAU,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IAItC,QAAQ,CAAC,OAAO,EAAE,OAAO;IAAE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO;IAFxF,SAAS,CAAC,UAAU,EAAE,uBAAuB,CAAC;gBAEzB,OAAO,EAAE,OAAO,EAAqB,qBAAqB,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IAMvG;;OAEG;IACH,IAAI,MAAM,IAAI,uBAAuB,CAEpC;IAED;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,OAAO,IAAI,OAAO;IAGlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAa7B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI/C;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;OAEG;IACG,OAAO,CAAC,IAAI,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAMnC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAMnD;;;OAGG;IACG,cAAc,CAAC,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgB/E;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAUnC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;cAOzB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;cAQpC,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;CAOvD;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAI5C,QAAQ,CAAC,OAAO,EAAE,OAAO;IAFrC,SAAgB,YAAY,EAAE,iBAAiB,CAAC;gBAE3B,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IAK9C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CAGtC"}
@@ -1,228 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TheiaNotebookCellEditor = exports.TheiaNotebookCell = void 0;
4
- // *****************************************************************************
5
- // Copyright (C) 2024 TypeFox GmbH and others.
6
- //
7
- // This program and the accompanying materials are made available under the
8
- // terms of the Eclipse Public License v. 2.0 which is available at
9
- // http://www.eclipse.org/legal/epl-2.0.
10
- //
11
- // This Source Code may also be made available under the following Secondary
12
- // Licenses when the conditions for such availability set forth in the Eclipse
13
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
14
- // with the GNU Classpath Exception which is available at
15
- // https://www.gnu.org/software/classpath/license.html.
16
- //
17
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
18
- // *****************************************************************************
19
- const test_1 = require("@playwright/test");
20
- const theia_monaco_editor_1 = require("./theia-monaco-editor");
21
- const theia_page_object_1 = require("./theia-page-object");
22
- /**
23
- * Page object for a Theia notebook cell.
24
- */
25
- class TheiaNotebookCell extends theia_page_object_1.TheiaPageObject {
26
- constructor(locator, notebookEditorLocator, app) {
27
- super(app);
28
- this.locator = locator;
29
- this.notebookEditorLocator = notebookEditorLocator;
30
- const editorLocator = locator.locator('div.theia-notebook-cell-editor');
31
- this.cellEditor = new TheiaNotebookCellEditor(editorLocator, app);
32
- }
33
- /**
34
- * @returns The cell editor page object.
35
- */
36
- get editor() {
37
- return this.cellEditor;
38
- }
39
- /**
40
- * @returns Locator for the sidebar (left) of the cell.
41
- */
42
- sidebar() {
43
- return this.locator.locator('div.theia-notebook-cell-sidebar');
44
- }
45
- /**
46
- * @returns Locator for the toolbar (top) of the cell.
47
- */
48
- toolbar() {
49
- return this.locator.locator('div.theia-notebook-cell-toolbar');
50
- }
51
- /**
52
- * @returns Locator for the statusbar (bottom) of the cell.
53
- */
54
- statusbar() {
55
- return this.locator.locator('div.notebook-cell-status');
56
- }
57
- /**
58
- * @returns Locator for the status icon inside the statusbar of the cell.
59
- */
60
- statusIcon() {
61
- return this.statusbar().locator('span.notebook-cell-status-item');
62
- }
63
- /**
64
- * @returns `true` id the cell is a code cell, `false` otherwise.
65
- */
66
- async isCodeCell() {
67
- const classAttribute = await this.mode();
68
- return classAttribute !== 'markdown';
69
- }
70
- /**
71
- * @returns The mode of the cell, e.g. 'python', 'markdown', etc.
72
- */
73
- async mode() {
74
- await this.locator.waitFor({ state: 'visible' });
75
- const editorElement = await this.editor.locator.elementHandle();
76
- if (editorElement === null) {
77
- throw new Error('Could not find editor element for the notebook cell.');
78
- }
79
- const classAttribute = await editorElement.getAttribute('data-mode-id');
80
- if (classAttribute === null) {
81
- throw new Error('Could not find mode attribute for the notebook cell.');
82
- }
83
- return classAttribute;
84
- }
85
- /**
86
- * @returns The text content of the cell editor.
87
- */
88
- async editorText() {
89
- return this.editor.monacoEditor.editorText();
90
- }
91
- /**
92
- * Adds text to the editor of the cell.
93
- * @param text The text to add to the editor.
94
- * @param lineNumber The line number where to add the text. Default is 1.
95
- */
96
- async addEditorText(text, lineNumber = 1) {
97
- await this.editor.monacoEditor.addEditorText(text, lineNumber);
98
- }
99
- /**
100
- * @param wait If `true` waits for the cell to finish execution, otherwise returns immediately.
101
- */
102
- async execute(wait = true) {
103
- const execButton = this.sidebar().locator('[id="notebook.cell.execute-cell"]');
104
- await execButton.waitFor({ state: 'visible' });
105
- await execButton.click();
106
- if (wait) {
107
- // wait for the cell to finish execution
108
- await this.waitForCellToFinish();
109
- }
110
- }
111
- /**
112
- * Splits the cell into two cells by dividing the cell text on current cursor position.
113
- */
114
- async splitCell() {
115
- const execButton = this.toolbar().locator('[id="notebook.cell.split"]');
116
- await execButton.waitFor({ state: 'visible' });
117
- await execButton.click();
118
- }
119
- /**
120
- * Deletes the cell.
121
- */
122
- async deleteCell() {
123
- const button = this.toolbar().locator('[id="notebook.cell.delete"]');
124
- await button.waitFor({ state: 'visible' });
125
- await button.click();
126
- }
127
- /**
128
- * Waits for the cell to reach success or error status.
129
- */
130
- async waitForCellToFinish() {
131
- await (0, test_1.expect)(this.statusIcon()).toHaveClass(/(.*codicon-check.*|.*codicon-error.*)/);
132
- }
133
- /**
134
- * @returns The status of the cell. Possible values are 'success', 'error', 'waiting'.
135
- */
136
- async status() {
137
- var _a, _b;
138
- const statusLocator = this.statusIcon();
139
- const status = this.toCellStatus((_b = await ((_a = (await statusLocator.elementHandle())) === null || _a === void 0 ? void 0 : _a.getAttribute('class'))) !== null && _b !== void 0 ? _b : '');
140
- return status;
141
- }
142
- toCellStatus(classes) {
143
- return classes.includes('codicon-check') ? 'success'
144
- : classes.includes('codicon-error') ? 'error'
145
- : 'waiting';
146
- }
147
- /**
148
- * @param acceptEmpty If `true`, accepts empty execution count. Otherwise waits for the execution count to be set.
149
- * @returns The execution count of the cell.
150
- */
151
- async executionCount(acceptEmpty = false) {
152
- const countNode = this.sidebar().locator('span.theia-notebook-code-cell-execution-order');
153
- await countNode.waitFor({ state: 'visible' });
154
- await this.waitForCellToFinish();
155
- // Wait for the execution count to be set.
156
- await countNode.page().waitForFunction(arg => {
157
- var _a;
158
- const text = (_a = arg.ele) === null || _a === void 0 ? void 0 : _a.textContent;
159
- return text && (arg.acceptEmpty || text !== '[ ]');
160
- }, { ele: await countNode.elementHandle(), acceptEmpty });
161
- const counterText = await countNode.textContent();
162
- return counterText === null || counterText === void 0 ? void 0 : counterText.substring(1, counterText.length - 1); // remove square brackets
163
- }
164
- /**
165
- * @returns `true` if the cell is selected (blue vertical line), `false` otherwise.
166
- */
167
- async isSelected() {
168
- var _a;
169
- const markerClass = await this.locator.locator('div.theia-notebook-cell-marker').getAttribute('class');
170
- return (_a = markerClass === null || markerClass === void 0 ? void 0 : markerClass.includes('theia-notebook-cell-marker-selected')) !== null && _a !== void 0 ? _a : false;
171
- }
172
- /**
173
- * @returns The output text of the cell.
174
- */
175
- async outputText() {
176
- const outputContainer = await this.outputContainer();
177
- await outputContainer.waitFor({ state: 'visible' });
178
- // By default just collect all spans text.
179
- const spansLocator = outputContainer.locator('span:not(:has(*))'); // ignore nested spans
180
- const spanTexts = await spansLocator.evaluateAll(spans => spans.map(span => { var _a; return (_a = span.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
181
- .filter(text => text !== undefined && text.length > 0));
182
- return spanTexts.join('');
183
- }
184
- /**
185
- * Selects the cell itself not it's editor. Important for shortcut usage like copy-, cut-, paste-cell.
186
- */
187
- async selectCell() {
188
- await this.sidebar().click();
189
- }
190
- async outputContainer() {
191
- const outFrame = await this.outputFrame();
192
- // each cell has it's own output div with a unique id = cellHandle<handle>
193
- const cellOutput = outFrame.locator(`div#cellHandle${await this.cellHandle()}`);
194
- return cellOutput.locator('div.output-container');
195
- }
196
- async cellHandle() {
197
- const handle = await this.locator.getAttribute('data-cell-handle');
198
- if (handle === null) {
199
- throw new Error('Could not find cell handle attribute `data-cell-handle` for the notebook cell.');
200
- }
201
- return handle;
202
- }
203
- async outputFrame() {
204
- const containerDiv = this.notebookEditorLocator.locator('div.theia-notebook-cell-output-webview');
205
- const webViewFrame = containerDiv.frameLocator('iframe.webview');
206
- await webViewFrame.locator('iframe').waitFor({ state: 'attached' });
207
- return webViewFrame.frameLocator('iframe');
208
- }
209
- }
210
- exports.TheiaNotebookCell = TheiaNotebookCell;
211
- /**
212
- * Wrapper around the monaco editor inside a notebook cell.
213
- */
214
- class TheiaNotebookCellEditor extends theia_page_object_1.TheiaPageObject {
215
- constructor(locator, app) {
216
- super(app);
217
- this.locator = locator;
218
- this.monacoEditor = new theia_monaco_editor_1.TheiaMonacoEditor(locator.locator('.monaco-editor'), app);
219
- }
220
- async waitForVisible() {
221
- await this.locator.waitFor({ state: 'visible' });
222
- }
223
- async isVisible() {
224
- return this.locator.isVisible();
225
- }
226
- }
227
- exports.TheiaNotebookCellEditor = TheiaNotebookCellEditor;
228
- //# sourceMappingURL=theia-notebook-cell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theia-notebook-cell.js","sourceRoot":"","sources":["../src/theia-notebook-cell.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { Locator } from '@playwright/test';
2
- import { TheiaApp } from './theia-app';
3
- import { TheiaEditor } from './theia-editor';
4
- import { TheiaNotebookCell } from './theia-notebook-cell';
5
- import { TheiaNotebookToolbar } from './theia-notebook-toolbar';
6
- import { TheiaToolbarItem } from './theia-toolbar-item';
7
- export declare namespace NotebookCommands {
8
- const SELECT_KERNEL_COMMAND = "notebook.selectKernel";
9
- const ADD_NEW_CELL_COMMAND = "notebook.add-new-code-cell";
10
- const ADD_NEW_MARKDOWN_CELL_COMMAND = "notebook.add-new-markdown-cell";
11
- const EXECUTE_NOTEBOOK_COMMAND = "notebook.execute";
12
- const CLEAR_ALL_OUTPUTS_COMMAND = "notebook.clear-all-outputs";
13
- const EXPORT_COMMAND = "jupyter.notebookeditor.export";
14
- }
15
- export declare class TheiaNotebookEditor extends TheiaEditor {
16
- constructor(filePath: string, app: TheiaApp);
17
- protected viewLocator(): Locator;
18
- tabLocator(): Locator;
19
- waitForVisible(): Promise<void>;
20
- /**
21
- * @returns The main toolbar of the notebook editor.
22
- */
23
- notebookToolbar(): TheiaNotebookToolbar;
24
- /**
25
- * @returns The name of the selected kernel.
26
- */
27
- selectedKernel(): Promise<string | undefined | null>;
28
- /**
29
- * Allows to select a kernel using toolbar item.
30
- * @param kernelName The name of the kernel to select.
31
- */
32
- selectKernel(kernelName: string): Promise<void>;
33
- availableKernels(): Promise<string[]>;
34
- /**
35
- * Adds a new code cell to the notebook.
36
- */
37
- addCodeCell(): Promise<void>;
38
- /**
39
- * Adds a new markdown cell to the notebook.
40
- */
41
- addMarkdownCell(): Promise<void>;
42
- waitForCellCountChanged(prevCount: number): Promise<void>;
43
- executeAllCells(): Promise<void>;
44
- clearAllOutputs(): Promise<void>;
45
- exportAs(): Promise<void>;
46
- cells(): Promise<TheiaNotebookCell[]>;
47
- protected triggerToolbarItem(id: string): Promise<void>;
48
- protected toolbarItem(id: string): Promise<TheiaToolbarItem | undefined>;
49
- }
50
- //# sourceMappingURL=theia-notebook-editor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theia-notebook-editor.d.ts","sourceRoot":"","sources":["../src/theia-notebook-editor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,qBAAqB,0BAA0B,CAAC;IACtD,MAAM,oBAAoB,+BAA+B,CAAC;IAC1D,MAAM,6BAA6B,mCAAmC,CAAC;IACvE,MAAM,wBAAwB,qBAAqB,CAAC;IACpD,MAAM,yBAAyB,+BAA+B,CAAC;IAC/D,MAAM,cAAc,kCAAkC,CAAC;CACjE;AAED,qBAAa,mBAAoB,SAAQ,WAAW;gBAEpC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ;IAS3C,SAAS,CAAC,WAAW,IAAI,OAAO;IAIhC,UAAU,IAAI,OAAO;IAIN,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9C;;OAEG;IACH,eAAe,IAAI,oBAAoB;IAIvC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAQ1D;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,KAAK,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;cAU3B,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAQ7C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAKjF"}