@opensumi/ide-overlay 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.
- package/README.md +137 -0
- package/lib/browser/ctx-menu/ctx-menu.service.d.ts +17 -0
- package/lib/browser/ctx-menu/ctx-menu.service.d.ts.map +1 -0
- package/lib/browser/ctx-menu/ctx-menu.service.js +80 -0
- package/lib/browser/ctx-menu/ctx-menu.service.js.map +1 -0
- package/lib/browser/ctx-menu/ctx-menu.view.d.ts +4 -0
- package/lib/browser/ctx-menu/ctx-menu.view.d.ts.map +1 -0
- package/lib/browser/ctx-menu/ctx-menu.view.js +39 -0
- package/lib/browser/ctx-menu/ctx-menu.view.js.map +1 -0
- package/lib/browser/dialog.service.d.ts +21 -0
- package/lib/browser/dialog.service.d.ts.map +1 -0
- package/lib/browser/dialog.service.js +115 -0
- package/lib/browser/dialog.service.js.map +1 -0
- package/lib/browser/dialog.view.d.ts +3 -0
- package/lib/browser/dialog.view.d.ts.map +1 -0
- package/lib/browser/dialog.view.js +30 -0
- package/lib/browser/dialog.view.js.map +1 -0
- package/lib/browser/index.d.ts +9 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +38 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/index.view.d.ts +4 -0
- package/lib/browser/index.view.d.ts.map +1 -0
- package/lib/browser/index.view.js +41 -0
- package/lib/browser/index.view.js.map +1 -0
- package/lib/browser/message.module.less +0 -0
- package/lib/browser/message.service.d.ts +22 -0
- package/lib/browser/message.service.d.ts.map +1 -0
- package/lib/browser/message.service.js +56 -0
- package/lib/browser/message.service.js.map +1 -0
- package/lib/browser/styles.module.less +8 -0
- package/lib/common/index.d.ts +62 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +38 -0
- package/lib/common/index.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/package.json +27 -0
package/README.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: overlay
|
|
3
|
+
title: 浮层模块
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
overlay 模块为 IDE 上的浮层模块,例如包含 Dialog(弹窗)、Message(消息)等模块。如果需要在 IDE 通知用户一条消息或者需要一个模态对话框和用户交互时,可以使用该模块。
|
|
7
|
+
|
|
8
|
+
## Message
|
|
9
|
+
|
|
10
|
+
Message 会在 IDE 右下角弹出一个提示信息。
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
### 接口
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
export interface IMessageService {
|
|
18
|
+
info(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
19
|
+
warning(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
20
|
+
error(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
21
|
+
open<T = string>(message: string | React.ReactNode, type: MessageType, buttons?: string[], closable?: boolean, from?: string): Promise<T | undefined>;
|
|
22
|
+
hide<T = string>(value?: T): void;
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 参数说明
|
|
27
|
+
|
|
28
|
+
以下参数以 info 为例
|
|
29
|
+
|
|
30
|
+
#### message
|
|
31
|
+
message 主要指定了消息体,可以是一个普通的文本消息,也可以是一个 React 组件
|
|
32
|
+
|
|
33
|
+
###### Example
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import { IMessageService } from '@opensumi/ide-overlay';
|
|
37
|
+
|
|
38
|
+
@Injectable()
|
|
39
|
+
export class MessageDemo {
|
|
40
|
+
@Autowired(IMessageService)
|
|
41
|
+
messageService: IMessageService;
|
|
42
|
+
|
|
43
|
+
private showMessage() {
|
|
44
|
+
this.messageService.info('复制成功');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### buttons
|
|
51
|
+
buttons 为弹窗右下角按钮,按照从左向右的顺序依次渲染,用户选择后会返回选择的结果
|
|
52
|
+
|
|
53
|
+
###### Example
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { IMessageService } from '@opensumi/ide-overlay';
|
|
57
|
+
|
|
58
|
+
@Injectable()
|
|
59
|
+
export class MessageDemo {
|
|
60
|
+
@Autowired(IMessageService)
|
|
61
|
+
messageService: IMessageService;
|
|
62
|
+
|
|
63
|
+
private async showMessage() {
|
|
64
|
+
const res = await this.messageService.info('是否要更新插件', ['确定', '取消']);
|
|
65
|
+
|
|
66
|
+
if (res === '确定') {
|
|
67
|
+
//...
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
#### closable
|
|
76
|
+
是否显示关闭按钮,默认为 true
|
|
77
|
+
|
|
78
|
+
### 常见问题
|
|
79
|
+
|
|
80
|
+
#### 消息弹出时间是多久
|
|
81
|
+
|
|
82
|
+
- info: 15 秒
|
|
83
|
+
- warning: 18 秒
|
|
84
|
+
- error: 20 秒
|
|
85
|
+
|
|
86
|
+
#### 如何自定义消息组件
|
|
87
|
+
|
|
88
|
+
如果不想用默认消息图标,可以使用 `open` 接口自定义消息组件
|
|
89
|
+
|
|
90
|
+
##### Example
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
export const CustomMessage = () => {
|
|
94
|
+
const messageService = useInjectable(IMessageService)
|
|
95
|
+
return (
|
|
96
|
+
<div>
|
|
97
|
+
<div>这是一个自定义消息</div>
|
|
98
|
+
<button onClick={() => messageService.hide('确定')}>确定</button>
|
|
99
|
+
</div>
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
const res = await this.messageService.open(<CustomMessage />, MessageType.EMPTY);
|
|
106
|
+
|
|
107
|
+
if (res === '确定') {
|
|
108
|
+
//...
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Dialog
|
|
113
|
+
Dialog 接口与消息一致,不过弹窗为模态
|
|
114
|
+
|
|
115
|
+

|
|
116
|
+
|
|
117
|
+
### Example
|
|
118
|
+
|
|
119
|
+
```ts
|
|
120
|
+
import { IDialogService } from '@opensumi/ide-overlay';
|
|
121
|
+
|
|
122
|
+
@Injectable()
|
|
123
|
+
export class MessageDemo {
|
|
124
|
+
@Autowired(IDialogService)
|
|
125
|
+
dialogService: IDialogService;
|
|
126
|
+
|
|
127
|
+
private async showMessage() {
|
|
128
|
+
const res = await this.dialogService.info('这是一个模态弹窗');
|
|
129
|
+
|
|
130
|
+
if (res === '确定') {
|
|
131
|
+
//...
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MenuNode } from '@opensumi/ide-core-browser/lib/menu/next/base';
|
|
2
|
+
import { CtxMenuRenderParams } from '@opensumi/ide-core-browser/lib/menu/next/renderer/ctxmenu/base';
|
|
3
|
+
import { IBrowserCtxMenu } from '@opensumi/ide-core-browser/lib/menu/next/renderer/ctxmenu/browser';
|
|
4
|
+
export declare class BrowserCtxMenuService implements IBrowserCtxMenu {
|
|
5
|
+
visible: boolean;
|
|
6
|
+
onHide: ((canceled: boolean) => void) | undefined;
|
|
7
|
+
point: {
|
|
8
|
+
pageX: number;
|
|
9
|
+
pageY: number;
|
|
10
|
+
} | undefined;
|
|
11
|
+
context: any;
|
|
12
|
+
menuNodes: MenuNode[];
|
|
13
|
+
show(payload: CtxMenuRenderParams): void;
|
|
14
|
+
hide(canceled: boolean): void;
|
|
15
|
+
private reset;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ctx-menu.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ctx-menu.service.d.ts","sourceRoot":"","sources":["../../../src/browser/ctx-menu/ctx-menu.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,mEAAmE,CAAC;AAEpG,qBACa,qBAAsB,YAAW,eAAe;IAE3D,OAAO,EAAE,OAAO,CAAS;IAGzB,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAa;IAG9D,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;KAAE,GAAG,SAAS,CAAa;IAGjE,OAAO,EAAE,GAAG,CAAa;IAGzB,SAAS,EAAE,QAAQ,EAAE,CAAwB;IAGtC,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAgBxC,IAAI,CAAC,QAAQ,EAAE,OAAO;IAQ7B,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BrowserCtxMenuService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const mobx_1 = require("mobx");
|
|
6
|
+
const di_1 = require("@opensumi/di");
|
|
7
|
+
let BrowserCtxMenuService = class BrowserCtxMenuService {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.visible = false;
|
|
10
|
+
this.onHide = undefined;
|
|
11
|
+
this.point = undefined;
|
|
12
|
+
this.context = undefined;
|
|
13
|
+
this.menuNodes = mobx_1.observable.array([]);
|
|
14
|
+
}
|
|
15
|
+
show(payload) {
|
|
16
|
+
const { anchor, onHide, args: context, menuNodes } = payload;
|
|
17
|
+
// 上层调用前已经将 MenuNodes 处理为数组了
|
|
18
|
+
if (!Array.isArray(menuNodes) || !menuNodes.length) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.context = context;
|
|
22
|
+
this.menuNodes.splice(0, this.menuNodes.length, ...menuNodes);
|
|
23
|
+
const { x, y } = anchor instanceof window.MouseEvent ? { x: anchor.clientX, y: anchor.clientY } : anchor;
|
|
24
|
+
this.onHide = onHide;
|
|
25
|
+
this.point = { pageX: x, pageY: y };
|
|
26
|
+
this.visible = true;
|
|
27
|
+
}
|
|
28
|
+
hide(canceled) {
|
|
29
|
+
if (typeof this.onHide === 'function') {
|
|
30
|
+
this.onHide(canceled);
|
|
31
|
+
}
|
|
32
|
+
this.reset();
|
|
33
|
+
}
|
|
34
|
+
reset() {
|
|
35
|
+
this.visible = false;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
(0, tslib_1.__decorate)([
|
|
39
|
+
mobx_1.observable,
|
|
40
|
+
(0, tslib_1.__metadata)("design:type", Boolean)
|
|
41
|
+
], BrowserCtxMenuService.prototype, "visible", void 0);
|
|
42
|
+
(0, tslib_1.__decorate)([
|
|
43
|
+
mobx_1.observable,
|
|
44
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
45
|
+
], BrowserCtxMenuService.prototype, "onHide", void 0);
|
|
46
|
+
(0, tslib_1.__decorate)([
|
|
47
|
+
mobx_1.observable,
|
|
48
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
49
|
+
], BrowserCtxMenuService.prototype, "point", void 0);
|
|
50
|
+
(0, tslib_1.__decorate)([
|
|
51
|
+
mobx_1.observable,
|
|
52
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
53
|
+
], BrowserCtxMenuService.prototype, "context", void 0);
|
|
54
|
+
(0, tslib_1.__decorate)([
|
|
55
|
+
mobx_1.observable,
|
|
56
|
+
(0, tslib_1.__metadata)("design:type", Array)
|
|
57
|
+
], BrowserCtxMenuService.prototype, "menuNodes", void 0);
|
|
58
|
+
(0, tslib_1.__decorate)([
|
|
59
|
+
mobx_1.action,
|
|
60
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
61
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
|
62
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
63
|
+
], BrowserCtxMenuService.prototype, "show", null);
|
|
64
|
+
(0, tslib_1.__decorate)([
|
|
65
|
+
mobx_1.action.bound,
|
|
66
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
67
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Boolean]),
|
|
68
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
69
|
+
], BrowserCtxMenuService.prototype, "hide", null);
|
|
70
|
+
(0, tslib_1.__decorate)([
|
|
71
|
+
mobx_1.action.bound,
|
|
72
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
73
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
|
74
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
75
|
+
], BrowserCtxMenuService.prototype, "reset", null);
|
|
76
|
+
BrowserCtxMenuService = (0, tslib_1.__decorate)([
|
|
77
|
+
(0, di_1.Injectable)()
|
|
78
|
+
], BrowserCtxMenuService);
|
|
79
|
+
exports.BrowserCtxMenuService = BrowserCtxMenuService;
|
|
80
|
+
//# sourceMappingURL=ctx-menu.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ctx-menu.service.js","sourceRoot":"","sources":["../../../src/browser/ctx-menu/ctx-menu.service.ts"],"names":[],"mappings":";;;;AAAA,+BAA0C;AAC1C,qCAA0C;AAM1C,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAAlC;QAEE,YAAO,GAAY,KAAK,CAAC;QAGzB,WAAM,GAA8C,SAAS,CAAC;QAG9D,UAAK,GAAkD,SAAS,CAAC;QAGjE,YAAO,GAAQ,SAAS,CAAC;QAGzB,cAAS,GAAe,iBAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IA8B/C,CAAC;IA3BQ,IAAI,CAAC,OAA4B;QACtC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAC7D,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAClD,OAAO;SACR;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QAC9D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACzG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAGM,IAAI,CAAC,QAAiB;QAC3B,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACvB;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAGO,KAAK;QACX,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;CACF,CAAA;AA1CC;IADC,iBAAU;;sDACc;AAGzB;IADC,iBAAU;;qDACmD;AAG9D;IADC,iBAAU;;oDACsD;AAGjE;IADC,iBAAU;;sDACc;AAGzB;IADC,iBAAU;;wDACkC;AAG7C;IADC,aAAM;;;;iDAcN;AAGD;IADC,aAAM,CAAC,KAAK;;;;iDAMZ;AAGD;IADC,aAAM,CAAC,KAAK;;;;kDAGZ;AA3CU,qBAAqB;IADjC,IAAA,eAAU,GAAE;GACA,qBAAqB,CA4CjC;AA5CY,sDAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ctx-menu.view.d.ts","sourceRoot":"","sources":["../../../src/browser/ctx-menu/ctx-menu.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,wCAAwC,CAAC;AAEhD,eAAO,MAAM,OAAO,iCA4ClB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CtxMenu = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
|
+
const mobx_react_lite_1 = require("mobx-react-lite");
|
|
7
|
+
const click_outside_1 = require("@opensumi/ide-core-browser/lib/components/click-outside");
|
|
8
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
9
|
+
const browser_1 = require("@opensumi/ide-core-browser/lib/menu/next/renderer/ctxmenu/browser");
|
|
10
|
+
const actions_1 = require("@opensumi/ide-core-browser/lib/components/actions");
|
|
11
|
+
const placements_1 = (0, tslib_1.__importDefault)(require("@opensumi/ide-core-browser/lib/components/actions/placements"));
|
|
12
|
+
const react_ctxmenu_trigger_1 = (0, tslib_1.__importDefault)(require("react-ctxmenu-trigger"));
|
|
13
|
+
require("react-ctxmenu-trigger/assets/index.css");
|
|
14
|
+
exports.CtxMenu = (0, mobx_react_lite_1.observer)(() => {
|
|
15
|
+
const ctxMenuService = (0, ide_core_browser_1.useInjectable)(browser_1.IBrowserCtxMenu);
|
|
16
|
+
const handleClick = react_1.default.useCallback(() => {
|
|
17
|
+
ctxMenuService.hide(false);
|
|
18
|
+
}, []);
|
|
19
|
+
const onClickOutSide = react_1.default.useCallback(() => {
|
|
20
|
+
if (ctxMenuService.visible) {
|
|
21
|
+
ctxMenuService.hide(true);
|
|
22
|
+
}
|
|
23
|
+
}, [ctxMenuService.visible]);
|
|
24
|
+
// todo: 缓存上一次点击 visible 完成 toggle 效果
|
|
25
|
+
return (react_1.default.createElement(react_ctxmenu_trigger_1.default
|
|
26
|
+
// popupTransitionName='slide-up'
|
|
27
|
+
, {
|
|
28
|
+
// popupTransitionName='slide-up'
|
|
29
|
+
popupPlacement: 'bottomLeft', popupVisible: ctxMenuService.visible, action: ['contextMenu'], popupAlign: {
|
|
30
|
+
overflow: {
|
|
31
|
+
adjustX: 1,
|
|
32
|
+
adjustY: 1,
|
|
33
|
+
},
|
|
34
|
+
offset: [window.scrollX, window.scrollY],
|
|
35
|
+
}, point: ctxMenuService.point || {}, popupClassName: 'point-popup', builtinPlacements: placements_1.default, popup: (react_1.default.createElement(click_outside_1.ClickOutside, { mouseEvents: ['click', 'contextmenu'], onOutsideClick: onClickOutSide },
|
|
36
|
+
react_1.default.createElement(actions_1.MenuActionList, { data: ctxMenuService.menuNodes, afterClick: handleClick, context: ctxMenuService.context }))), alignPoint: true }));
|
|
37
|
+
});
|
|
38
|
+
exports.CtxMenu.displayName = 'CtxMenu';
|
|
39
|
+
//# sourceMappingURL=ctx-menu.view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ctx-menu.view.js","sourceRoot":"","sources":["../../../src/browser/ctx-menu/ctx-menu.view.tsx"],"names":[],"mappings":";;;;AAAA,+DAA0B;AAC1B,qDAA2C;AAC3C,2FAAuF;AACvF,iEAA2D;AAC3D,+FAAoG;AACpG,+EAAmF;AACnF,2HAAsF;AACtF,+FAAmD;AACnD,kDAAgD;AAEnC,QAAA,OAAO,GAAG,IAAA,0BAAQ,EAAC,GAAG,EAAE;IACnC,MAAM,cAAc,GAAG,IAAA,gCAAa,EAAkB,yBAAe,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5C,IAAI,cAAc,CAAC,OAAO,EAAE;YAC1B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7B,qCAAqC;IACrC,OAAO,CACL,8BAAC,+BAAc;IACb,iCAAiC;;QAAjC,iCAAiC;QACjC,cAAc,EAAC,YAAY,EAC3B,YAAY,EAAE,cAAc,CAAC,OAAO,EACpC,MAAM,EAAE,CAAC,aAAa,CAAC,EACvB,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;SACzC,EACD,KAAK,EAAE,cAAc,CAAC,KAAK,IAAI,EAAE,EACjC,cAAc,EAAC,aAAa,EAC5B,iBAAiB,EAAE,oBAAU,EAC7B,KAAK,EAAE,CACL,8BAAC,4BAAY,IACX,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EACrC,cAAc,EAAE,cAAc;YAC9B,8BAAC,wBAAc,IACb,IAAI,EAAE,cAAc,CAAC,SAAS,EAC9B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,cAAc,CAAC,OAAO,GAC/B,CACW,CAChB,EACD,UAAU,SACV,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAO,CAAC,WAAW,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IDialogService, AbstractMessageService, Icon } from '../common';
|
|
3
|
+
import { Deferred, MessageType } from '@opensumi/ide-core-common';
|
|
4
|
+
export declare class DialogService extends AbstractMessageService implements IDialogService {
|
|
5
|
+
protected type: MessageType | undefined;
|
|
6
|
+
protected deferred: Deferred<any>;
|
|
7
|
+
protected visible: boolean;
|
|
8
|
+
protected message: string | React.ReactNode;
|
|
9
|
+
protected title: string;
|
|
10
|
+
closable: boolean;
|
|
11
|
+
protected buttons: string[];
|
|
12
|
+
open<T = string>(message: string | React.ReactNode, type: MessageType, buttons?: any[], closable?: boolean): Promise<T | undefined>;
|
|
13
|
+
hide<T = string>(value?: T): void;
|
|
14
|
+
reset(): void;
|
|
15
|
+
isVisible(): boolean;
|
|
16
|
+
getMessage(): string | React.ReactNode;
|
|
17
|
+
getType(): MessageType | undefined;
|
|
18
|
+
getIcon(): Icon | undefined;
|
|
19
|
+
getButtons(): string[];
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dialog.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.service.d.ts","sourceRoot":"","sources":["../../src/browser/dialog.service.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,IAAI,EAAC,MAAM,WAAW,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAElE,qBACa,aAAc,SAAQ,sBAAuB,YAAW,cAAc;IAEjF,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAExC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAGlC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAS;IAGnC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAM;IAGjD,SAAS,CAAC,KAAK,EAAE,MAAM,CAAM;IAGtB,QAAQ,EAAE,OAAO,CAAQ;IAGhC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IAGjC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAazI,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAMjC,KAAK,IAAI,IAAI;IAMb,SAAS,IAAI,OAAO;IAIpB,UAAU,IAAI,MAAM,GAAG,KAAK,CAAC,SAAS;IAItC,OAAO,IAAI,WAAW,GAAG,SAAS;IAIlC,OAAO,IAAI,IAAI,GAAG,SAAS;IAsB3B,UAAU,IAAI,MAAM,EAAE;CAGvB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DialogService = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const di_1 = require("@opensumi/di");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
const mobx_1 = require("mobx");
|
|
9
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
10
|
+
let DialogService = class DialogService extends common_1.AbstractMessageService {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.visible = false;
|
|
14
|
+
this.message = '';
|
|
15
|
+
this.title = '';
|
|
16
|
+
this.closable = true;
|
|
17
|
+
this.buttons = [];
|
|
18
|
+
}
|
|
19
|
+
open(message, type, buttons, closable = true) {
|
|
20
|
+
this.deferred = new ide_core_common_1.Deferred();
|
|
21
|
+
this.type = type;
|
|
22
|
+
this.message = message;
|
|
23
|
+
this.visible = true;
|
|
24
|
+
this.closable = closable;
|
|
25
|
+
if (buttons) {
|
|
26
|
+
this.buttons = buttons;
|
|
27
|
+
}
|
|
28
|
+
return this.deferred.promise;
|
|
29
|
+
}
|
|
30
|
+
hide(value) {
|
|
31
|
+
this.visible = false;
|
|
32
|
+
this.deferred.resolve(value);
|
|
33
|
+
}
|
|
34
|
+
reset() {
|
|
35
|
+
this.type = undefined;
|
|
36
|
+
this.message = '';
|
|
37
|
+
this.buttons = [];
|
|
38
|
+
}
|
|
39
|
+
isVisible() {
|
|
40
|
+
return this.visible;
|
|
41
|
+
}
|
|
42
|
+
getMessage() {
|
|
43
|
+
return this.message;
|
|
44
|
+
}
|
|
45
|
+
getType() {
|
|
46
|
+
return this.type;
|
|
47
|
+
}
|
|
48
|
+
getIcon() {
|
|
49
|
+
switch (this.type) {
|
|
50
|
+
case ide_core_common_1.MessageType.Error:
|
|
51
|
+
return {
|
|
52
|
+
color: 'var(--notificationsErrorIcon-foreground)',
|
|
53
|
+
className: 'close-circle',
|
|
54
|
+
};
|
|
55
|
+
case ide_core_common_1.MessageType.Info:
|
|
56
|
+
return {
|
|
57
|
+
color: 'var(--notificationsInfoIcon-foreground)',
|
|
58
|
+
className: 'info-circle',
|
|
59
|
+
};
|
|
60
|
+
case ide_core_common_1.MessageType.Warning:
|
|
61
|
+
return {
|
|
62
|
+
color: 'var(--notificationsWarningIcon-foreground)',
|
|
63
|
+
className: 'question-circle',
|
|
64
|
+
};
|
|
65
|
+
default:
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
getButtons() {
|
|
70
|
+
return this.buttons;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
(0, tslib_1.__decorate)([
|
|
74
|
+
mobx_1.observable,
|
|
75
|
+
(0, tslib_1.__metadata)("design:type", Boolean)
|
|
76
|
+
], DialogService.prototype, "visible", void 0);
|
|
77
|
+
(0, tslib_1.__decorate)([
|
|
78
|
+
mobx_1.observable,
|
|
79
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
80
|
+
], DialogService.prototype, "message", void 0);
|
|
81
|
+
(0, tslib_1.__decorate)([
|
|
82
|
+
mobx_1.observable,
|
|
83
|
+
(0, tslib_1.__metadata)("design:type", String)
|
|
84
|
+
], DialogService.prototype, "title", void 0);
|
|
85
|
+
(0, tslib_1.__decorate)([
|
|
86
|
+
mobx_1.observable,
|
|
87
|
+
(0, tslib_1.__metadata)("design:type", Boolean)
|
|
88
|
+
], DialogService.prototype, "closable", void 0);
|
|
89
|
+
(0, tslib_1.__decorate)([
|
|
90
|
+
mobx_1.observable,
|
|
91
|
+
(0, tslib_1.__metadata)("design:type", Array)
|
|
92
|
+
], DialogService.prototype, "buttons", void 0);
|
|
93
|
+
(0, tslib_1.__decorate)([
|
|
94
|
+
mobx_1.action,
|
|
95
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
96
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, Number, Array, Boolean]),
|
|
97
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
98
|
+
], DialogService.prototype, "open", null);
|
|
99
|
+
(0, tslib_1.__decorate)([
|
|
100
|
+
mobx_1.action,
|
|
101
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
102
|
+
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_a = typeof T !== "undefined" && T) === "function" ? _a : Object]),
|
|
103
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
104
|
+
], DialogService.prototype, "hide", null);
|
|
105
|
+
(0, tslib_1.__decorate)([
|
|
106
|
+
mobx_1.action,
|
|
107
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
108
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
|
109
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
|
110
|
+
], DialogService.prototype, "reset", null);
|
|
111
|
+
DialogService = (0, tslib_1.__decorate)([
|
|
112
|
+
(0, di_1.Injectable)()
|
|
113
|
+
], DialogService);
|
|
114
|
+
exports.DialogService = DialogService;
|
|
115
|
+
//# sourceMappingURL=dialog.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.service.js","sourceRoot":"","sources":["../../src/browser/dialog.service.ts"],"names":[],"mappings":";;;;;AAAA,qCAA0C;AAC1C,sCAAwE;AACxE,+BAA0C;AAC1C,+DAAkE;AAGlE,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,+BAAsB;IAAzD;;QAOY,YAAO,GAAY,KAAK,CAAC;QAGzB,YAAO,GAA6B,EAAE,CAAC;QAGvC,UAAK,GAAW,EAAE,CAAC;QAGtB,aAAQ,GAAY,IAAI,CAAC;QAGtB,YAAO,GAAa,EAAE,CAAC;IAiEnC,CAAC;IA9DC,IAAI,CAAa,OAAiC,EAAE,IAAiB,EAAE,OAAe,EAAE,WAAoB,IAAI;QAC9G,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAQ,EAAU,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAGD,IAAI,CAAa,KAAS;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,6BAAW,CAAC,KAAK;gBACpB,OAAO;oBACL,KAAK,EAAE,0CAA0C;oBACjD,SAAS,EAAE,cAAc;iBAC1B,CAAC;YACJ,KAAK,6BAAW,CAAC,IAAI;gBACjB,OAAO;oBACL,KAAK,EAAE,yCAAyC;oBAChD,SAAS,EAAE,aAAa;iBACzB,CAAC;YACN,KAAK,6BAAW,CAAC,OAAO;gBACpB,OAAO;oBACL,KAAK,EAAE,4CAA4C;oBACnD,SAAS,EAAE,iBAAiB;iBAC7B,CAAC;YACN;gBACE,MAAM;SACT;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF,CAAA;AA7EC;IADC,iBAAU;;8CACwB;AAGnC;IADC,iBAAU;;8CACsC;AAGjD;IADC,iBAAU;;4CACkB;AAG7B;IADC,iBAAU;;+CACqB;AAGhC;IADC,iBAAU;;8CACsB;AAGjC;IADC,aAAM;;;;yCAWN;AAGD;IADC,aAAM;;sEACkB,CAAC,oBAAD,CAAC;;yCAGzB;AAGD;IADC,aAAM;;;;0CAKN;AA7CU,aAAa;IADzB,IAAA,eAAU,GAAE;GACA,aAAa,CAoFzB;AApFY,sCAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.view.d.ts","sourceRoot":"","sources":["../../src/browser/dialog.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,eAAO,MAAM,MAAM,iCAiDjB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Dialog = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
|
+
const mobx_react_lite_1 = require("mobx-react-lite");
|
|
7
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
8
|
+
const strings_1 = require("@opensumi/ide-core-common/lib/utils/strings");
|
|
9
|
+
const ide_components_1 = require("@opensumi/ide-components");
|
|
10
|
+
const common_1 = require("../common");
|
|
11
|
+
exports.Dialog = (0, mobx_react_lite_1.observer)(() => {
|
|
12
|
+
const dialogService = (0, ide_core_browser_1.useInjectable)(common_1.IDialogService);
|
|
13
|
+
const icon = dialogService.getIcon();
|
|
14
|
+
const message = dialogService.getMessage();
|
|
15
|
+
const buttons = dialogService.getButtons();
|
|
16
|
+
const type = dialogService.getType();
|
|
17
|
+
function afterClose() {
|
|
18
|
+
dialogService.reset();
|
|
19
|
+
}
|
|
20
|
+
function handleClose() {
|
|
21
|
+
dialogService.hide();
|
|
22
|
+
}
|
|
23
|
+
function handlerClickButton(value) {
|
|
24
|
+
return () => {
|
|
25
|
+
dialogService.hide(value);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return (react_1.default.createElement(ide_components_1.Dialog, { visible: dialogService.isVisible(), onClose: handleClose, closable: dialogService.closable, afterClose: afterClose, message: message, type: 'confirm', messageType: type, icon: icon, buttons: buttons.length ? buttons.map((button, index) => (react_1.default.createElement(ide_components_1.Button, { size: 'large', onClick: handlerClickButton(button), key: button, type: index === buttons.length - 1 ? 'primary' : 'secondary' }, (0, strings_1.mnemonicButtonLabel)(button, true)))) : (react_1.default.createElement(ide_components_1.Button, { size: 'large', onClick: handleClose, type: 'primary' }, (0, ide_core_browser_1.localize)('dialog.confirm'))) }));
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=dialog.view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.view.js","sourceRoot":"","sources":["../../src/browser/dialog.view.tsx"],"names":[],"mappings":";;;;AAAA,+DAA0B;AAC1B,qDAA2C;AAC3C,iEAAqE;AACrE,yEAAkF;AAClF,6DAAwE;AAExE,sCAA2C;AAE9B,QAAA,MAAM,GAAG,IAAA,0BAAQ,EAAC,GAAG,EAAE;IAClC,MAAM,aAAa,GAAG,IAAA,gCAAa,EAAiB,uBAAc,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;IAErC,SAAS,UAAU;QACjB,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,WAAW;QAClB,aAAa,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,SAAS,kBAAkB,CAAC,KAAa;QACvC,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BAAC,uBAAU,IACT,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,EAClC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,SAAS,EACd,WAAW,EAAE,IAAI,EACjB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACvD,8BAAC,uBAAM,IACL,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,IAC1D,IAAA,6BAAmB,EAAC,MAAM,EAAE,IAAI,CAAC,CAC5B,CACV,CAAC,CAAC,CAAC,CAAC,CACH,8BAAC,uBAAM,IACL,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,EAAC,SAAS,IACb,IAAA,2BAAQ,EAAC,gBAAgB,CAAC,CACpB,CACV,GACD,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Provider } from '@opensumi/di';
|
|
3
|
+
import { BrowserModule } from '@opensumi/ide-core-browser';
|
|
4
|
+
export declare class OverlayModule extends BrowserModule {
|
|
5
|
+
providers: Provider[];
|
|
6
|
+
isOverlay: boolean;
|
|
7
|
+
component: import("react").FunctionComponent<object>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,qBACa,aAAc,SAAQ,aAAa;IAC9C,SAAS,EAAE,QAAQ,EAAE,CAanB;IAEF,SAAS,UAAQ;IACjB,SAAS,4CAAW;CACrB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OverlayModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
7
|
+
const index_view_1 = require("./index.view");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const dialog_service_1 = require("./dialog.service");
|
|
10
|
+
const message_service_1 = require("./message.service");
|
|
11
|
+
const ctx_menu_service_1 = require("./ctx-menu/ctx-menu.service");
|
|
12
|
+
const browser_1 = require("@opensumi/ide-core-browser/lib/menu/next/renderer/ctxmenu/browser");
|
|
13
|
+
let OverlayModule = class OverlayModule extends ide_core_browser_1.BrowserModule {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.providers = [
|
|
17
|
+
{
|
|
18
|
+
token: common_1.IDialogService,
|
|
19
|
+
useClass: dialog_service_1.DialogService,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
token: common_1.IMessageService,
|
|
23
|
+
useClass: message_service_1.MessageService,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
token: browser_1.IBrowserCtxMenu,
|
|
27
|
+
useClass: ctx_menu_service_1.BrowserCtxMenuService,
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
this.isOverlay = true;
|
|
31
|
+
this.component = index_view_1.Overlay;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
OverlayModule = (0, tslib_1.__decorate)([
|
|
35
|
+
(0, di_1.Injectable)()
|
|
36
|
+
], OverlayModule);
|
|
37
|
+
exports.OverlayModule = OverlayModule;
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";;;;AAAA,qCAAoD;AACpD,iEAA2D;AAC3D,6CAAuC;AACvC,sCAA4D;AAC5D,qDAAiD;AACjD,uDAAmD;AACnD,kEAAoE;AACpE,+FAAoG;AAGpG,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,gCAAa;IAAhD;;QACE,cAAS,GAAe;YACtB;gBACE,KAAK,EAAE,uBAAc;gBACrB,QAAQ,EAAE,8BAAa;aACxB;YACD;gBACE,KAAK,EAAE,wBAAe;gBACtB,QAAQ,EAAE,gCAAc;aACzB;YACD;gBACE,KAAK,EAAE,yBAAe;gBACtB,QAAQ,EAAE,wCAAqB;aAChC;SACF,CAAC;QAEF,cAAS,GAAG,IAAI,CAAC;QACjB,cAAS,GAAG,oBAAO,CAAC;IACtB,CAAC;CAAA,CAAA;AAlBY,aAAa;IADzB,IAAA,eAAU,GAAE;GACA,aAAa,CAkBzB;AAlBY,sCAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.view.d.ts","sourceRoot":"","sources":["../../src/browser/index.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,sBAAsB,CAAC;AAE9B,eAAO,MAAM,OAAO,iCAgClB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Overlay = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
|
+
const mobx_react_lite_1 = require("mobx-react-lite");
|
|
7
|
+
const ctx_menu_view_1 = require("./ctx-menu/ctx-menu.view");
|
|
8
|
+
const dialog_view_1 = require("./dialog.view");
|
|
9
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
10
|
+
require("./styles.module.less");
|
|
11
|
+
exports.Overlay = (0, mobx_react_lite_1.observer)(() => {
|
|
12
|
+
const componentRegistry = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.ComponentRegistry);
|
|
13
|
+
const clientApp = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.IClientApp);
|
|
14
|
+
const [extraComponents, setExtra] = react_1.default.useState([]);
|
|
15
|
+
const appConfig = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.AppConfig);
|
|
16
|
+
react_1.default.useEffect(() => {
|
|
17
|
+
// 对于嵌套在模块视图的SlotRenderer,渲染时应用已启动
|
|
18
|
+
clientApp.appInitialized.promise.then(() => {
|
|
19
|
+
var _a;
|
|
20
|
+
if ((_a = appConfig.layoutConfig[ide_core_browser_1.SlotLocation.extra]) === null || _a === void 0 ? void 0 : _a.modules) {
|
|
21
|
+
const components = [];
|
|
22
|
+
appConfig.layoutConfig[ide_core_browser_1.SlotLocation.extra].modules.forEach((name) => {
|
|
23
|
+
const info = componentRegistry.getComponentRegistryInfo(name);
|
|
24
|
+
if (info) {
|
|
25
|
+
(info.views || []).forEach((v) => {
|
|
26
|
+
if (v.component) {
|
|
27
|
+
components.push(v.component);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
setExtra(components);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}, []);
|
|
36
|
+
return (react_1.default.createElement("div", { id: 'ide-overlay', className: 'ide-overlay' },
|
|
37
|
+
react_1.default.createElement(dialog_view_1.Dialog, null),
|
|
38
|
+
react_1.default.createElement(ctx_menu_view_1.CtxMenu, null),
|
|
39
|
+
react_1.default.createElement(ide_core_browser_1.ComponentRenderer, { Component: extraComponents })));
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=index.view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.view.js","sourceRoot":"","sources":["../../src/browser/index.view.tsx"],"names":[],"mappings":";;;;AAAA,+DAA0B;AAC1B,qDAA2C;AAE3C,4DAAmD;AACnD,+CAAuC;AACvC,iEAAsI;AACtI,gCAA8B;AAEjB,QAAA,OAAO,GAAG,IAAA,0BAAQ,EAAC,GAAG,EAAE;IACnC,MAAM,iBAAiB,GAAsB,IAAA,gCAAa,EAAC,oCAAiB,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAA,gCAAa,EAAC,6BAAU,CAAC,CAAC;IAC5C,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAwB,EAAE,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAc,IAAA,gCAAa,EAAC,4BAAS,CAAC,CAAC;IACtD,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,kCAAkC;QAClC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;;YACzC,IAAI,MAAA,SAAS,CAAC,YAAY,CAAC,+BAAY,CAAC,KAAK,CAAC,0CAAE,OAAO,EAAE;gBACvD,MAAM,UAAU,GAA0B,EAAE,CAAC;gBAC7C,SAAS,CAAC,YAAY,CAAC,+BAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAClE,MAAM,IAAI,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;oBAC9D,IAAI,IAAI,EAAE;wBACR,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;4BAC/B,IAAI,CAAC,CAAC,SAAS,EAAE;gCACf,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAU,CAAC,CAAC;6BAC/B;wBACH,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,UAAU,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,uCAAK,EAAE,EAAC,aAAa,EAAC,SAAS,EAAC,aAAa;QAC3C,8BAAC,oBAAM,OAAG;QACV,8BAAC,uBAAO,OAAG;QACX,8BAAC,oCAAiB,IAAC,SAAS,EAAE,eAAe,GAAI,CAC7C,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IMessageService, AbstractMessageService } from '../common';
|
|
3
|
+
import { MessageType } from '@opensumi/ide-core-common';
|
|
4
|
+
export declare class MessageService extends AbstractMessageService implements IMessageService {
|
|
5
|
+
private preMessage;
|
|
6
|
+
private showTime;
|
|
7
|
+
protected static SAME_MESSAGE_DURATION: number;
|
|
8
|
+
protected static DURATION: {
|
|
9
|
+
[type: number]: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param rawMessage message
|
|
14
|
+
* @param type MessageType
|
|
15
|
+
* @param buttons buttons
|
|
16
|
+
* @param closable true | false
|
|
17
|
+
* @param from from extension
|
|
18
|
+
*/
|
|
19
|
+
open<T = string>(rawMessage: string | React.ReactNode, type: MessageType, buttons?: string[], closable?: boolean, from?: string): Promise<T | undefined>;
|
|
20
|
+
hide(): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=message.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.service.d.ts","sourceRoot":"","sources":["../../src/browser/message.service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAsB,MAAM,WAAW,CAAC;AAExF,OAAO,EAAE,WAAW,EAAkB,MAAM,2BAA2B,CAAC;AAExE,qBACa,cAAe,SAAQ,sBAAuB,YAAW,eAAe;IAGnF,OAAO,CAAC,UAAU,CAA2B;IAG7C,OAAO,CAAC,QAAQ,CAAa;IAG7B,SAAS,CAAC,MAAM,CAAC,qBAAqB,SAAQ;IAG9C,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAInD;IAEF;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,OAAc,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAiB9J,IAAI,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var MessageService_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.MessageService = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const di_1 = require("@opensumi/di");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
const ide_components_1 = require("@opensumi/ide-components");
|
|
9
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
10
|
+
let MessageService = MessageService_1 = class MessageService extends common_1.AbstractMessageService {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
// 当前组件展示的时间
|
|
14
|
+
this.showTime = 0;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param rawMessage message
|
|
19
|
+
* @param type MessageType
|
|
20
|
+
* @param buttons buttons
|
|
21
|
+
* @param closable true | false
|
|
22
|
+
* @param from from extension
|
|
23
|
+
*/
|
|
24
|
+
open(rawMessage, type, buttons, closable = true, from) {
|
|
25
|
+
let message = rawMessage;
|
|
26
|
+
// 如果两秒内提示信息相同,则直接返回上一个提示
|
|
27
|
+
if (Date.now() - this.showTime < MessageService_1.SAME_MESSAGE_DURATION && typeof message === 'string' && this.preMessage === message) {
|
|
28
|
+
return Promise.resolve(undefined);
|
|
29
|
+
}
|
|
30
|
+
this.preMessage = typeof message === 'string' && message;
|
|
31
|
+
this.showTime = Date.now();
|
|
32
|
+
if (typeof rawMessage === 'string' && rawMessage.length > common_1.MAX_MESSAGE_LENGTH) {
|
|
33
|
+
message = `${rawMessage.substr(0, common_1.MAX_MESSAGE_LENGTH)}...`;
|
|
34
|
+
}
|
|
35
|
+
const description = from && typeof from === 'string' ? `${(0, ide_core_common_1.localize)('component.message.origin')}: ${from}` : '';
|
|
36
|
+
const key = (0, ide_core_common_1.uuid)();
|
|
37
|
+
const promise = (0, ide_components_1.open)(message, type, closable, key, buttons, description);
|
|
38
|
+
return promise || Promise.resolve(undefined);
|
|
39
|
+
}
|
|
40
|
+
hide() {
|
|
41
|
+
ide_components_1.notification.destroy();
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
// 相同文案返回的间隔时间
|
|
45
|
+
MessageService.SAME_MESSAGE_DURATION = 3000;
|
|
46
|
+
// 参考 vscode message 组件消失的时间
|
|
47
|
+
MessageService.DURATION = {
|
|
48
|
+
[ide_core_common_1.MessageType.Info]: 15000,
|
|
49
|
+
[ide_core_common_1.MessageType.Warning]: 18000,
|
|
50
|
+
[ide_core_common_1.MessageType.Error]: 20000,
|
|
51
|
+
};
|
|
52
|
+
MessageService = MessageService_1 = (0, tslib_1.__decorate)([
|
|
53
|
+
(0, di_1.Injectable)()
|
|
54
|
+
], MessageService);
|
|
55
|
+
exports.MessageService = MessageService;
|
|
56
|
+
//# sourceMappingURL=message.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.service.js","sourceRoot":"","sources":["../../src/browser/message.service.tsx"],"names":[],"mappings":";;;;;AACA,qCAA0C;AAC1C,sCAAwF;AACxF,6DAA8D;AAC9D,+DAAwE;AAGxE,IAAa,cAAc,sBAA3B,MAAa,cAAe,SAAQ,+BAAsB;IAA1D;;QAKE,YAAY;QACJ,aAAQ,GAAW,CAAC,CAAC;IAwC/B,CAAC;IA5BC;;;;;;;OAOG;IACH,IAAI,CAAa,UAAoC,EAAE,IAAiB,EAAE,OAAkB,EAAE,WAAoB,IAAI,EAAE,IAAa;QACnI,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,yBAAyB;QACzB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,gBAAc,CAAC,qBAAqB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YACnI,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,2BAAkB,EAAE;YAC5E,OAAO,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,2BAAkB,CAAC,KAAK,CAAC;SAC5D;QACD,MAAM,WAAW,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAA,0BAAQ,EAAC,0BAA0B,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,MAAM,GAAG,GAAG,IAAA,sBAAI,GAAE,CAAC;QACnB,MAAM,OAAO,GAAG,IAAA,qBAAI,EAAI,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5E,OAAO,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI;QACF,6BAAY,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;CACF,CAAA;AAtCC,cAAc;AACG,oCAAqB,GAAG,IAAK,CAAA;AAE9C,4BAA4B;AACX,uBAAQ,GAA+B;IACtD,CAAC,6BAAW,CAAC,IAAI,CAAC,EAAE,KAAK;IACzB,CAAC,6BAAW,CAAC,OAAO,CAAC,EAAE,KAAK;IAC5B,CAAC,6BAAW,CAAC,KAAK,CAAC,EAAE,KAAK;CAC1B,CAAA;AAhBS,cAAc;IAD1B,IAAA,eAAU,GAAE;GACA,cAAc,CA8C1B;AA9CY,wCAAc"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MessageType, URI } from '@opensumi/ide-core-common';
|
|
3
|
+
export declare const IMessageService: unique symbol;
|
|
4
|
+
export interface IMessageService {
|
|
5
|
+
info(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
6
|
+
warning(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
7
|
+
error(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
8
|
+
open<T = string>(message: string | React.ReactNode, type: MessageType, buttons?: string[], closable?: boolean, from?: string): Promise<T | undefined>;
|
|
9
|
+
hide<T = string>(value?: T): void;
|
|
10
|
+
}
|
|
11
|
+
export interface Icon {
|
|
12
|
+
color: string;
|
|
13
|
+
className: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const MAX_MESSAGE_LENGTH = 1000;
|
|
16
|
+
export declare const IDialogService: unique symbol;
|
|
17
|
+
export interface IDialogService extends IMessageService {
|
|
18
|
+
closable?: boolean;
|
|
19
|
+
isVisible(): boolean;
|
|
20
|
+
getMessage(): string | React.ReactNode;
|
|
21
|
+
getIcon(): Icon | undefined;
|
|
22
|
+
getButtons(): string[];
|
|
23
|
+
getType(): MessageType | undefined;
|
|
24
|
+
reset(): void;
|
|
25
|
+
}
|
|
26
|
+
export declare abstract class AbstractMessageService implements IMessageService {
|
|
27
|
+
info(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
28
|
+
warning(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
29
|
+
error(message: string | React.ReactNode, buttons?: string[], closable?: boolean): Promise<string | undefined>;
|
|
30
|
+
abstract open<T = string>(message: string | React.ReactNode, type: MessageType, buttons?: any[], closable?: boolean): Promise<T | undefined>;
|
|
31
|
+
abstract hide<T = string>(value?: T): void;
|
|
32
|
+
}
|
|
33
|
+
export interface IWindowDialogService {
|
|
34
|
+
showOpenDialog(options?: IOpenDialogOptions): Promise<URI[] | undefined>;
|
|
35
|
+
showSaveDialog(options?: ISaveDialogOptions): Promise<URI | undefined>;
|
|
36
|
+
}
|
|
37
|
+
export declare const IWindowDialogService: unique symbol;
|
|
38
|
+
export interface IDialogOptions {
|
|
39
|
+
title?: string;
|
|
40
|
+
defaultUri?: URI;
|
|
41
|
+
filters?: {
|
|
42
|
+
[name: string]: string;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface ISaveDialogOptions extends IDialogOptions {
|
|
46
|
+
saveLabel?: string;
|
|
47
|
+
showNameInput?: boolean;
|
|
48
|
+
defaultFileName?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface IOpenDialogOptions extends IDialogOptions {
|
|
51
|
+
canSelectFiles?: boolean;
|
|
52
|
+
canSelectFolders?: boolean;
|
|
53
|
+
canSelectMany?: boolean;
|
|
54
|
+
openLabel?: string;
|
|
55
|
+
}
|
|
56
|
+
export declare namespace ISaveDialogOptions {
|
|
57
|
+
function is(option: any): boolean;
|
|
58
|
+
}
|
|
59
|
+
export declare namespace IOpenDialogOptions {
|
|
60
|
+
function is(option: any): boolean;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IOpenDialogOptions = exports.ISaveDialogOptions = exports.IWindowDialogService = exports.AbstractMessageService = exports.IDialogService = exports.MAX_MESSAGE_LENGTH = exports.IMessageService = void 0;
|
|
4
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
|
+
exports.IMessageService = Symbol('IMessageService');
|
|
6
|
+
exports.MAX_MESSAGE_LENGTH = 1000;
|
|
7
|
+
exports.IDialogService = Symbol('IDialogService');
|
|
8
|
+
class AbstractMessageService {
|
|
9
|
+
info(message, buttons, closable) {
|
|
10
|
+
return this.open(message, ide_core_common_1.MessageType.Info, buttons, closable);
|
|
11
|
+
}
|
|
12
|
+
warning(message, buttons, closable) {
|
|
13
|
+
return this.open(message, ide_core_common_1.MessageType.Warning, buttons, closable);
|
|
14
|
+
}
|
|
15
|
+
error(message, buttons, closable) {
|
|
16
|
+
return this.open(message, ide_core_common_1.MessageType.Error, buttons, closable);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.AbstractMessageService = AbstractMessageService;
|
|
20
|
+
exports.IWindowDialogService = Symbol('IWindowDialogService');
|
|
21
|
+
var ISaveDialogOptions;
|
|
22
|
+
(function (ISaveDialogOptions) {
|
|
23
|
+
function is(option) {
|
|
24
|
+
return 'saveLabel' in option || 'showNameInput' in option || 'defaultFileName' in option;
|
|
25
|
+
}
|
|
26
|
+
ISaveDialogOptions.is = is;
|
|
27
|
+
})(ISaveDialogOptions = exports.ISaveDialogOptions || (exports.ISaveDialogOptions = {}));
|
|
28
|
+
var IOpenDialogOptions;
|
|
29
|
+
(function (IOpenDialogOptions) {
|
|
30
|
+
function is(option) {
|
|
31
|
+
return 'canSelectFiles' in option
|
|
32
|
+
|| 'canSelectFolders' in option
|
|
33
|
+
|| 'canSelectMany' in option
|
|
34
|
+
|| 'openLabel' in option;
|
|
35
|
+
}
|
|
36
|
+
IOpenDialogOptions.is = is;
|
|
37
|
+
})(IOpenDialogOptions = exports.IOpenDialogOptions || (exports.IOpenDialogOptions = {}));
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AACA,+DAA6D;AAEhD,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAe5C,QAAA,kBAAkB,GAAG,IAAI,CAAC;AAE1B,QAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAWvD,MAAsB,sBAAsB;IAC1C,IAAI,CAAC,OAAiC,EAAE,OAAkB,EAAE,QAAkB;QAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,6BAAW,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,OAAiC,EAAE,OAAkB,EAAE,QAAkB;QAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,6BAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAiC,EAAE,OAAkB,EAAE,QAAkB;QAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,6BAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;CAGF;AAdD,wDAcC;AAOY,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAuBnE,IAAiB,kBAAkB,CAIlC;AAJD,WAAiB,kBAAkB;IACjC,SAAgB,EAAE,CAAC,MAAM;QACvB,OAAO,WAAW,IAAI,MAAM,IAAI,eAAe,IAAI,MAAM,IAAI,iBAAiB,IAAI,MAAM,CAAC;IAC3F,CAAC;IAFe,qBAAE,KAEjB,CAAA;AACH,CAAC,EAJgB,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAIlC;AAED,IAAiB,kBAAkB,CAOlC;AAPD,WAAiB,kBAAkB;IACjC,SAAgB,EAAE,CAAC,MAAM;QACvB,OAAO,gBAAgB,IAAI,MAAM;eAC5B,kBAAkB,IAAI,MAAM;eAC5B,eAAe,IAAI,MAAM;eACzB,WAAW,IAAI,MAAM,CAAC;IAC7B,CAAC;IALe,qBAAE,KAKjB,CAAA;AACH,CAAC,EAPgB,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAOlC"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
package/lib/index.js
ADDED
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@opensumi/ide-overlay",
|
|
3
|
+
"version": "2.12.1-next-079c1930",
|
|
4
|
+
"files": [
|
|
5
|
+
"lib"
|
|
6
|
+
],
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"typings": "lib/index.d.ts",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"prepublishOnly": "npm run build",
|
|
12
|
+
"build": "tsc --build ../../configs/ts/references/tsconfig.overlay.json"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git@github.com:opensumi/core.git"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@opensumi/ide-core-common": "2.12.1-next-079c1930",
|
|
20
|
+
"@opensumi/ide-core-node": "2.12.1-next-079c1930"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@opensumi/ide-core-browser": "2.12.1-next-079c1930",
|
|
24
|
+
"@opensumi/ide-dev-tool": "^1.3.1",
|
|
25
|
+
"@opensumi/ide-components": "2.12.1-next-079c1930"
|
|
26
|
+
}
|
|
27
|
+
}
|