@theia/filesystem 1.43.1 → 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/electron-browser/file-dialog/electron-file-dialog-module.js +2 -2
- package/lib/electron-browser/file-dialog/electron-file-dialog-module.js.map +1 -1
- package/lib/electron-browser/file-dialog/electron-file-dialog-service.d.ts +1 -0
- package/lib/electron-browser/file-dialog/electron-file-dialog-service.d.ts.map +1 -1
- package/lib/electron-browser/file-dialog/electron-file-dialog-service.js +34 -25
- package/lib/electron-browser/file-dialog/electron-file-dialog-service.js.map +1 -1
- package/lib/electron-browser/preload.d.ts.map +1 -1
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/node/nsfw-watcher/nsfw-filesystem-service.d.ts +1 -1
- package/lib/node/nsfw-watcher/nsfw-filesystem-service.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/electron-browser/file-dialog/electron-file-dialog-module.ts +1 -1
- package/src/electron-browser/file-dialog/electron-file-dialog-service.ts +35 -27
- package/src/electron-browser/preload.ts +1 -0
- package/src/node/nsfw-watcher/nsfw-filesystem-service.ts +1 -1
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
19
|
-
const file_dialog_service_1 = require("../../browser/file-dialog/file-dialog-service");
|
|
20
19
|
const electron_file_dialog_service_1 = require("./electron-file-dialog-service");
|
|
20
|
+
const browser_1 = require("../../browser");
|
|
21
21
|
exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
22
22
|
bind(electron_file_dialog_service_1.ElectronFileDialogService).toSelf().inSingletonScope();
|
|
23
|
-
rebind(
|
|
23
|
+
rebind(browser_1.FileDialogService).toService(electron_file_dialog_service_1.ElectronFileDialogService);
|
|
24
24
|
});
|
|
25
25
|
//# sourceMappingURL=electron-file-dialog-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electron-file-dialog-module.js","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,4DAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"electron-file-dialog-module.js","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,4DAA+D;AAC/D,iFAA2E;AAC3E,2CAAkD;AAElD,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IACnE,IAAI,CAAC,wDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,MAAM,CAAC,2BAAiB,CAAC,CAAC,SAAS,CAAC,wDAAyB,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { MessageService } from '@theia/core/lib/common/message-service';
|
|
|
4
4
|
import { FileStat } from '../../common/files';
|
|
5
5
|
import { DefaultFileDialogService, OpenFileDialogProps, SaveFileDialogProps } from '../../browser/file-dialog';
|
|
6
6
|
import { OpenDialogOptions, SaveDialogOptions } from '../../electron-common/electron-api';
|
|
7
|
+
import '@theia/core/lib/electron-common/electron-api';
|
|
7
8
|
export declare class ElectronFileDialogService extends DefaultFileDialogService {
|
|
8
9
|
protected readonly messageService: MessageService;
|
|
9
10
|
showOpenDialog(props: OpenFileDialogProps & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electron-file-dialog-service.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-service.ts"],"names":[],"mappings":"AAiBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAS/G,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE1F,qBACa,yBAA0B,SAAQ,wBAAwB;IAE3C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAE3D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG;QAAE,aAAa,EAAE,IAAI,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7H,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"electron-file-dialog-service.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-service.ts"],"names":[],"mappings":"AAiBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAS/G,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE1F,OAAO,8CAA8C,CAAC;AAEtD,qBACa,yBAA0B,SAAQ,wBAAwB;IAE3C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAE3D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG;QAAE,aAAa,EAAE,IAAI,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7H,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAoBvF,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;cAwBtF,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;cAUrD,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAchE,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,GAAG,iBAAiB;IA8BtF,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,GAAG,iBAAiB;CAyBzF"}
|
|
@@ -37,37 +37,44 @@ const file_dialog_1 = require("../../browser/file-dialog");
|
|
|
37
37
|
//
|
|
38
38
|
// eslint-disable-next-line @theia/runtime-import-check
|
|
39
39
|
const file_uri_1 = require("@theia/core/lib/node/file-uri");
|
|
40
|
+
require("@theia/core/lib/electron-common/electron-api");
|
|
40
41
|
let ElectronFileDialogService = class ElectronFileDialogService extends file_dialog_1.DefaultFileDialogService {
|
|
41
42
|
async showOpenDialog(props, folder) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
if (window.electronTheiaCore.useNativeElements) {
|
|
44
|
+
const rootNode = await this.getRootNode(folder);
|
|
45
|
+
if (rootNode) {
|
|
46
|
+
const filePaths = await window.electronTheiaFilesystem.showOpenDialog(this.toOpenDialogOptions(rootNode.uri, props));
|
|
47
|
+
if (!filePaths || filePaths.length === 0) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const uris = filePaths.map(path => file_uri_1.FileUri.create(path));
|
|
51
|
+
const canAccess = await this.canRead(uris);
|
|
52
|
+
const result = canAccess ? uris.length === 1 ? uris[0] : uris : undefined;
|
|
53
|
+
return result;
|
|
47
54
|
}
|
|
48
|
-
|
|
49
|
-
const canAccess = await this.canRead(uris);
|
|
50
|
-
const result = canAccess ? uris.length === 1 ? uris[0] : uris : undefined;
|
|
51
|
-
return result;
|
|
55
|
+
return undefined;
|
|
52
56
|
}
|
|
53
|
-
return
|
|
57
|
+
return super.showOpenDialog(props, folder);
|
|
54
58
|
}
|
|
55
59
|
async showSaveDialog(props, folder) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
if (window.electronTheiaCore.useNativeElements) {
|
|
61
|
+
const rootNode = await this.getRootNode(folder);
|
|
62
|
+
if (rootNode) {
|
|
63
|
+
const filePath = await window.electronTheiaFilesystem.showSaveDialog(this.toSaveDialogOptions(rootNode.uri, props));
|
|
64
|
+
if (!filePath) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
const uri = file_uri_1.FileUri.create(filePath);
|
|
68
|
+
const exists = await this.fileService.exists(uri);
|
|
69
|
+
if (!exists) {
|
|
70
|
+
return uri;
|
|
71
|
+
}
|
|
72
|
+
const canWrite = await this.canReadWrite(uri);
|
|
73
|
+
return canWrite ? uri : undefined;
|
|
66
74
|
}
|
|
67
|
-
|
|
68
|
-
return canWrite ? uri : undefined;
|
|
75
|
+
return undefined;
|
|
69
76
|
}
|
|
70
|
-
return
|
|
77
|
+
return super.showSaveDialog(props, folder);
|
|
71
78
|
}
|
|
72
79
|
async canReadWrite(uris) {
|
|
73
80
|
for (const uri of Array.isArray(uris) ? uris : [uris]) {
|
|
@@ -92,13 +99,14 @@ let ElectronFileDialogService = class ElectronFileDialogService extends file_dia
|
|
|
92
99
|
return unreadableResourcePaths.length === 0;
|
|
93
100
|
}
|
|
94
101
|
toOpenDialogOptions(uri, props) {
|
|
102
|
+
var _a;
|
|
95
103
|
const result = {
|
|
96
104
|
path: file_uri_1.FileUri.fsPath(uri)
|
|
97
105
|
};
|
|
98
106
|
result.title = props.title;
|
|
99
107
|
result.buttonLabel = props.openLabel;
|
|
100
108
|
result.maxWidth = props.maxWidth;
|
|
101
|
-
result.modal = props.modal;
|
|
109
|
+
result.modal = (_a = props.modal) !== null && _a !== void 0 ? _a : true;
|
|
102
110
|
result.openFiles = props.canSelectFiles;
|
|
103
111
|
result.openFolders = props.canSelectFolders;
|
|
104
112
|
result.selectMany = props.canSelectMany;
|
|
@@ -117,6 +125,7 @@ let ElectronFileDialogService = class ElectronFileDialogService extends file_dia
|
|
|
117
125
|
return result;
|
|
118
126
|
}
|
|
119
127
|
toSaveDialogOptions(uri, props) {
|
|
128
|
+
var _a;
|
|
120
129
|
if (props.inputValue) {
|
|
121
130
|
uri = uri.resolve(props.inputValue);
|
|
122
131
|
}
|
|
@@ -126,7 +135,7 @@ let ElectronFileDialogService = class ElectronFileDialogService extends file_dia
|
|
|
126
135
|
result.title = props.title;
|
|
127
136
|
result.buttonLabel = props.saveLabel;
|
|
128
137
|
result.maxWidth = props.maxWidth;
|
|
129
|
-
result.modal = props.modal;
|
|
138
|
+
result.modal = (_a = props.modal) !== null && _a !== void 0 ? _a : true;
|
|
130
139
|
if (props.filters) {
|
|
131
140
|
result.filters = [];
|
|
132
141
|
const filters = Object.entries(props.filters);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electron-file-dialog-service.js","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;;;;;;;;;AAEhF,4DAAkE;AAGlE,4EAAwE;AAExE,wDAAqD;AACrD,2DAA+G;AAC/G,EAAE;AACF,6FAA6F;AAC7F,gGAAgG;AAChG,8FAA8F;AAC9F,YAAY;AACZ,EAAE;AACF,uDAAuD;AACvD,4DAAwD;
|
|
1
|
+
{"version":3,"file":"electron-file-dialog-service.js","sourceRoot":"","sources":["../../../src/electron-browser/file-dialog/electron-file-dialog-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../src/electron-browser/preload.ts"],"names":[],"mappings":"AAyBA,wBAAgB,OAAO,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../src/electron-browser/preload.ts"],"names":[],"mappings":"AAyBA,wBAAgB,OAAO,IAAI,IAAI,CAK9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/electron-browser/preload.ts"],"names":[],"mappings":";;;AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,kEAAiJ;AAEjJ,6DAA6D;AAC7D,mEAAkF;AAElF,MAAM,GAAG,GAAuB;IAC5B,cAAc,EAAE,CAAC,OAA0B,EAAE,EAAE,CAAC,sBAAW,CAAC,MAAM,CAAC,gCAAiB,EAAE,OAAO,CAAC;IAC9F,cAAc,EAAE,CAAC,OAA0B,EAAE,EAAE,CAAC,sBAAW,CAAC,MAAM,CAAC,gCAAiB,EAAE,OAAO,CAAC;CACjG,CAAC;AAEF,SAAgB,OAAO;IACnB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,wBAAa,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/electron-browser/preload.ts"],"names":[],"mappings":";;;AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,kEAAiJ;AAEjJ,6DAA6D;AAC7D,mEAAkF;AAElF,MAAM,GAAG,GAAuB;IAC5B,cAAc,EAAE,CAAC,OAA0B,EAAE,EAAE,CAAC,sBAAW,CAAC,MAAM,CAAC,gCAAiB,EAAE,OAAO,CAAC;IAC9F,cAAc,EAAE,CAAC,OAA0B,EAAE,EAAE,CAAC,sBAAW,CAAC,MAAM,CAAC,gCAAiB,EAAE,OAAO,CAAC;CACjG,CAAC;AAEF,SAAgB,OAAO;IACnB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,wBAAa,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AAEpE,CAAC;AALD,0BAKC"}
|
|
@@ -52,7 +52,7 @@ export declare class NsfwWatcher {
|
|
|
52
52
|
/**
|
|
53
53
|
* When the ref count hits zero, we schedule this watch handle to be disposed.
|
|
54
54
|
*/
|
|
55
|
-
protected deferredDisposalTimer: NodeJS.
|
|
55
|
+
protected deferredDisposalTimer: NodeJS.Timeout | undefined;
|
|
56
56
|
/**
|
|
57
57
|
* This deferred only rejects with `WatcherDisposal` and never resolves.
|
|
58
58
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nsfw-filesystem-service.d.ts","sourceRoot":"","sources":["../../../src/node/nsfw-watcher/nsfw-filesystem-service.ts"],"names":[],"mappings":";AAgBA,OAAO,IAAI,GAAG,QAAQ,yBAAyB,CAAC,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAa,MAAM,WAAW,CAAC;AAElD,OAAO,EACH,cAAc,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,YAAY,EACzF,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAW,MAAM,qCAAqC,CAAC;AAExE,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,UAAU,EAAE,CAAA;CACxB;AAED,eAAO,MAAM,kCAAkC,eAA+C,CAAC;AAC/F,MAAM,WAAW,kCAAkC;IAC/C,OAAO,EAAE,OAAO,CAAC;IAEjB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAEhD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD;;;;;;;;;GASG;AACH,qBAAa,WAAW;IA0DhB,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,cAAc,EAAE,kBAAkB;IAC3C,+BAA+B;IAC/B,SAAS,CAAC,QAAQ,CAAC,gCAAgC,EAAE,kCAAkC;IACvF,uCAAuC;IACvC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,8BAA8B;IAC1E,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,CAAC,uBAAuB;IAjE9C,SAAS,CAAC,MAAM,CAAC,eAAe,SAAK;IAErC,SAAS,CAAC,QAAQ,UAAS;IAE3B;;OAEG;IACH,SAAS,CAAC,OAAO,SAAiC;IAElD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAEtC;;OAEG;IACH,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"nsfw-filesystem-service.d.ts","sourceRoot":"","sources":["../../../src/node/nsfw-watcher/nsfw-filesystem-service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/filesystem",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.44.0",
|
|
4
4
|
"description": "Theia - FileSystem Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.
|
|
6
|
+
"@theia/core": "1.44.0",
|
|
7
7
|
"@types/body-parser": "^1.17.0",
|
|
8
8
|
"@types/multer": "^1.4.7",
|
|
9
9
|
"@types/rimraf": "^2.0.2",
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
"watch": "theiaext watch"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
|
-
"@theia/ext-scripts": "1.
|
|
73
|
+
"@theia/ext-scripts": "1.44.0"
|
|
74
74
|
},
|
|
75
75
|
"nyc": {
|
|
76
76
|
"extends": "../../configs/nyc.json"
|
|
77
77
|
},
|
|
78
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "46349875c7ff0e58c3c77ffe4eaa53ac74fa97a5"
|
|
79
79
|
}
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { ContainerModule } from '@theia/core/shared/inversify';
|
|
18
|
-
import { FileDialogService } from '../../browser/file-dialog/file-dialog-service';
|
|
19
18
|
import { ElectronFileDialogService } from './electron-file-dialog-service';
|
|
19
|
+
import { FileDialogService } from '../../browser';
|
|
20
20
|
|
|
21
21
|
export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
22
22
|
bind(ElectronFileDialogService).toSelf().inSingletonScope();
|
|
@@ -31,6 +31,8 @@ import { DefaultFileDialogService, OpenFileDialogProps, SaveFileDialogProps } fr
|
|
|
31
31
|
import { FileUri } from '@theia/core/lib/node/file-uri';
|
|
32
32
|
import { OpenDialogOptions, SaveDialogOptions } from '../../electron-common/electron-api';
|
|
33
33
|
|
|
34
|
+
import '@theia/core/lib/electron-common/electron-api';
|
|
35
|
+
|
|
34
36
|
@injectable()
|
|
35
37
|
export class ElectronFileDialogService extends DefaultFileDialogService {
|
|
36
38
|
|
|
@@ -39,40 +41,46 @@ export class ElectronFileDialogService extends DefaultFileDialogService {
|
|
|
39
41
|
override async showOpenDialog(props: OpenFileDialogProps & { canSelectMany: true }, folder?: FileStat): Promise<MaybeArray<URI> | undefined>;
|
|
40
42
|
override async showOpenDialog(props: OpenFileDialogProps, folder?: FileStat): Promise<URI | undefined>;
|
|
41
43
|
override async showOpenDialog(props: OpenFileDialogProps, folder?: FileStat): Promise<MaybeArray<URI> | undefined> {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
if (window.electronTheiaCore.useNativeElements) {
|
|
45
|
+
const rootNode = await this.getRootNode(folder);
|
|
46
|
+
if (rootNode) {
|
|
47
|
+
const filePaths = await window.electronTheiaFilesystem.showOpenDialog(this.toOpenDialogOptions(rootNode.uri, props));
|
|
48
|
+
if (!filePaths || filePaths.length === 0) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
48
51
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
const uris = filePaths.map(path => FileUri.create(path));
|
|
53
|
+
const canAccess = await this.canRead(uris);
|
|
54
|
+
const result = canAccess ? uris.length === 1 ? uris[0] : uris : undefined;
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
53
58
|
}
|
|
54
|
-
return
|
|
59
|
+
return super.showOpenDialog(props, folder);
|
|
55
60
|
}
|
|
56
61
|
|
|
57
62
|
override async showSaveDialog(props: SaveFileDialogProps, folder?: FileStat): Promise<URI | undefined> {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
63
|
+
if (window.electronTheiaCore.useNativeElements) {
|
|
64
|
+
const rootNode = await this.getRootNode(folder);
|
|
65
|
+
if (rootNode) {
|
|
66
|
+
const filePath = await window.electronTheiaFilesystem.showSaveDialog(this.toSaveDialogOptions(rootNode.uri, props));
|
|
61
67
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
if (!filePath) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
65
71
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
const uri = FileUri.create(filePath);
|
|
73
|
+
const exists = await this.fileService.exists(uri);
|
|
74
|
+
if (!exists) {
|
|
75
|
+
return uri;
|
|
76
|
+
}
|
|
71
77
|
|
|
72
|
-
|
|
73
|
-
|
|
78
|
+
const canWrite = await this.canReadWrite(uri);
|
|
79
|
+
return canWrite ? uri : undefined;
|
|
80
|
+
}
|
|
81
|
+
return undefined;
|
|
74
82
|
}
|
|
75
|
-
return
|
|
83
|
+
return super.showSaveDialog(props, folder);
|
|
76
84
|
}
|
|
77
85
|
|
|
78
86
|
protected async canReadWrite(uris: MaybeArray<URI>): Promise<boolean> {
|
|
@@ -107,7 +115,7 @@ export class ElectronFileDialogService extends DefaultFileDialogService {
|
|
|
107
115
|
result.title = props.title;
|
|
108
116
|
result.buttonLabel = props.openLabel;
|
|
109
117
|
result.maxWidth = props.maxWidth;
|
|
110
|
-
result.modal = props.modal;
|
|
118
|
+
result.modal = props.modal ?? true;
|
|
111
119
|
result.openFiles = props.canSelectFiles;
|
|
112
120
|
result.openFolders = props.canSelectFolders;
|
|
113
121
|
result.selectMany = props.canSelectMany;
|
|
@@ -141,7 +149,7 @@ export class ElectronFileDialogService extends DefaultFileDialogService {
|
|
|
141
149
|
result.title = props.title;
|
|
142
150
|
result.buttonLabel = props.saveLabel;
|
|
143
151
|
result.maxWidth = props.maxWidth;
|
|
144
|
-
result.modal = props.modal;
|
|
152
|
+
result.modal = props.modal ?? true;
|
|
145
153
|
|
|
146
154
|
if (props.filters) {
|
|
147
155
|
result.filters = [];
|
|
@@ -73,7 +73,7 @@ export class NsfwWatcher {
|
|
|
73
73
|
/**
|
|
74
74
|
* When the ref count hits zero, we schedule this watch handle to be disposed.
|
|
75
75
|
*/
|
|
76
|
-
protected deferredDisposalTimer: NodeJS.
|
|
76
|
+
protected deferredDisposalTimer: NodeJS.Timeout | undefined;
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* This deferred only rejects with `WatcherDisposal` and never resolves.
|