ng-devui
Version:
DevUI components based on Angular
103 lines • 13.2 kB
JavaScript
import { from, merge, of } from 'rxjs';
import { catchError, toArray } from 'rxjs/operators';
import { FileUploader } from './file-uploader.class';
import { UploadStatus } from './file-uploader.types';
export class UploadComponent {
constructor() {
this.fileUploaders = [];
this.filesWithSameName = [];
}
addFile(file, options) {
if (options && options.checkSameName) {
if (this.checkFileSame(file.name)) {
this.fileUploaders.push(new FileUploader(file, options));
}
}
else {
this.fileUploaders.push(new FileUploader(file, options));
}
}
checkFileSame(fileName) {
let checkRel = true;
for (let i = 0; i < this.fileUploaders.length; i++) {
if (fileName === this.fileUploaders[i].file.name) {
checkRel = false;
if (this.filesWithSameName.indexOf(fileName) === -1) {
this.filesWithSameName.push(fileName);
}
break;
}
}
return checkRel;
}
getFiles() {
return this.fileUploaders.map((fileUploader) => {
return fileUploader.file;
});
}
getFullFiles() {
return this.fileUploaders.map((fileUploader) => {
return fileUploader;
});
}
upload(oneFile, isMultipleUpload = false) {
let uploads = [];
if (oneFile) {
oneFile.percentage = 0;
uploads.push(from(oneFile.send()));
}
else {
const preFiles = this.fileUploaders.filter((fileUploader) => fileUploader.status === UploadStatus.preLoad);
const failedFiles = this.fileUploaders.filter((fileUploader) => fileUploader.status === UploadStatus.failed);
const uploadFiles = preFiles.length > 0 ? preFiles : failedFiles;
uploads = uploadFiles.map((fileUploader) => {
fileUploader.percentage = 0;
if (isMultipleUpload) {
return from(fileUploader.sendMultiple()).pipe(catchError((error) => of(error)));
}
else {
return from(fileUploader.send());
}
});
}
if (uploads.length > 0) {
return merge(...uploads).pipe(toArray());
}
return from(Promise.reject('no files'));
}
oneTimeUpload() {
const uploads = this.fileUploaders.filter((fileUploader) => fileUploader.status !== UploadStatus.uploaded);
return from(this.dealOneTimeUploadFiles(uploads));
}
async dealOneTimeUploadFiles(uploads) {
if (!uploads || !uploads.length) {
return Promise.reject('no files');
}
// 触发文件上传
let finalUploads = [];
await uploads[0].send(uploads).finally(() => {
finalUploads = uploads.map((file) => {
file.status = uploads[0].status;
file.percentage = uploads[0].percentage;
return { file: file.file, response: uploads[0].response };
});
});
return finalUploads;
}
deleteFile(file) {
this.fileUploaders = this.fileUploaders.filter((fileUploader) => {
return file !== fileUploader.file;
});
}
removeFiles() {
this.fileUploaders = [];
this.filesWithSameName = [];
}
getSameNameFiles() {
return this.filesWithSameName.join();
}
resetSameNameFiles() {
this.filesWithSameName = [];
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2dWkvdXBsb2FkL3VwbG9hZC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBQ0Usa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBQ3hDLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztJQTBHekIsQ0FBQztJQXhHQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU87UUFDbkIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsUUFBUTtRQUNwQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFF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QztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbSwgbWVyZ2UsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZGVyIH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLmNsYXNzJztcbmltcG9ydCB7IFVwbG9hZFN0YXR1cyB9IGZyb20gJy4vZmlsZS11cGxvYWRlci50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBVcGxvYWRDb21wb25lbnQge1xuICBmaWxlVXBsb2FkZXJzOiBBcnJheTxGaWxlVXBsb2FkZXI+ID0gW107XG4gIGZpbGVzV2l0aFNhbWVOYW1lID0gW107XG5cbiAgYWRkRmlsZShmaWxlLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5jaGVja1NhbWVOYW1lKSB7XG4gICAgICBpZiAodGhpcy5jaGVja0ZpbGVTYW1lKGZpbGUubmFtZSkpIHtcbiAgICAgICAgdGhpcy5maWxlVXBsb2FkZXJzLnB1c2gobmV3IEZpbGVVcGxvYWRlcihmaWxlLCBvcHRpb25zKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZGVycy5wdXNoKG5ldyBGaWxlVXBsb2FkZXIoZmlsZSwgb3B0aW9ucykpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrRmlsZVNhbWUoZmlsZU5hbWUpIHtcbiAgICBsZXQgY2hlY2tSZWwgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZpbGVVcGxvYWRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChmaWxlTmFtZSA9PT0gdGhpcy5maWxlVXBsb2FkZXJzW2ldLmZpbGUubmFtZSkge1xuICAgICAgICBjaGVja1JlbCA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5maWxlc1dpdGhTYW1lTmFtZS5pbmRleE9mKGZpbGVOYW1lKSA9PT0gLTEpIHtcbiAgICAgICAgICB0aGlzLmZpbGVzV2l0aFNhbWVOYW1lLnB1c2goZmlsZU5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2hlY2tSZWw7XG4gIH1cblxuICBnZXRGaWxlcygpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkZXJzLm1hcCgoZmlsZVVwbG9hZGVyKSA9PiB7XG4gICAgICByZXR1cm4gZmlsZVVwbG9hZGVyLmZpbGU7XG4gICAgfSk7XG4gIH1cblxuICBnZXRGdWxsRmlsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZGVycy5tYXAoKGZpbGVVcGxvYWRlcikgPT4ge1xuICAgICAgcmV0dXJuIGZpbGVVcGxvYWRlcjtcbiAgICB9KTtcbiAgfVxuXG4gIHVwbG9hZChvbmVGaWxlPywgaXNNdWx0aXBsZVVwbG9hZCA9IGZhbHNlKSB7XG4gICAgbGV0IHVwbG9hZHM6IGFueVtdID0gW107XG4gICAgaWYgKG9uZUZpbGUpIHtcbiAgICAgIG9uZUZpbGUucGVyY2VudGFnZSA9IDA7XG4gICAgICB1cGxvYWRzLnB1c2goZnJvbShvbmVGaWxlLnNlbmQoKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwcmVGaWxlcyA9IHRoaXMuZmlsZVVwbG9hZGVycy5maWx0ZXIoKGZpbGVVcGxvYWRlcikgPT4gZmlsZVVwbG9hZGVyLnN0YXR1cyA9PT0gVXBsb2FkU3RhdHVzLnByZUxvYWQpO1xuICAgICAgY29uc3QgZmFpbGVkRmlsZXMgPSB0aGlzLmZpbGVVcGxvYWRlcnMuZmlsdGVyKChmaWxlVXBsb2FkZXIpID0+IGZpbGVVcGxvYWRlci5zdGF0dXMgPT09IFVwbG9hZFN0YXR1cy5mYWlsZWQpO1xuICAgICAgY29uc3QgdXBsb2FkRmlsZXMgPSBwcmVGaWxlcy5sZW5ndGggPiAwID8gcHJlRmlsZXMgOiBmYWlsZWRGaWxlcztcbiAgICAgIHVwbG9hZHMgPSB1cGxvYWRGaWxlcy5tYXAoKGZpbGVVcGxvYWRlcikgPT4ge1xuICAgICAgICBmaWxlVXBsb2FkZXIucGVyY2VudGFnZSA9IDA7XG4gICAgICAgIGlmIChpc011bHRpcGxlVXBsb2FkKSB7XG4gICAgICAgICAgcmV0dXJuIGZyb20oZmlsZVVwbG9hZGVyLnNlbmRNdWx0aXBsZSgpKS5waXBlKGNhdGNoRXJyb3IoKGVycm9yKSA9PiBvZihlcnJvcikpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZnJvbShmaWxlVXBsb2FkZXIuc2VuZCgpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh1cGxvYWRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBtZXJnZSguLi51cGxvYWRzKS5waXBlKHRvQXJyYXkoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyb20oUHJvbWlzZS5yZWplY3QoJ25vIGZpbGVzJykpO1xuICB9XG5cbiAgb25lVGltZVVwbG9hZCgpIHtcbiAgICBjb25zdCB1cGxvYWRzID0gdGhpcy5maWxlVXBsb2FkZXJzLmZpbHRlcigoZmlsZVVwbG9hZGVyKSA9PiBmaWxlVXBsb2FkZXIuc3RhdHVzICE9PSBVcGxvYWRTdGF0dXMudXBsb2FkZWQpO1xuICAgIHJldHVybiBmcm9tKHRoaXMuZGVhbE9uZVRpbWVVcGxvYWRGaWxlcyh1cGxvYWRzKSk7XG4gIH1cblxuICBhc3luYyBkZWFsT25lVGltZVVwbG9hZEZpbGVzKHVwbG9hZHMpIHtcbiAgICBpZiAoIXVwbG9hZHMgfHwgIXVwbG9hZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ25vIGZpbGVzJyk7XG4gICAgfVxuICAgIC8vIOinpuWPkeaWh+S7tuS4iuS8oFxuICAgIGxldCBmaW5hbFVwbG9hZHMgPSBbXTtcbiAgICBhd2FpdCB1cGxvYWRzWzBdLnNlbmQodXBsb2FkcykuZmluYWxseSgoKSA9PlxuICAgIC8vIOagueaNrnVwbG9hZHNbMF3nmoTkuIrkvKDnirbmgIHkuLrlhbbku5ZmaWxl6K6+572u54q25oCBXG4gICAge1xuICAgICAgZmluYWxVcGxvYWRzID0gdXBsb2Fkcy5tYXAoKGZpbGUpID0+IHtcbiAgICAgICAgZmlsZS5zdGF0dXMgPSB1cGxvYWRzWzBdLnN0YXR1cztcbiAgICAgICAgZmlsZS5wZXJjZW50YWdlID0gdXBsb2Fkc1swXS5wZXJjZW50YWdlO1xuICAgICAgICByZXR1cm4geyBmaWxlOiBmaWxlLmZpbGUsIHJlc3BvbnNlOiB1cGxvYWRzWzBdLnJlc3BvbnNlIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gZmluYWxVcGxvYWRzO1xuICB9XG5cbiAgZGVsZXRlRmlsZShmaWxlKSB7XG4gICAgdGhpcy5maWxlVXBsb2FkZXJzID0gdGhpcy5maWxlVXBsb2FkZXJzLmZpbHRlcigoZmlsZVVwbG9hZGVyKSA9PiB7XG4gICAgICByZXR1cm4gZmlsZSAhPT0gZmlsZVVwbG9hZGVyLmZpbGU7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVGaWxlcygpIHtcbiAgICB0aGlzLmZpbGVVcGxvYWRlcnMgPSBbXTtcbiAgICB0aGlzLmZpbGVzV2l0aFNhbWVOYW1lID0gW107XG4gIH1cblxuICBnZXRTYW1lTmFtZUZpbGVzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVzV2l0aFNhbWVOYW1lLmpvaW4oKTtcbiAgfVxuXG4gIHJlc2V0U2FtZU5hbWVGaWxlcygpIHtcbiAgICB0aGlzLmZpbGVzV2l0aFNhbWVOYW1lID0gW107XG4gIH1cbn1cbiJdfQ==