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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/lib/browser/abstract-webview.d.ts +57 -0
  2. package/lib/browser/abstract-webview.d.ts.map +1 -0
  3. package/lib/browser/abstract-webview.js +167 -0
  4. package/lib/browser/abstract-webview.js.map +1 -0
  5. package/lib/browser/contribution.d.ts +11 -0
  6. package/lib/browser/contribution.d.ts.map +1 -0
  7. package/lib/browser/contribution.js +85 -0
  8. package/lib/browser/contribution.js.map +1 -0
  9. package/lib/browser/editor-webview.d.ts +24 -0
  10. package/lib/browser/editor-webview.d.ts.map +1 -0
  11. package/lib/browser/editor-webview.js +167 -0
  12. package/lib/browser/editor-webview.js.map +1 -0
  13. package/lib/browser/electron-webview-webview.d.ts +21 -0
  14. package/lib/browser/electron-webview-webview.d.ts.map +1 -0
  15. package/lib/browser/electron-webview-webview.js +137 -0
  16. package/lib/browser/electron-webview-webview.js.map +1 -0
  17. package/lib/browser/iframe-webview.d.ts +21 -0
  18. package/lib/browser/iframe-webview.d.ts.map +1 -0
  19. package/lib/browser/iframe-webview.js +118 -0
  20. package/lib/browser/iframe-webview.js.map +1 -0
  21. package/lib/browser/index.d.ts +8 -0
  22. package/lib/browser/index.d.ts.map +1 -0
  23. package/lib/browser/index.js +29 -0
  24. package/lib/browser/index.js.map +1 -0
  25. package/lib/browser/plain-webview.d.ts +45 -0
  26. package/lib/browser/plain-webview.d.ts.map +1 -0
  27. package/lib/browser/plain-webview.js +199 -0
  28. package/lib/browser/plain-webview.js.map +1 -0
  29. package/lib/browser/types.d.ts +171 -0
  30. package/lib/browser/types.d.ts.map +1 -0
  31. package/lib/browser/types.js +10 -0
  32. package/lib/browser/types.js.map +1 -0
  33. package/lib/browser/webview-window.d.ts +33 -0
  34. package/lib/browser/webview-window.d.ts.map +1 -0
  35. package/lib/browser/webview-window.js +104 -0
  36. package/lib/browser/webview-window.js.map +1 -0
  37. package/lib/browser/webview.service.d.ts +76 -0
  38. package/lib/browser/webview.service.d.ts.map +1 -0
  39. package/lib/browser/webview.service.js +380 -0
  40. package/lib/browser/webview.service.js.map +1 -0
  41. package/lib/common/index.d.ts +2 -0
  42. package/lib/common/index.d.ts.map +1 -0
  43. package/lib/common/index.js +5 -0
  44. package/lib/common/index.js.map +1 -0
  45. package/lib/electron-main/index.d.ts +9 -0
  46. package/lib/electron-main/index.d.ts.map +1 -0
  47. package/lib/electron-main/index.js +41 -0
  48. package/lib/electron-main/index.js.map +1 -0
  49. package/lib/electron-webview/host-channel.d.ts +13 -0
  50. package/lib/electron-webview/host-channel.d.ts.map +1 -0
  51. package/lib/electron-webview/host-channel.js +57 -0
  52. package/lib/electron-webview/host-channel.js.map +1 -0
  53. package/lib/electron-webview/host-preload.js +2 -0
  54. package/lib/electron-webview/plain-preload.js +55 -0
  55. package/lib/index.d.ts +2 -0
  56. package/lib/index.d.ts.map +1 -0
  57. package/lib/index.js +5 -0
  58. package/lib/index.js.map +1 -0
  59. package/lib/webview-host/common.d.ts +12 -0
  60. package/lib/webview-host/common.d.ts.map +1 -0
  61. package/lib/webview-host/common.js +97 -0
  62. package/lib/webview-host/common.js.map +1 -0
  63. package/lib/webview-host/web-preload.d.ts +16 -0
  64. package/lib/webview-host/web-preload.d.ts.map +1 -0
  65. package/lib/webview-host/web-preload.js +69 -0
  66. package/lib/webview-host/web-preload.js.map +1 -0
  67. package/lib/webview-host/webview-manager.d.ts +26 -0
  68. package/lib/webview-host/webview-manager.d.ts.map +1 -0
  69. package/lib/webview-host/webview-manager.js +314 -0
  70. package/lib/webview-host/webview-manager.js.map +1 -0
  71. package/lib/webview-host/webview.html +14 -0
  72. package/package.json +35 -0
@@ -0,0 +1,171 @@
1
+ import { Event, URI, IDisposable, MaybeNull, MaybePromise } from '@opensumi/ide-core-common';
2
+ import { ITheme } from '@opensumi/ide-theme';
3
+ import { IEditorGroup } from '@opensumi/ide-editor';
4
+ export declare const EDITOR_WEBVIEW_SCHEME = "editor-webview";
5
+ /**
6
+ * webview Panel实际上是一个iframe中的内容
7
+ * 叫webview panel只是为了和以前vscode中的说法一致
8
+ * 它会存在两种具体的实现,
9
+ * 对于Electron, 使用webview进行一次包裹,里面再嵌入iframe,可以保证各个WebviewPanel的内容的独立性
10
+ * 对于Web, 需要将每个iframe的src挂载在一个webviewEndPoint上,(同一个webviewEndPoint的内容共享一个线程,
11
+ * 因此如果有些webview需要保证安全和稳定性的话需要使用不同的EndPoint)
12
+ */
13
+ export interface IWebview extends IDisposable {
14
+ readonly id: string;
15
+ readonly options: IWebviewContentOptions;
16
+ /**
17
+ * 一开始的滚动位置
18
+ */
19
+ initialScrollProgress: number;
20
+ /**
21
+ * 状态值
22
+ */
23
+ state: any;
24
+ postMessage(message: any): Promise<void>;
25
+ getContent(): string;
26
+ setContent(html: string): Promise<void>;
27
+ /**
28
+ * 更新选项
29
+ * @param options 选项
30
+ * @param longLive 是否保留webview对象在内存中
31
+ */
32
+ updateOptions(options: IWebviewContentOptions): void;
33
+ /**
34
+ * 更新内部iframe大小使其适应外部大小
35
+ */
36
+ layout(): void;
37
+ /**
38
+ * 挂在一个
39
+ * @param parent
40
+ */
41
+ appendTo(container: HTMLElement): void;
42
+ focus(): void;
43
+ reload(): void;
44
+ getDomNode(): MaybeNull<HTMLElement>;
45
+ remove(): void;
46
+ onDispose: Event<void>;
47
+ readonly onDidFocus: Event<void>;
48
+ readonly onDidBlur: Event<void>;
49
+ readonly onDidClickLink: Event<URI>;
50
+ readonly onDidScroll: Event<IWebviewContentScrollPosition>;
51
+ readonly onDidUpdateState: Event<any>;
52
+ readonly onMessage: Event<any>;
53
+ readonly onRemove: Event<void>;
54
+ setListenMessages(listening: boolean): void;
55
+ setKeybindingDomTarget(target: HTMLElement): void;
56
+ }
57
+ export interface IWebviewContentOptions {
58
+ readonly allowScripts?: boolean;
59
+ readonly svgWhiteList?: string[];
60
+ readonly localResourceRoots?: ReadonlyArray<URI>;
61
+ readonly longLive?: boolean;
62
+ readonly enableFindWidget?: boolean;
63
+ }
64
+ export interface IWebviewContentScrollPosition {
65
+ scrollYPercentage: number;
66
+ scrollXPercentage: number;
67
+ }
68
+ export interface IPlainWebview extends IDisposable {
69
+ readonly url: string | undefined;
70
+ loadURL(url: string): Promise<void>;
71
+ appendTo(container: HTMLElement): void;
72
+ postMessage(message: any): void;
73
+ onMessage: Event<any>;
74
+ getDomNode(): MaybeNull<HTMLElement>;
75
+ onDispose: Event<void>;
76
+ readonly onRemove: Event<void>;
77
+ remove(): void;
78
+ onLoadURL: Event<string>;
79
+ }
80
+ /**
81
+ * 打开一个新的窗口,并显示一个url中的内容
82
+ * 暂时仅限 electron 中使用
83
+ */
84
+ export interface IPlainWebviewWindow extends IDisposable {
85
+ ready: Promise<void>;
86
+ readonly url: string | undefined;
87
+ loadURL(url: string): Promise<void>;
88
+ show(): Promise<void>;
89
+ hide(): Promise<void>;
90
+ postMessage(message: any): Promise<void>;
91
+ onMessage: Event<any>;
92
+ onClosed: Event<void>;
93
+ setSize(size: {
94
+ width?: number;
95
+ height?: number;
96
+ }): Promise<void>;
97
+ setAlwaysOnTop(flag: boolean): Promise<void>;
98
+ windowId: number;
99
+ webContentsId: number;
100
+ }
101
+ export declare const IWebviewService: unique symbol;
102
+ export interface IWebviewService {
103
+ createPlainWebview(options?: IPlainWebviewConstructionOptions): IPlainWebview;
104
+ createWebview(options?: IWebviewContentOptions): IWebview;
105
+ getWebview(id: string): IWebview | undefined;
106
+ createEditorWebviewComponent(options?: IWebviewContentOptions, id?: string): IEditorWebviewComponent<IWebview>;
107
+ createEditorPlainWebviewComponent(options?: IPlainWebviewConstructionOptions, id?: string): IEditorWebviewComponent<IPlainWebview>;
108
+ getWebviewThemeData(theme: ITheme): IWebviewThemeData;
109
+ getOrCreatePlainWebviewComponent(id: string, options?: IPlainWebviewConstructionOptions): IPlainWebviewComponentHandle;
110
+ getEditorPlainWebviewComponent(id: string): IEditorWebviewComponent<IPlainWebview> | undefined;
111
+ getPlainWebviewComponent(id: string): IPlainWebviewComponentHandle | undefined;
112
+ /**
113
+ * 创建一个 window 的 webview 容器, 暂时只支持 electron
114
+ * @param options electron的创建的options
115
+ * @param env 会传递给 webview内的 window.env 的内容
116
+ */
117
+ createWebviewWindow(options?: Electron.BrowserWindowConstructorOptions, env?: {
118
+ [key: string]: string;
119
+ }): IPlainWebviewWindow;
120
+ registerWebviewReviver(reviver: IWebviewReviver): IDisposable;
121
+ tryReviveWebviewComponent(id: string): Promise<void>;
122
+ }
123
+ export interface IPlainWebviewConstructionOptions {
124
+ preferredImpl?: 'webview' | 'iframe';
125
+ }
126
+ export interface IWebviewThemeData {
127
+ readonly activeTheme: string;
128
+ readonly styles: {
129
+ readonly [key: string]: string | number;
130
+ };
131
+ }
132
+ export interface IEditorWebviewComponent<T extends IWebview | IPlainWebview> extends IDisposable {
133
+ id: string;
134
+ webview: T;
135
+ group: IEditorGroup | undefined;
136
+ icon: string;
137
+ title: string;
138
+ open(options: {
139
+ groupIndex?: number;
140
+ relativeGroupIndex?: number;
141
+ }): any;
142
+ close(): any;
143
+ webviewUri: URI;
144
+ componentId: string;
145
+ onDidChangeGroupIndex: Event<number>;
146
+ /**
147
+ * 是否支持恢复
148
+ */
149
+ supportsRevive: boolean;
150
+ }
151
+ export interface IPlainWebviewComponentHandle extends IDisposable {
152
+ id: string;
153
+ webview: IPlainWebview;
154
+ }
155
+ export interface IEditorWebviewMetaData {
156
+ id: string;
157
+ options?: IWebviewContentOptions;
158
+ }
159
+ export interface IWebviewReviver {
160
+ /**
161
+ * revive 动作
162
+ */
163
+ revive: (id: string) => MaybePromise<void>;
164
+ /**
165
+ * 返回是否由它revive的优先级
166
+ * 负数表示不处理
167
+ */
168
+ handles: (id: string) => MaybePromise<number>;
169
+ }
170
+ export declare function isWebview(webview: IWebview | IPlainWebview): webview is IWebview;
171
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/browser/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWebview = exports.IWebviewService = exports.EDITOR_WEBVIEW_SCHEME = void 0;
4
+ exports.EDITOR_WEBVIEW_SCHEME = 'editor-webview';
5
+ exports.IWebviewService = Symbol('IWebviewService');
6
+ function isWebview(webview) {
7
+ return webview && !!webview.setContent;
8
+ }
9
+ exports.isWebview = isWebview;
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/browser/types.ts"],"names":[],"mappings":";;;AAIa,QAAA,qBAAqB,GAAG,gBAAgB,CAAC;AA6IzC,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AA4GzD,SAAgB,SAAS,CAAC,OAAiC;IACzD,OAAO,OAAO,IAAI,CAAC,CAAE,OAAoB,CAAC,UAAU,CAAC;AACvD,CAAC;AAFD,8BAEC"}
@@ -0,0 +1,33 @@
1
+ import { IPlainWebviewWindow } from './types';
2
+ import { IElectronMainUIService, IElectronPlainWebviewWindowOptions } from '@opensumi/ide-core-common/lib/electron';
3
+ import { Emitter, Event, Disposable } from '@opensumi/ide-core-browser';
4
+ export declare class ElectronPlainWebviewWindow extends Disposable implements IPlainWebviewWindow {
5
+ electronMainUIService: IElectronMainUIService;
6
+ private _windowId;
7
+ private _webContentsId;
8
+ private _ready;
9
+ private _closed;
10
+ constructor(options?: IElectronPlainWebviewWindowOptions, env?: {
11
+ [key: string]: string;
12
+ });
13
+ _onMessage: Emitter<any>;
14
+ onMessage: Event<any>;
15
+ _onClosed: Emitter<void>;
16
+ onClosed: Event<void>;
17
+ private _url;
18
+ get ready(): Promise<void>;
19
+ get url(): string;
20
+ loadURL(url: string): Promise<void>;
21
+ show(): Promise<void>;
22
+ hide(): Promise<void>;
23
+ setSize(size: {
24
+ width: number;
25
+ height: number;
26
+ }): Promise<void>;
27
+ setAlwaysOnTop(flag: boolean): Promise<void>;
28
+ postMessage(message: any): Promise<void>;
29
+ _close(): Promise<void> | undefined;
30
+ get windowId(): number;
31
+ get webContentsId(): number;
32
+ }
33
+ //# sourceMappingURL=webview-window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview-window.d.ts","sourceRoot":"","sources":["../../src/browser/webview-window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,wCAAwC,CAAC;AAEpH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAO,MAAM,4BAA4B,CAAC;AAE7E,qBACa,0BAA2B,SAAQ,UAAW,YAAW,mBAAmB;IAGvF,qBAAqB,EAAE,sBAAsB,CAAC;IAE9C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,OAAO,CAAkB;gBAErB,OAAO,CAAC,EAAE,kCAAkC,EAAE,GAAG,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO;IA4C7F,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAsB;IAC9C,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAyB;IAE9C,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAuB;IAC/C,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAwB;IAE7C,OAAO,CAAC,IAAI,CAAS;IAErB,IAAI,KAAK,kBAER;IAED,IAAI,GAAG,WAEN;IAEK,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnC,IAAI;IAIJ,IAAI;IAIJ,OAAO,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;KAAE;IAIhD,cAAc,CAAC,IAAI,EAAE,OAAO;IAI5B,WAAW,CAAC,OAAO,EAAE,GAAG;IAI9B,MAAM;IAWN,IAAI,QAAQ,WAEX;IAED,IAAI,aAAa,WAEhB;CACF"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ElectronPlainWebviewWindow = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const electron_1 = require("@opensumi/ide-core-common/lib/electron");
7
+ const electron_2 = require("@opensumi/ide-core-browser/lib/utils/electron");
8
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
9
+ let ElectronPlainWebviewWindow = class ElectronPlainWebviewWindow extends ide_core_browser_1.Disposable {
10
+ constructor(options, env = {}) {
11
+ super();
12
+ this._closed = false;
13
+ this._onMessage = new ide_core_browser_1.Emitter();
14
+ this.onMessage = this._onMessage.event;
15
+ this._onClosed = new ide_core_browser_1.Emitter();
16
+ this.onClosed = this._onClosed.event;
17
+ this._ready = this.electronMainUIService.createBrowserWindow(Object.assign(Object.assign({}, options), { webPreferences: Object.assign({ preload: new ide_core_browser_1.URI(electron_2.electronEnv.plainWebviewPreload).codeUri.fsPath, additionalArguments: [
18
+ '--additionalEnv=' + JSON.stringify(env),
19
+ '--parentWindowWebContentsId=' + electron_2.electronEnv.currentWebContentsId,
20
+ ] }, options === null || options === void 0 ? void 0 : options.webPreferences) })).then(async (id) => {
21
+ this._windowId = id;
22
+ this._webContentsId = await this.electronMainUIService.getWebContentsId(this._windowId);
23
+ }).then(() => {
24
+ const listener = (event, { from, message }) => {
25
+ if (from === this._windowId) {
26
+ this._onMessage.fire(message);
27
+ }
28
+ };
29
+ electron_2.electronEnv.ipcRenderer.on('cross-window-webview-message', listener);
30
+ this.addDispose({
31
+ dispose: () => {
32
+ electron_2.electronEnv.ipcRenderer.removeListener('cross-window-webview-message', listener);
33
+ },
34
+ });
35
+ this.addDispose(this.electronMainUIService.on('windowClosed', (windowId) => {
36
+ if (windowId === this._windowId) {
37
+ this._closed = true;
38
+ this._onClosed.fire();
39
+ this.dispose();
40
+ }
41
+ }));
42
+ });
43
+ this.addDispose(this._onMessage);
44
+ this.addDispose(this._onClosed);
45
+ this.addDispose({
46
+ dispose: () => {
47
+ this._close();
48
+ },
49
+ });
50
+ }
51
+ get ready() {
52
+ return this._ready;
53
+ }
54
+ get url() {
55
+ return this._url;
56
+ }
57
+ async loadURL(url) {
58
+ await this._ready;
59
+ this._url = url;
60
+ return this.electronMainUIService.browserWindowLoadUrl(this._windowId, url);
61
+ }
62
+ async show() {
63
+ return this.electronMainUIService.showBrowserWindow(this._windowId);
64
+ }
65
+ async hide() {
66
+ return this.electronMainUIService.hideBrowserWindow(this._windowId);
67
+ }
68
+ async setSize(size) {
69
+ return this.electronMainUIService.setSize(this._windowId, size);
70
+ }
71
+ async setAlwaysOnTop(flag) {
72
+ return this.electronMainUIService.setAlwaysOnTop(this._windowId, flag);
73
+ }
74
+ async postMessage(message) {
75
+ return this.electronMainUIService.postMessageToBrowserWindow(this._windowId, 'webview-message', message);
76
+ }
77
+ _close() {
78
+ if (this._closed) {
79
+ return;
80
+ }
81
+ try {
82
+ return this.electronMainUIService.closeBrowserWindow(this._windowId);
83
+ }
84
+ catch (e) {
85
+ // ignore
86
+ }
87
+ }
88
+ get windowId() {
89
+ return this._windowId;
90
+ }
91
+ get webContentsId() {
92
+ return this._webContentsId;
93
+ }
94
+ };
95
+ (0, tslib_1.__decorate)([
96
+ (0, di_1.Autowired)(electron_1.IElectronMainUIService),
97
+ (0, tslib_1.__metadata)("design:type", Object)
98
+ ], ElectronPlainWebviewWindow.prototype, "electronMainUIService", void 0);
99
+ ElectronPlainWebviewWindow = (0, tslib_1.__decorate)([
100
+ (0, di_1.Injectable)({ multiple: true }),
101
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, Object])
102
+ ], ElectronPlainWebviewWindow);
103
+ exports.ElectronPlainWebviewWindow = ElectronPlainWebviewWindow;
104
+ //# sourceMappingURL=webview-window.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview-window.js","sourceRoot":"","sources":["../../src/browser/webview-window.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { IWebviewService, IPlainWebviewConstructionOptions, IPlainWebview, IWebview, IWebviewContentOptions, IWebviewThemeData, IEditorWebviewComponent, IEditorWebviewMetaData, IPlainWebviewComponentHandle, IPlainWebviewWindow, IWebviewReviver } from './types';
2
+ import { URI, IEventBus, Disposable, ILogger, StorageProvider, IStorage } from '@opensumi/ide-core-browser';
3
+ import { ITheme } from '@opensumi/ide-theme';
4
+ import { IEditorGroup, WorkbenchEditorService, IResource } from '@opensumi/ide-editor';
5
+ import { EditorComponentRegistry, EditorPreferences } from '@opensumi/ide-editor/lib/browser';
6
+ export declare class WebviewServiceImpl implements IWebviewService {
7
+ private webviewIdCount;
8
+ private editorWebviewIdCount;
9
+ readonly editorWebviewComponents: Map<string, EditorWebviewComponent<IWebview | IPlainWebview>>;
10
+ readonly plainWebviewsComponents: Map<string, IPlainWebviewComponentHandle>;
11
+ private readonly webviews;
12
+ private injector;
13
+ protected readonly editorPreferences: EditorPreferences;
14
+ private _revivers;
15
+ logger: ILogger;
16
+ getStorage: StorageProvider;
17
+ storage: Promise<IStorage>;
18
+ constructor();
19
+ tryReviveWebviewComponent(id: string): Promise<void>;
20
+ registerWebviewReviver(reviver: IWebviewReviver): import("@opensumi/ide-core-browser").IDisposable;
21
+ createPlainWebview(options?: IPlainWebviewConstructionOptions): IPlainWebview;
22
+ createWebview(options?: IWebviewContentOptions): IWebview;
23
+ getWebview(id: string): IWebview | undefined;
24
+ private storeWebviewResource;
25
+ tryRestoredWebviewComponent(id: string): Promise<void>;
26
+ createEditorWebviewComponent(options?: IWebviewContentOptions, id?: string): IEditorWebviewComponent<IWebview>;
27
+ createEditorPlainWebviewComponent(options: IPlainWebviewConstructionOptions | undefined, id: string): IEditorWebviewComponent<IPlainWebview>;
28
+ getWebviewThemeData(theme: ITheme): IWebviewThemeData;
29
+ getOrCreatePlainWebviewComponent(id: string, options?: IPlainWebviewConstructionOptions | undefined): IPlainWebviewComponentHandle;
30
+ getEditorPlainWebviewComponent(id: string): IEditorWebviewComponent<IPlainWebview> | undefined;
31
+ getPlainWebviewComponent(id: string): IPlainWebviewComponentHandle | undefined;
32
+ createWebviewWindow(options?: Electron.BrowserWindowConstructorOptions, env?: {
33
+ [key: string]: string;
34
+ }): IPlainWebviewWindow;
35
+ }
36
+ export declare class EditorWebviewComponent<T extends IWebview | IPlainWebview> extends Disposable implements IEditorWebviewComponent<T> {
37
+ readonly id: string;
38
+ webviewFactory: () => T;
39
+ workbenchEditorService: WorkbenchEditorService;
40
+ editorComponentRegistry: EditorComponentRegistry;
41
+ eventBus: IEventBus;
42
+ private _webview;
43
+ private _onDidUpdateResource;
44
+ readonly onDidUpdateResource: import("@opensumi/ide-core-browser").Event<IResource<IEditorWebviewMetaData>>;
45
+ private _onDidChangeGroupIndex;
46
+ onDidChangeGroupIndex: import("@opensumi/ide-core-browser").Event<number>;
47
+ private _supportsRevive;
48
+ get supportsRevive(): boolean;
49
+ set supportsRevive(value: boolean);
50
+ open(options: {
51
+ groupIndex?: number;
52
+ relativeGroupIndex?: number;
53
+ }): Promise<import("@opensumi/ide-editor").IOpenResourceResult>;
54
+ close(): void;
55
+ private _title;
56
+ private _icon;
57
+ get icon(): string;
58
+ set icon(icon: string);
59
+ get title(): string;
60
+ set title(title: string);
61
+ get webview(): NonNullable<T>;
62
+ get resource(): IResource<IEditorWebviewMetaData>;
63
+ get webviewUri(): URI;
64
+ get editorGroup(): IEditorGroup | undefined;
65
+ get group(): IEditorGroup | undefined;
66
+ get componentId(): string;
67
+ constructor(id: string, webviewFactory: () => T);
68
+ createWebview(): T;
69
+ clear(): void;
70
+ }
71
+ export declare class PlainWebviewComponent extends Disposable implements IPlainWebviewComponentHandle {
72
+ readonly id: string;
73
+ readonly webview: any;
74
+ constructor(id: string, webview: any);
75
+ }
76
+ //# sourceMappingURL=webview.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview.service.d.ts","sourceRoot":"","sources":["../../src/browser/webview.service.ts"],"names":[],"mappings":"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"}