rc-upload
Advanced tools
Comparing version 4.6.0 to 4.7.0
@@ -19,3 +19,3 @@ import React, { Component } from 'react'; | ||
onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => void; | ||
onFileDrop: (e: React.DragEvent<HTMLDivElement>) => void; | ||
onFileDrop: (e: React.DragEvent<HTMLDivElement>) => Promise<void>; | ||
componentDidMount(): void; | ||
@@ -22,0 +22,0 @@ componentWillUnmount(): void; |
import _extends from "@babel/runtime/helpers/esm/extends"; | ||
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; | ||
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; | ||
import _typeof from "@babel/runtime/helpers/esm/typeof"; | ||
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime"; | ||
import _typeof from "@babel/runtime/helpers/esm/typeof"; | ||
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; | ||
@@ -72,22 +72,47 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray"; | ||
}); | ||
_defineProperty(_assertThisInitialized(_this), "onFileDrop", function (e) { | ||
var multiple = _this.props.multiple; | ||
e.preventDefault(); | ||
if (e.type === 'dragover') { | ||
return; | ||
} | ||
if (_this.props.directory) { | ||
traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), _this.uploadFiles, function (_file) { | ||
return attrAccept(_file, _this.props.accept); | ||
}); | ||
} else { | ||
var files = _toConsumableArray(e.dataTransfer.files).filter(function (file) { | ||
return attrAccept(file, _this.props.accept); | ||
}); | ||
if (multiple === false) { | ||
files = files.slice(0, 1); | ||
} | ||
_this.uploadFiles(files); | ||
} | ||
}); | ||
_defineProperty(_assertThisInitialized(_this), "onFileDrop", /*#__PURE__*/function () { | ||
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) { | ||
var multiple, files, _files; | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
multiple = _this.props.multiple; | ||
e.preventDefault(); | ||
if (!(e.type === 'dragover')) { | ||
_context.next = 4; | ||
break; | ||
} | ||
return _context.abrupt("return"); | ||
case 4: | ||
if (!_this.props.directory) { | ||
_context.next = 11; | ||
break; | ||
} | ||
_context.next = 7; | ||
return traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), function (_file) { | ||
return attrAccept(_file, _this.props.accept); | ||
}); | ||
case 7: | ||
files = _context.sent; | ||
_this.uploadFiles(files); | ||
_context.next = 14; | ||
break; | ||
case 11: | ||
_files = _toConsumableArray(e.dataTransfer.files).filter(function (file) { | ||
return attrAccept(file, _this.props.accept); | ||
}); | ||
if (multiple === false) { | ||
_files = _files.slice(0, 1); | ||
} | ||
_this.uploadFiles(_files); | ||
case 14: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
return function (_x) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}()); | ||
_defineProperty(_assertThisInitialized(_this), "uploadFiles", function (files) { | ||
@@ -104,5 +129,5 @@ var originFiles = _toConsumableArray(files); | ||
var onBatchStart = _this.props.onBatchStart; | ||
onBatchStart === null || onBatchStart === void 0 || onBatchStart(fileList.map(function (_ref) { | ||
var origin = _ref.origin, | ||
parsedFile = _ref.parsedFile; | ||
onBatchStart === null || onBatchStart === void 0 || onBatchStart(fileList.map(function (_ref2) { | ||
var origin = _ref2.origin, | ||
parsedFile = _ref2.parsedFile; | ||
return { | ||
@@ -124,6 +149,6 @@ file: origin, | ||
_defineProperty(_assertThisInitialized(_this), "processFile", /*#__PURE__*/function () { | ||
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file, fileList) { | ||
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(file, fileList) { | ||
var beforeUpload, transformedFile, action, mergedAction, data, mergedData, parsedData, parsedFile, mergedParsedFile; | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
@@ -133,15 +158,15 @@ beforeUpload = _this.props.beforeUpload; | ||
if (!beforeUpload) { | ||
_context.next = 14; | ||
_context2.next = 14; | ||
break; | ||
} | ||
_context.prev = 3; | ||
_context.next = 6; | ||
_context2.prev = 3; | ||
_context2.next = 6; | ||
return beforeUpload(file, fileList); | ||
case 6: | ||
transformedFile = _context.sent; | ||
_context.next = 12; | ||
transformedFile = _context2.sent; | ||
_context2.next = 12; | ||
break; | ||
case 9: | ||
_context.prev = 9; | ||
_context.t0 = _context["catch"](3); | ||
_context2.prev = 9; | ||
_context2.t0 = _context2["catch"](3); | ||
// Rejection will also trade as false | ||
@@ -151,6 +176,6 @@ transformedFile = false; | ||
if (!(transformedFile === false)) { | ||
_context.next = 14; | ||
_context2.next = 14; | ||
break; | ||
} | ||
return _context.abrupt("return", { | ||
return _context2.abrupt("return", { | ||
origin: file, | ||
@@ -165,10 +190,10 @@ parsedFile: null, | ||
if (!(typeof action === 'function')) { | ||
_context.next = 21; | ||
_context2.next = 21; | ||
break; | ||
} | ||
_context.next = 18; | ||
_context2.next = 18; | ||
return action(file); | ||
case 18: | ||
mergedAction = _context.sent; | ||
_context.next = 22; | ||
mergedAction = _context2.sent; | ||
_context2.next = 22; | ||
break; | ||
@@ -181,10 +206,10 @@ case 21: | ||
if (!(typeof data === 'function')) { | ||
_context.next = 29; | ||
_context2.next = 29; | ||
break; | ||
} | ||
_context.next = 26; | ||
_context2.next = 26; | ||
return data(file); | ||
case 26: | ||
mergedData = _context.sent; | ||
_context.next = 30; | ||
mergedData = _context2.sent; | ||
_context2.next = 30; | ||
break; | ||
@@ -207,3 +232,3 @@ case 29: | ||
mergedParsedFile.uid = file.uid; | ||
return _context.abrupt("return", { | ||
return _context2.abrupt("return", { | ||
origin: file, | ||
@@ -216,8 +241,8 @@ data: mergedData, | ||
case "end": | ||
return _context.stop(); | ||
return _context2.stop(); | ||
} | ||
}, _callee, null, [[3, 9]]); | ||
}, _callee2, null, [[3, 9]]); | ||
})); | ||
return function (_x, _x2) { | ||
return _ref2.apply(this, arguments); | ||
return function (_x2, _x3) { | ||
return _ref3.apply(this, arguments); | ||
}; | ||
@@ -243,8 +268,8 @@ }()); | ||
key: "post", | ||
value: function post(_ref3) { | ||
value: function post(_ref4) { | ||
var _this2 = this; | ||
var data = _ref3.data, | ||
origin = _ref3.origin, | ||
action = _ref3.action, | ||
parsedFile = _ref3.parsedFile; | ||
var data = _ref4.data, | ||
origin = _ref4.origin, | ||
action = _ref4.action, | ||
parsedFile = _ref4.parsedFile; | ||
if (!this._isMounted) { | ||
@@ -251,0 +276,0 @@ return; |
@@ -13,3 +13,3 @@ import type { RcFile } from './interface'; | ||
} | ||
declare const traverseFileTree: (files: InternalDataTransferItem[], callback: any, isAccepted: any) => void; | ||
declare const traverseFileTree: (files: InternalDataTransferItem[], isAccepted: any) => Promise<any[]>; | ||
export default traverseFileTree; |
@@ -0,65 +1,175 @@ | ||
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime"; | ||
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray"; | ||
var traverseFileTree = function traverseFileTree(files, callback, isAccepted) { | ||
var flattenFileList = []; | ||
var progressFileList = []; | ||
files.forEach(function (file) { | ||
return progressFileList.push(file.webkitGetAsEntry()); | ||
}); | ||
function loopFiles(item) { | ||
var dirReader = item.createReader(); | ||
function sequence() { | ||
dirReader.readEntries(function (entries) { | ||
var entryList = Array.prototype.slice.apply(entries); | ||
progressFileList.push.apply(progressFileList, _toConsumableArray(entryList)); | ||
// Check if all the file has been viewed | ||
var isFinished = !entryList.length; | ||
if (!isFinished) { | ||
sequence(); | ||
} | ||
}); | ||
} | ||
sequence(); | ||
} | ||
// eslint-disable-next-line @typescript-eslint/naming-convention | ||
var _traverseFileTree = function _traverseFileTree(item, path) { | ||
if (!item) { | ||
return; | ||
} | ||
// eslint-disable-next-line no-param-reassign | ||
item.path = path || ''; | ||
if (item.isFile) { | ||
item.file(function (file) { | ||
if (isAccepted(file)) { | ||
// https://github.com/ant-design/ant-design/issues/16426 | ||
if (item.fullPath && !file.webkitRelativePath) { | ||
Object.defineProperties(file, { | ||
webkitRelativePath: { | ||
writable: true | ||
} | ||
}); | ||
// eslint-disable-next-line no-param-reassign | ||
file.webkitRelativePath = item.fullPath.replace(/^\//, ''); | ||
Object.defineProperties(file, { | ||
webkitRelativePath: { | ||
writable: false | ||
} | ||
}); | ||
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; | ||
// https://github.com/ant-design/ant-design/issues/50080 | ||
var traverseFileTree = /*#__PURE__*/function () { | ||
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(files, isAccepted) { | ||
var flattenFileList, progressFileList, readDirectory, _readDirectory, readFile, _readFile, _traverseFileTree, wipIndex; | ||
return _regeneratorRuntime().wrap(function _callee4$(_context4) { | ||
while (1) switch (_context4.prev = _context4.next) { | ||
case 0: | ||
_readFile = function _readFile3() { | ||
_readFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(item) { | ||
return _regeneratorRuntime().wrap(function _callee3$(_context3) { | ||
while (1) switch (_context3.prev = _context3.next) { | ||
case 0: | ||
return _context3.abrupt("return", new Promise(function (reslove) { | ||
item.file(function (file) { | ||
if (isAccepted(file)) { | ||
// https://github.com/ant-design/ant-design/issues/16426 | ||
if (item.fullPath && !file.webkitRelativePath) { | ||
Object.defineProperties(file, { | ||
webkitRelativePath: { | ||
writable: true | ||
} | ||
}); | ||
// eslint-disable-next-line no-param-reassign | ||
file.webkitRelativePath = item.fullPath.replace(/^\//, ''); | ||
Object.defineProperties(file, { | ||
webkitRelativePath: { | ||
writable: false | ||
} | ||
}); | ||
} | ||
reslove(file); | ||
} else { | ||
reslove(null); | ||
} | ||
}); | ||
})); | ||
case 1: | ||
case "end": | ||
return _context3.stop(); | ||
} | ||
}, _callee3); | ||
})); | ||
return _readFile.apply(this, arguments); | ||
}; | ||
readFile = function _readFile2(_x4) { | ||
return _readFile.apply(this, arguments); | ||
}; | ||
_readDirectory = function _readDirectory3() { | ||
_readDirectory = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(directory) { | ||
var dirReader, entries, results, n, i; | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
dirReader = directory.createReader(); | ||
entries = []; | ||
case 2: | ||
if (!true) { | ||
_context2.next = 12; | ||
break; | ||
} | ||
_context2.next = 5; | ||
return new Promise(function (resolve) { | ||
dirReader.readEntries(resolve, function () { | ||
return resolve([]); | ||
}); | ||
}); | ||
case 5: | ||
results = _context2.sent; | ||
n = results.length; | ||
if (n) { | ||
_context2.next = 9; | ||
break; | ||
} | ||
return _context2.abrupt("break", 12); | ||
case 9: | ||
for (i = 0; i < n; i++) { | ||
entries.push(results[i]); | ||
} | ||
_context2.next = 2; | ||
break; | ||
case 12: | ||
return _context2.abrupt("return", entries); | ||
case 13: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2); | ||
})); | ||
return _readDirectory.apply(this, arguments); | ||
}; | ||
readDirectory = function _readDirectory2(_x3) { | ||
return _readDirectory.apply(this, arguments); | ||
}; | ||
flattenFileList = []; | ||
progressFileList = []; | ||
files.forEach(function (file) { | ||
return progressFileList.push(file.webkitGetAsEntry()); | ||
}); | ||
// eslint-disable-next-line @typescript-eslint/naming-convention | ||
_traverseFileTree = /*#__PURE__*/function () { | ||
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(item, path) { | ||
var _file, entries; | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
if (item) { | ||
_context.next = 2; | ||
break; | ||
} | ||
return _context.abrupt("return"); | ||
case 2: | ||
// eslint-disable-next-line no-param-reassign | ||
item.path = path || ''; | ||
if (!item.isFile) { | ||
_context.next = 10; | ||
break; | ||
} | ||
_context.next = 6; | ||
return readFile(item); | ||
case 6: | ||
_file = _context.sent; | ||
if (_file) { | ||
flattenFileList.push(_file); | ||
} | ||
_context.next = 15; | ||
break; | ||
case 10: | ||
if (!item.isDirectory) { | ||
_context.next = 15; | ||
break; | ||
} | ||
_context.next = 13; | ||
return readDirectory(item); | ||
case 13: | ||
entries = _context.sent; | ||
progressFileList.push.apply(progressFileList, _toConsumableArray(entries)); | ||
case 15: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
return function _traverseFileTree(_x5, _x6) { | ||
return _ref2.apply(this, arguments); | ||
}; | ||
}(); | ||
wipIndex = 0; | ||
case 9: | ||
if (!(wipIndex < progressFileList.length)) { | ||
_context4.next = 15; | ||
break; | ||
} | ||
flattenFileList.push(file); | ||
} | ||
}); | ||
} else if (item.isDirectory) { | ||
loopFiles(item); | ||
} | ||
_context4.next = 12; | ||
return _traverseFileTree(progressFileList[wipIndex]); | ||
case 12: | ||
wipIndex++; | ||
_context4.next = 9; | ||
break; | ||
case 15: | ||
return _context4.abrupt("return", flattenFileList); | ||
case 16: | ||
case "end": | ||
return _context4.stop(); | ||
} | ||
}, _callee4); | ||
})); | ||
return function traverseFileTree(_x, _x2) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
function walkFiles() { | ||
var wipIndex = 0; | ||
while (wipIndex < progressFileList.length) { | ||
_traverseFileTree(progressFileList[wipIndex]); | ||
wipIndex++; | ||
} | ||
callback(flattenFileList); | ||
} | ||
walkFiles(); | ||
}; | ||
}(); | ||
export default traverseFileTree; |
@@ -19,3 +19,3 @@ import React, { Component } from 'react'; | ||
onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => void; | ||
onFileDrop: (e: React.DragEvent<HTMLDivElement>) => void; | ||
onFileDrop: (e: React.DragEvent<HTMLDivElement>) => Promise<void>; | ||
componentDidMount(): void; | ||
@@ -22,0 +22,0 @@ componentWillUnmount(): void; |
@@ -12,4 +12,4 @@ "use strict"; | ||
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime")); | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); | ||
@@ -81,22 +81,47 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onFileDrop", function (e) { | ||
var multiple = _this.props.multiple; | ||
e.preventDefault(); | ||
if (e.type === 'dragover') { | ||
return; | ||
} | ||
if (_this.props.directory) { | ||
(0, _traverseFileTree.default)(Array.prototype.slice.call(e.dataTransfer.items), _this.uploadFiles, function (_file) { | ||
return (0, _attrAccept.default)(_file, _this.props.accept); | ||
}); | ||
} else { | ||
var files = (0, _toConsumableArray2.default)(e.dataTransfer.files).filter(function (file) { | ||
return (0, _attrAccept.default)(file, _this.props.accept); | ||
}); | ||
if (multiple === false) { | ||
files = files.slice(0, 1); | ||
} | ||
_this.uploadFiles(files); | ||
} | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onFileDrop", /*#__PURE__*/function () { | ||
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(e) { | ||
var multiple, files, _files; | ||
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
multiple = _this.props.multiple; | ||
e.preventDefault(); | ||
if (!(e.type === 'dragover')) { | ||
_context.next = 4; | ||
break; | ||
} | ||
return _context.abrupt("return"); | ||
case 4: | ||
if (!_this.props.directory) { | ||
_context.next = 11; | ||
break; | ||
} | ||
_context.next = 7; | ||
return (0, _traverseFileTree.default)(Array.prototype.slice.call(e.dataTransfer.items), function (_file) { | ||
return (0, _attrAccept.default)(_file, _this.props.accept); | ||
}); | ||
case 7: | ||
files = _context.sent; | ||
_this.uploadFiles(files); | ||
_context.next = 14; | ||
break; | ||
case 11: | ||
_files = (0, _toConsumableArray2.default)(e.dataTransfer.files).filter(function (file) { | ||
return (0, _attrAccept.default)(file, _this.props.accept); | ||
}); | ||
if (multiple === false) { | ||
_files = _files.slice(0, 1); | ||
} | ||
_this.uploadFiles(_files); | ||
case 14: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
return function (_x) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}()); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "uploadFiles", function (files) { | ||
@@ -113,5 +138,5 @@ var originFiles = (0, _toConsumableArray2.default)(files); | ||
var onBatchStart = _this.props.onBatchStart; | ||
onBatchStart === null || onBatchStart === void 0 || onBatchStart(fileList.map(function (_ref) { | ||
var origin = _ref.origin, | ||
parsedFile = _ref.parsedFile; | ||
onBatchStart === null || onBatchStart === void 0 || onBatchStart(fileList.map(function (_ref2) { | ||
var origin = _ref2.origin, | ||
parsedFile = _ref2.parsedFile; | ||
return { | ||
@@ -133,6 +158,6 @@ file: origin, | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "processFile", /*#__PURE__*/function () { | ||
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(file, fileList) { | ||
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(file, fileList) { | ||
var beforeUpload, transformedFile, action, mergedAction, data, mergedData, parsedData, parsedFile, mergedParsedFile; | ||
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
@@ -142,15 +167,15 @@ beforeUpload = _this.props.beforeUpload; | ||
if (!beforeUpload) { | ||
_context.next = 14; | ||
_context2.next = 14; | ||
break; | ||
} | ||
_context.prev = 3; | ||
_context.next = 6; | ||
_context2.prev = 3; | ||
_context2.next = 6; | ||
return beforeUpload(file, fileList); | ||
case 6: | ||
transformedFile = _context.sent; | ||
_context.next = 12; | ||
transformedFile = _context2.sent; | ||
_context2.next = 12; | ||
break; | ||
case 9: | ||
_context.prev = 9; | ||
_context.t0 = _context["catch"](3); | ||
_context2.prev = 9; | ||
_context2.t0 = _context2["catch"](3); | ||
// Rejection will also trade as false | ||
@@ -160,6 +185,6 @@ transformedFile = false; | ||
if (!(transformedFile === false)) { | ||
_context.next = 14; | ||
_context2.next = 14; | ||
break; | ||
} | ||
return _context.abrupt("return", { | ||
return _context2.abrupt("return", { | ||
origin: file, | ||
@@ -174,10 +199,10 @@ parsedFile: null, | ||
if (!(typeof action === 'function')) { | ||
_context.next = 21; | ||
_context2.next = 21; | ||
break; | ||
} | ||
_context.next = 18; | ||
_context2.next = 18; | ||
return action(file); | ||
case 18: | ||
mergedAction = _context.sent; | ||
_context.next = 22; | ||
mergedAction = _context2.sent; | ||
_context2.next = 22; | ||
break; | ||
@@ -190,10 +215,10 @@ case 21: | ||
if (!(typeof data === 'function')) { | ||
_context.next = 29; | ||
_context2.next = 29; | ||
break; | ||
} | ||
_context.next = 26; | ||
_context2.next = 26; | ||
return data(file); | ||
case 26: | ||
mergedData = _context.sent; | ||
_context.next = 30; | ||
mergedData = _context2.sent; | ||
_context2.next = 30; | ||
break; | ||
@@ -216,3 +241,3 @@ case 29: | ||
mergedParsedFile.uid = file.uid; | ||
return _context.abrupt("return", { | ||
return _context2.abrupt("return", { | ||
origin: file, | ||
@@ -225,8 +250,8 @@ data: mergedData, | ||
case "end": | ||
return _context.stop(); | ||
return _context2.stop(); | ||
} | ||
}, _callee, null, [[3, 9]]); | ||
}, _callee2, null, [[3, 9]]); | ||
})); | ||
return function (_x, _x2) { | ||
return _ref2.apply(this, arguments); | ||
return function (_x2, _x3) { | ||
return _ref3.apply(this, arguments); | ||
}; | ||
@@ -252,8 +277,8 @@ }()); | ||
key: "post", | ||
value: function post(_ref3) { | ||
value: function post(_ref4) { | ||
var _this2 = this; | ||
var data = _ref3.data, | ||
origin = _ref3.origin, | ||
action = _ref3.action, | ||
parsedFile = _ref3.parsedFile; | ||
var data = _ref4.data, | ||
origin = _ref4.origin, | ||
action = _ref4.action, | ||
parsedFile = _ref4.parsedFile; | ||
if (!this._isMounted) { | ||
@@ -260,0 +285,0 @@ return; |
@@ -13,3 +13,3 @@ import type { RcFile } from './interface'; | ||
} | ||
declare const traverseFileTree: (files: InternalDataTransferItem[], callback: any, isAccepted: any) => void; | ||
declare const traverseFileTree: (files: InternalDataTransferItem[], isAccepted: any) => Promise<any[]>; | ||
export default traverseFileTree; |
@@ -8,66 +8,176 @@ "use strict"; | ||
exports.default = void 0; | ||
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime")); | ||
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); | ||
var traverseFileTree = function traverseFileTree(files, callback, isAccepted) { | ||
var flattenFileList = []; | ||
var progressFileList = []; | ||
files.forEach(function (file) { | ||
return progressFileList.push(file.webkitGetAsEntry()); | ||
}); | ||
function loopFiles(item) { | ||
var dirReader = item.createReader(); | ||
function sequence() { | ||
dirReader.readEntries(function (entries) { | ||
var entryList = Array.prototype.slice.apply(entries); | ||
progressFileList.push.apply(progressFileList, (0, _toConsumableArray2.default)(entryList)); | ||
// Check if all the file has been viewed | ||
var isFinished = !entryList.length; | ||
if (!isFinished) { | ||
sequence(); | ||
} | ||
}); | ||
} | ||
sequence(); | ||
} | ||
// eslint-disable-next-line @typescript-eslint/naming-convention | ||
var _traverseFileTree = function _traverseFileTree(item, path) { | ||
if (!item) { | ||
return; | ||
} | ||
// eslint-disable-next-line no-param-reassign | ||
item.path = path || ''; | ||
if (item.isFile) { | ||
item.file(function (file) { | ||
if (isAccepted(file)) { | ||
// https://github.com/ant-design/ant-design/issues/16426 | ||
if (item.fullPath && !file.webkitRelativePath) { | ||
Object.defineProperties(file, { | ||
webkitRelativePath: { | ||
writable: true | ||
} | ||
}); | ||
// eslint-disable-next-line no-param-reassign | ||
file.webkitRelativePath = item.fullPath.replace(/^\//, ''); | ||
Object.defineProperties(file, { | ||
webkitRelativePath: { | ||
writable: false | ||
} | ||
}); | ||
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); | ||
// https://github.com/ant-design/ant-design/issues/50080 | ||
var traverseFileTree = /*#__PURE__*/function () { | ||
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4(files, isAccepted) { | ||
var flattenFileList, progressFileList, readDirectory, _readDirectory, readFile, _readFile, _traverseFileTree, wipIndex; | ||
return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) { | ||
while (1) switch (_context4.prev = _context4.next) { | ||
case 0: | ||
_readFile = function _readFile3() { | ||
_readFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3(item) { | ||
return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) { | ||
while (1) switch (_context3.prev = _context3.next) { | ||
case 0: | ||
return _context3.abrupt("return", new Promise(function (reslove) { | ||
item.file(function (file) { | ||
if (isAccepted(file)) { | ||
// https://github.com/ant-design/ant-design/issues/16426 | ||
if (item.fullPath && !file.webkitRelativePath) { | ||
Object.defineProperties(file, { | ||
webkitRelativePath: { | ||
writable: true | ||
} | ||
}); | ||
// eslint-disable-next-line no-param-reassign | ||
file.webkitRelativePath = item.fullPath.replace(/^\//, ''); | ||
Object.defineProperties(file, { | ||
webkitRelativePath: { | ||
writable: false | ||
} | ||
}); | ||
} | ||
reslove(file); | ||
} else { | ||
reslove(null); | ||
} | ||
}); | ||
})); | ||
case 1: | ||
case "end": | ||
return _context3.stop(); | ||
} | ||
}, _callee3); | ||
})); | ||
return _readFile.apply(this, arguments); | ||
}; | ||
readFile = function _readFile2(_x4) { | ||
return _readFile.apply(this, arguments); | ||
}; | ||
_readDirectory = function _readDirectory3() { | ||
_readDirectory = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(directory) { | ||
var dirReader, entries, results, n, i; | ||
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
dirReader = directory.createReader(); | ||
entries = []; | ||
case 2: | ||
if (!true) { | ||
_context2.next = 12; | ||
break; | ||
} | ||
_context2.next = 5; | ||
return new Promise(function (resolve) { | ||
dirReader.readEntries(resolve, function () { | ||
return resolve([]); | ||
}); | ||
}); | ||
case 5: | ||
results = _context2.sent; | ||
n = results.length; | ||
if (n) { | ||
_context2.next = 9; | ||
break; | ||
} | ||
return _context2.abrupt("break", 12); | ||
case 9: | ||
for (i = 0; i < n; i++) { | ||
entries.push(results[i]); | ||
} | ||
_context2.next = 2; | ||
break; | ||
case 12: | ||
return _context2.abrupt("return", entries); | ||
case 13: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2); | ||
})); | ||
return _readDirectory.apply(this, arguments); | ||
}; | ||
readDirectory = function _readDirectory2(_x3) { | ||
return _readDirectory.apply(this, arguments); | ||
}; | ||
flattenFileList = []; | ||
progressFileList = []; | ||
files.forEach(function (file) { | ||
return progressFileList.push(file.webkitGetAsEntry()); | ||
}); | ||
// eslint-disable-next-line @typescript-eslint/naming-convention | ||
_traverseFileTree = /*#__PURE__*/function () { | ||
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(item, path) { | ||
var _file, entries; | ||
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
if (item) { | ||
_context.next = 2; | ||
break; | ||
} | ||
return _context.abrupt("return"); | ||
case 2: | ||
// eslint-disable-next-line no-param-reassign | ||
item.path = path || ''; | ||
if (!item.isFile) { | ||
_context.next = 10; | ||
break; | ||
} | ||
_context.next = 6; | ||
return readFile(item); | ||
case 6: | ||
_file = _context.sent; | ||
if (_file) { | ||
flattenFileList.push(_file); | ||
} | ||
_context.next = 15; | ||
break; | ||
case 10: | ||
if (!item.isDirectory) { | ||
_context.next = 15; | ||
break; | ||
} | ||
_context.next = 13; | ||
return readDirectory(item); | ||
case 13: | ||
entries = _context.sent; | ||
progressFileList.push.apply(progressFileList, (0, _toConsumableArray2.default)(entries)); | ||
case 15: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
return function _traverseFileTree(_x5, _x6) { | ||
return _ref2.apply(this, arguments); | ||
}; | ||
}(); | ||
wipIndex = 0; | ||
case 9: | ||
if (!(wipIndex < progressFileList.length)) { | ||
_context4.next = 15; | ||
break; | ||
} | ||
flattenFileList.push(file); | ||
} | ||
}); | ||
} else if (item.isDirectory) { | ||
loopFiles(item); | ||
} | ||
_context4.next = 12; | ||
return _traverseFileTree(progressFileList[wipIndex]); | ||
case 12: | ||
wipIndex++; | ||
_context4.next = 9; | ||
break; | ||
case 15: | ||
return _context4.abrupt("return", flattenFileList); | ||
case 16: | ||
case "end": | ||
return _context4.stop(); | ||
} | ||
}, _callee4); | ||
})); | ||
return function traverseFileTree(_x, _x2) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
function walkFiles() { | ||
var wipIndex = 0; | ||
while (wipIndex < progressFileList.length) { | ||
_traverseFileTree(progressFileList[wipIndex]); | ||
wipIndex++; | ||
} | ||
callback(flattenFileList); | ||
} | ||
walkFiles(); | ||
}; | ||
}(); | ||
var _default = exports.default = traverseFileTree; |
{ | ||
"name": "rc-upload", | ||
"version": "4.6.0", | ||
"version": "4.7.0", | ||
"description": "upload ui component for react", | ||
@@ -33,3 +33,3 @@ "keywords": [ | ||
"now-build": "npm run docs:build", | ||
"prepublishOnly": "npm run compile && np --yolo --no-publish", | ||
"prepublishOnly": "npm run compile", | ||
"prettier": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"", | ||
@@ -53,3 +53,3 @@ "postpublish": "npm run docs:deploy", | ||
"@umijs/fabric": "^4.0.1", | ||
"axios": "^0.26.1", | ||
"axios": "^1.7.2", | ||
"co-busboy": "^1.3.0", | ||
@@ -61,3 +61,3 @@ "coveralls": "^3.0.3", | ||
"father": "^4.0.0", | ||
"fs-extra": "^9.0.0", | ||
"fs-extra": "^11.2.0", | ||
"gh-pages": "^6.1.1", | ||
@@ -69,3 +69,3 @@ "np": "^9.2.0", | ||
"react-dom": "^18.0.0", | ||
"regenerator-runtime": "^0.13.7", | ||
"regenerator-runtime": "^0.14.1", | ||
"sinon": "^9.0.2", | ||
@@ -72,0 +72,0 @@ "typescript": "^5.3.3", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
79614
1879