ng-devui
Version:
DevUI components based on Angular
78 lines • 11.8 kB
JavaScript
import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';
import { I18nService } from 'ng-devui/i18n';
import { IUploadOptions, UploadStatus } from './file-uploader.types';
import { UploadComponent } from './upload.class';
import { UploadedFilesComponent } from './uploaded-files.component';
import * as i0 from "@angular/core";
import * as i1 from "ng-devui/i18n";
import * as i2 from "@angular/common";
import * as i3 from "./uploaded-files.component";
export class MultipleUploadViewComponent extends UploadComponent {
constructor(i18n) {
super();
this.i18n = i18n;
this.uploadedFiles = [];
this.deleteUploadedFileEvent = new EventEmitter();
this.UploadStatus = UploadStatus;
this.fileUploaders = [];
// 解决templateContext 传递method.bind(this)引发模板中内嵌组件initialize问题
this.deleteFileProxy = file => {
this.deleteFile(file);
};
}
ngOnInit() {
this.i18nText = this.i18n.getI18nText().upload;
this.i18nSubscription = this.i18n.langChange().subscribe((data) => {
this.i18nText = data.upload;
});
}
addFile(file) {
let uploadOptions = this.uploadOptions;
if (this.setCustomUploadOptions) {
uploadOptions = this.setCustomUploadOptions(file, this.uploadOptions);
}
super.addFile(file, uploadOptions);
}
deleteFile(file) {
super.deleteFile(file);
this.deleteUploadedFileEvent.emit(file);
}
deletePreUploadFile(file) {
super.deleteFile(file);
}
removeFiles() {
super.removeFiles();
}
_onDeleteUploadedFile(filePath) {
this.deleteUploadedFileEvent.emit(filePath);
}
ngOnDestroy() {
if (this.i18nSubscription) {
this.i18nSubscription.unsubscribe();
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultipleUploadViewComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MultipleUploadViewComponent, selector: "d-multiple-upload-view", inputs: { uploadOptions: "uploadOptions", preloadFilesRef: "preloadFilesRef", uploadedFiles: "uploadedFiles", uploadedFilesRef: "uploadedFilesRef", filePath: "filePath", setCustomUploadOptions: "setCustomUploadOptions" }, outputs: { deleteUploadedFileEvent: "deleteUploadedFileEvent" }, viewQueries: [{ propertyName: "uploadedFilesComponent", first: true, predicate: ["dUploadedFiles"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<d-uploaded-files\n #dUploadedFiles\n [uploadedFiles]=\"uploadedFiles\"\n [filePath]=\"filePath\"\n [uploadedFilesRef]=\"uploadedFilesRef\"\n (deleteUploadedFileEvent)=\"_onDeleteUploadedFile($event)\"\n>\n</d-uploaded-files>\n<ng-template\n [ngTemplateOutlet]=\"preloadFilesRef\"\n [ngTemplateOutletContext]=\"{ $implicit: this, fileUploaders: fileUploaders, UploadStatus: UploadStatus, deleteFile: deleteFileProxy }\"\n>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.UploadedFilesComponent, selector: "d-uploaded-files", inputs: ["uploadedFiles", "uploadedFilesRef", "filePath"], outputs: ["deleteUploadedFileEvent"], exportAs: ["dUploadFiles"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultipleUploadViewComponent, decorators: [{
type: Component,
args: [{ selector: 'd-multiple-upload-view', preserveWhitespaces: false, template: "<d-uploaded-files\n #dUploadedFiles\n [uploadedFiles]=\"uploadedFiles\"\n [filePath]=\"filePath\"\n [uploadedFilesRef]=\"uploadedFilesRef\"\n (deleteUploadedFileEvent)=\"_onDeleteUploadedFile($event)\"\n>\n</d-uploaded-files>\n<ng-template\n [ngTemplateOutlet]=\"preloadFilesRef\"\n [ngTemplateOutletContext]=\"{ $implicit: this, fileUploaders: fileUploaders, UploadStatus: UploadStatus, deleteFile: deleteFileProxy }\"\n>\n</ng-template>\n" }]
}], ctorParameters: () => [{ type: i1.I18nService }], propDecorators: { uploadedFilesComponent: [{
type: ViewChild,
args: ['dUploadedFiles', { static: true }]
}], uploadOptions: [{
type: Input
}], preloadFilesRef: [{
type: Input
}], uploadedFiles: [{
type: Input
}], uploadedFilesRef: [{
type: Input
}], filePath: [{
type: Input
}], deleteUploadedFileEvent: [{
type: Output
}], setCustomUploadOptions: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtdXBsb2FkLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2dWkvdXBsb2FkL211bHRpcGxlLXVwbG9hZC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2RldnVpL3VwbG9hZC9tdWx0aXBsZS11cGxvYWQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFpQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0QsT0FBTyxFQUNMLGNBQWMsRUFDZCxZQUFZLEVBQ2IsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBTXBFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxlQUFlO0lBYTlELFlBQW9CLElBQWlCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBYTtRQVQ1QixrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFHakMsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0UsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBa0N4Qyw2REFBNkQ7UUFDN0Qsb0JBQWUsR0FBRyxJQUFJLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQztJQWhDRixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFJO1FBQ1YsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ2hDLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFJO1FBQ2IsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFJO1FBQ3RCLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQU9ELHFCQUFxQixDQUFDLFFBQWdCO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV0QyxDQUFDO0lBQ0gsQ0FBQzsrR0ExRFUsMkJBQTJCO21HQUEzQiwyQkFBMkIsNGZDekJ4QyxpY0FhQTs7NEZEWWEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHdCQUF3Qix1QkFFYixLQUFLO2dGQUdxQixzQkFBc0I7c0JBQXBFLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNwQyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0Usc0JBQXNCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJMThuSW50ZXJmYWNlLCBJMThuU2VydmljZSB9IGZyb20gJ25nLWRldnVpL2kxOG4nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkZXIgfSBmcm9tICcuL2ZpbGUtdXBsb2FkZXIuY2xhc3MnO1xuaW1wb3J0IHtcbiAgSVVwbG9hZE9wdGlvbnMsXG4gIFVwbG9hZFN0YXR1c1xufSBmcm9tICcuL2ZpbGUtdXBsb2FkZXIudHlwZXMnO1xuaW1wb3J0IHsgVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWQuY2xhc3MnO1xuaW1wb3J0IHsgVXBsb2FkZWRGaWxlc0NvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkZWQtZmlsZXMuY29tcG9uZW50JztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2QtbXVsdGlwbGUtdXBsb2FkLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlwbGUtdXBsb2FkLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlwbGVVcGxvYWRWaWV3Q29tcG9uZW50IGV4dGVuZHMgVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95ICwgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZFVwbG9hZGVkRmlsZXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSB1cGxvYWRlZEZpbGVzQ29tcG9uZW50OiBVcGxvYWRlZEZpbGVzQ29tcG9uZW50O1xuICBASW5wdXQoKSB1cGxvYWRPcHRpb25zOiBJVXBsb2FkT3B0aW9ucztcbiAgQElucHV0KCkgcHJlbG9hZEZpbGVzUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSB1cGxvYWRlZEZpbGVzOiBBcnJheTxPYmplY3Q+ID0gW107XG4gIEBJbnB1dCgpIHVwbG9hZGVkRmlsZXNSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGZpbGVQYXRoOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBkZWxldGVVcGxvYWRlZEZpbGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgc2V0Q3VzdG9tVXBsb2FkT3B0aW9uczogKGZpbGUsIHVwbG9hZE9wdGlvbnMpID0+IElVcGxvYWRPcHRpb25zO1xuICBVcGxvYWRTdGF0dXMgPSBVcGxvYWRTdGF0dXM7XG4gIGZpbGVVcGxvYWRlcnM6IEFycmF5PEZpbGVVcGxvYWRlcj4gPSBbXTtcbiAgaTE4blRleHQ6IEkxOG5JbnRlcmZhY2VbJ3VwbG9hZCddO1xuICBpMThuU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaTE4bjogSTE4blNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4blRleHQgPSB0aGlzLmkxOG4uZ2V0STE4blRleHQoKS51cGxvYWQ7XG4gICAgdGhpcy5pMThuU3Vic2NyaXB0aW9uID0gdGhpcy5pMThuLmxhbmdDaGFuZ2UoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuaTE4blRleHQgPSBkYXRhLnVwbG9hZDtcbiAgICB9KTtcbiAgfVxuXG4gIGFkZEZpbGUoZmlsZSkge1xuICAgIGxldCB1cGxvYWRPcHRpb25zID0gdGhpcy51cGxvYWRPcHRpb25zO1xuICAgIGlmICh0aGlzLnNldEN1c3RvbVVwbG9hZE9wdGlvbnMpIHtcbiAgICAgIHVwbG9hZE9wdGlvbnMgPSB0aGlzLnNldEN1c3RvbVVwbG9hZE9wdGlvbnMoZmlsZSwgdGhpcy51cGxvYWRPcHRpb25zKTtcbiAgICB9XG4gICAgc3VwZXIuYWRkRmlsZShmaWxlLCB1cGxvYWRPcHRpb25zKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoZmlsZSkge1xuICAgIHN1cGVyLmRlbGV0ZUZpbGUoZmlsZSk7XG4gICAgdGhpcy5kZWxldGVVcGxvYWRlZEZpbGVFdmVudC5lbWl0KGZpbGUpO1xuICB9XG5cbiAgZGVsZXRlUHJlVXBsb2FkRmlsZShmaWxlKSB7XG4gICAgc3VwZXIuZGVsZXRlRmlsZShmaWxlKTtcbiAgfVxuXG4gIHJlbW92ZUZpbGVzKCkge1xuICAgIHN1cGVyLnJlbW92ZUZpbGVzKCk7XG4gIH1cblxuICAvLyDop6PlhrN0ZW1wbGF0ZUNvbnRleHQg5Lyg6YCSbWV0aG9kLmJpbmQodGhpcynlvJXlj5HmqKHmnb/kuK3lhoXltYznu4Tku7Zpbml0aWFsaXpl6Zeu6aKYXG4gIGRlbGV0ZUZpbGVQcm94eSA9IGZpbGUgPT4ge1xuICAgIHRoaXMuZGVsZXRlRmlsZShmaWxlKTtcbiAgfTtcblxuICBfb25EZWxldGVVcGxvYWRlZEZpbGUoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIHRoaXMuZGVsZXRlVXBsb2FkZWRGaWxlRXZlbnQuZW1pdChmaWxlUGF0aCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pMThuU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmkxOG5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIH1cbiAgfVxufVxuIiwiPGQtdXBsb2FkZWQtZmlsZXNcbiAgI2RVcGxvYWRlZEZpbGVzXG4gIFt1cGxvYWRlZEZpbGVzXT1cInVwbG9hZGVkRmlsZXNcIlxuICBbZmlsZVBhdGhdPVwiZmlsZVBhdGhcIlxuICBbdXBsb2FkZWRGaWxlc1JlZl09XCJ1cGxvYWRlZEZpbGVzUmVmXCJcbiAgKGRlbGV0ZVVwbG9hZGVkRmlsZUV2ZW50KT1cIl9vbkRlbGV0ZVVwbG9hZGVkRmlsZSgkZXZlbnQpXCJcbj5cbjwvZC11cGxvYWRlZC1maWxlcz5cbjxuZy10ZW1wbGF0ZVxuICBbbmdUZW1wbGF0ZU91dGxldF09XCJwcmVsb2FkRmlsZXNSZWZcIlxuICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRoaXMsIGZpbGVVcGxvYWRlcnM6IGZpbGVVcGxvYWRlcnMsIFVwbG9hZFN0YXR1czogVXBsb2FkU3RhdHVzLCBkZWxldGVGaWxlOiBkZWxldGVGaWxlUHJveHkgfVwiXG4+XG48L25nLXRlbXBsYXRlPlxuIl19