|
@@ -49931,29 +49931,30 @@ var BABYLON;
|
|
|
eventDrop.preventDefault();
|
|
|
this.loadFiles(eventDrop);
|
|
|
};
|
|
|
- FilesInput.prototype._handleFolderDrop = function (entry, files, callback) {
|
|
|
- var reader = entry.createReader(), relativePath = entry.fullPath.replace(/^\//, "").replace(/(.+?)\/?$/, "$1/");
|
|
|
- reader.readEntries(function (fileEntries) {
|
|
|
- var remaining = fileEntries.length;
|
|
|
- for (var _i = 0, fileEntries_1 = fileEntries; _i < fileEntries_1.length; _i++) {
|
|
|
- var fileEntry = fileEntries_1[_i];
|
|
|
- if (fileEntry.isFile) {
|
|
|
- fileEntry.file(function (file) {
|
|
|
+ FilesInput.prototype._traverseFolder = function (folder, files, remaining, callback) {
|
|
|
+ var _this = this;
|
|
|
+ var reader = folder.createReader();
|
|
|
+ var relativePath = folder.fullPath.replace(/^\//, "").replace(/(.+?)\/?$/, "$1/");
|
|
|
+ reader.readEntries(function (entries) {
|
|
|
+ remaining.count += entries.length;
|
|
|
+ for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
|
+ var entry = entries_1[_i];
|
|
|
+ if (entry.isFile) {
|
|
|
+ entry.file(function (file) {
|
|
|
file.correctName = relativePath + file.name;
|
|
|
files.push(file);
|
|
|
- remaining--;
|
|
|
- if (remaining === 0) {
|
|
|
+ if (--remaining.count === 0) {
|
|
|
callback();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- else {
|
|
|
- remaining--;
|
|
|
- if (remaining === 0) {
|
|
|
- callback();
|
|
|
- }
|
|
|
+ else if (entry.isDirectory) {
|
|
|
+ _this._traverseFolder(entry, files, remaining, callback);
|
|
|
}
|
|
|
}
|
|
|
+ if (--remaining.count) {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
});
|
|
|
};
|
|
|
FilesInput.prototype._processFiles = function (files) {
|
|
@@ -50027,15 +50028,11 @@ var BABYLON;
|
|
|
this._processFiles(files_1);
|
|
|
}
|
|
|
else {
|
|
|
- var remaining = folders.length;
|
|
|
- // Extract folder content
|
|
|
+ var remaining = { count: folders.length };
|
|
|
for (var _i = 0, folders_1 = folders; _i < folders_1.length; _i++) {
|
|
|
var folder = folders_1[_i];
|
|
|
- this._handleFolderDrop(folder, files_1, function () {
|
|
|
- remaining--;
|
|
|
- if (remaining === 0) {
|
|
|
- _this._processFiles(files_1);
|
|
|
- }
|
|
|
+ this._traverseFolder(folder, files_1, remaining, function () {
|
|
|
+ _this._processFiles(files_1);
|
|
|
});
|
|
|
}
|
|
|
}
|