@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
127 lines • 11.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: multiple-upload-view.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, ViewChild, TemplateRef, Output, EventEmitter, } from '@angular/core';
import { IUploadOptions, UploadStatus } from './file-uploader.types';
import { UploadComponent } from './upload.class';
import { UploadedFilesComponent } from './uploaded-files.component';
import { I18nService } from '@duoduo-oba/ng-devui/i18n';
export class MultipleUploadViewComponent extends UploadComponent {
/**
* @param {?} i18n
*/
constructor(i18n) {
super();
this.i18n = i18n;
this.uploadedFiles = [];
this.deleteUploadedFileEvent = new EventEmitter();
this.UploadStatus = UploadStatus;
this.fileUploaders = [];
// 解决templateContext 传递method.bind(this)引发模板中内嵌组件initialize问题
this.deleteFileProxy = (/**
* @param {?} file
* @return {?}
*/
file => {
this.deleteFile(file);
});
this.i18nText = this.i18n.getI18nText().upload;
this.i18nSubscription = this.i18n.langChange().subscribe((/**
* @param {?} data
* @return {?}
*/
(data) => {
this.i18nText = data.upload;
}));
}
/**
* @param {?} file
* @return {?}
*/
addFile(file) {
super.addFile(file, this.uploadOptions);
}
/**
* @param {?} file
* @return {?}
*/
deleteFile(file) {
super.deleteFile(file);
this.deleteUploadedFileEvent.emit(file);
}
/**
* @return {?}
*/
removeFiles() {
super.removeFiles();
}
/**
* @param {?} filePath
* @return {?}
*/
_onDeleteUploadedFile(filePath) {
this.deleteUploadedFileEvent.emit(filePath);
}
/**
* @return {?}
*/
ngOnDestroy() {
if (this.i18nSubscription) {
this.i18nSubscription.unsubscribe();
}
}
}
MultipleUploadViewComponent.decorators = [
{ type: Component, args: [{
selector: 'd-multiple-upload-view',
template: "<d-uploaded-files\r\n #dUploadedFiles\r\n [uploadedFiles]=\"uploadedFiles\"\r\n [filePath]=\"filePath\"\r\n [uploadedFilesRef]=\"uploadedFilesRef\"\r\n (deleteUploadedFileEvent)=\"_onDeleteUploadedFile($event)\"\r\n>\r\n</d-uploaded-files>\r\n<ng-template\r\n [ngTemplateOutlet]=\"preloadFilesRef ? preloadFilesRef : default\"\r\n [ngTemplateOutletContext]=\"{ $implicit: this, fileUploaders: fileUploaders, UploadStatus: UploadStatus, deleteFile: deleteFileProxy}\"\r\n>\r\n</ng-template>\r\n<ng-template #default>\r\n <table class=\"devui-table\" *ngIf=\"fileUploaders.length > 0\">\r\n <tr *ngFor=\"let fileUploader of fileUploaders; let index = index\">\r\n <td width=\"50%\">\r\n <span>{{ fileUploader.file.name }}</span>\r\n </td>\r\n <td width=\"25%\">\r\n <span *ngIf=\"fileUploader.status === UploadStatus.preLoad\">{{ i18nText?.preload }}</span>\r\n <span *ngIf=\"fileUploader.status === UploadStatus.uploading\">{{ i18nText?.uploading }}</span>\r\n <span *ngIf=\"fileUploader.status === UploadStatus.uploaded\">{{ i18nText?.uploaded }}</span>\r\n <span *ngIf=\"fileUploader.status === UploadStatus.failed\">{{ i18nText?.uploadFailed }}</span>\r\n </td>\r\n <td>\r\n <d-button\r\n bordered=\"true\"\r\n icon=\"trash\"\r\n bsStyle=\"danger\"\r\n bsSize=\"xs\"\r\n *ngIf=\"fileUploader.status !== UploadStatus.uploaded\"\r\n [disabled]=\"fileUploader.status === UploadStatus.uploading\"\r\n (btnClick)=\"deleteFile(fileUploader.file)\"\r\n >\r\n {{ i18nText?.delete }}\r\n </d-button>\r\n </td>\r\n </tr>\r\n </table>\r\n</ng-template>\r\n",
styles: [".devui-table>tbody>tr:first-child td{border-top:none}table.devui-table{width:100%;max-width:100%;margin-bottom:20px}table.devui-table>tbody>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}"]
}] }
];
/** @nocollapse */
MultipleUploadViewComponent.ctorParameters = () => [
{ type: I18nService }
];
MultipleUploadViewComponent.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 }]
};
if (false) {
/** @type {?} */
MultipleUploadViewComponent.prototype.uploadedFilesComponent;
/** @type {?} */
MultipleUploadViewComponent.prototype.uploadOptions;
/** @type {?} */
MultipleUploadViewComponent.prototype.preloadFilesRef;
/** @type {?} */
MultipleUploadViewComponent.prototype.uploadedFiles;
/** @type {?} */
MultipleUploadViewComponent.prototype.uploadedFilesRef;
/** @type {?} */
MultipleUploadViewComponent.prototype.filePath;
/** @type {?} */
MultipleUploadViewComponent.prototype.deleteUploadedFileEvent;
/** @type {?} */
MultipleUploadViewComponent.prototype.UploadStatus;
/** @type {?} */
MultipleUploadViewComponent.prototype.fileUploaders;
/** @type {?} */
MultipleUploadViewComponent.prototype.i18nText;
/** @type {?} */
MultipleUploadViewComponent.prototype.i18nSubscription;
/** @type {?} */
MultipleUploadViewComponent.prototype.deleteFileProxy;
/**
* @type {?}
* @private
*/
MultipleUploadViewComponent.prototype.i18n;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtdXBsb2FkLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZGV2dWkvdXBsb2FkLyIsInNvdXJjZXMiOlsibXVsdGlwbGUtdXBsb2FkLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsWUFBWSxFQUNiLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxlQUFlOzs7O0lBWTlELFlBQW9CLElBQWlCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBYTtRQVI1QixrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFHakMsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUUsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsa0JBQWEsR0FBd0IsRUFBRSxDQUFDOztRQXlCeEMsb0JBQWU7Ozs7UUFBRyxJQUFJLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsRUFBQTtRQXRCQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRUQsT0FBTyxDQUFDLElBQUk7UUFDVixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsSUFBSTtRQUNiLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7O0lBRUQsV0FBVztRQUNULEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7OztJQU9ELHFCQUFxQixDQUFDLFFBQWdCO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7OztJQUNELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FFckM7SUFDSCxDQUFDOzs7WUFuREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLG9zREFBb0Q7O2FBRXJEOzs7O1lBTnVCLFdBQVc7OztxQ0FRaEMsU0FBUyxTQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs0QkFDNUMsS0FBSzs4QkFDTCxLQUFLOzRCQUNMLEtBQUs7K0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3NDQUNMLE1BQU07Ozs7SUFOUCw2REFBOEY7O0lBQzlGLG9EQUF1Qzs7SUFDdkMsc0RBQTJDOztJQUMzQyxvREFBMkM7O0lBQzNDLHVEQUE0Qzs7SUFDNUMsK0NBQTBCOztJQUMxQiw4REFBMEU7O0lBQzFFLG1EQUE0Qjs7SUFDNUIsb0RBQXdDOztJQUN4QywrQ0FBa0M7O0lBQ2xDLHVEQUErQjs7SUF1Qi9CLHNEQUVDOzs7OztJQXhCVywyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkRlc3Ryb3ksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIElVcGxvYWRPcHRpb25zLFxyXG4gIFVwbG9hZFN0YXR1c1xyXG59IGZyb20gJy4vZmlsZS11cGxvYWRlci50eXBlcyc7XHJcbmltcG9ydCB7IFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLmNsYXNzJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZGVyIH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLmNsYXNzJztcclxuaW1wb3J0IHsgVXBsb2FkZWRGaWxlc0NvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkZWQtZmlsZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSTE4bkludGVyZmFjZSwgSTE4blNlcnZpY2UgfSBmcm9tICduZy1kZXZ1aS9pMThuJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZC1tdWx0aXBsZS11cGxvYWQtdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpcGxlLXVwbG9hZC12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aXBsZS11cGxvYWQtdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlwbGVVcGxvYWRWaWV3Q29tcG9uZW50IGV4dGVuZHMgVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdkVXBsb2FkZWRGaWxlcycsIHsgc3RhdGljOiB0cnVlIH0pIHVwbG9hZGVkRmlsZXNDb21wb25lbnQ6IFVwbG9hZGVkRmlsZXNDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgdXBsb2FkT3B0aW9uczogSVVwbG9hZE9wdGlvbnM7XHJcbiAgQElucHV0KCkgcHJlbG9hZEZpbGVzUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHVwbG9hZGVkRmlsZXM6IEFycmF5PE9iamVjdD4gPSBbXTtcclxuICBASW5wdXQoKSB1cGxvYWRlZEZpbGVzUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGZpbGVQYXRoOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGRlbGV0ZVVwbG9hZGVkRmlsZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBVcGxvYWRTdGF0dXMgPSBVcGxvYWRTdGF0dXM7XHJcbiAgZmlsZVVwbG9hZGVyczogQXJyYXk8RmlsZVVwbG9hZGVyPiA9IFtdO1xyXG4gIGkxOG5UZXh0OiBJMThuSW50ZXJmYWNlWyd1cGxvYWQnXTtcclxuICBpMThuU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpMThuOiBJMThuU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuaTE4blRleHQgPSB0aGlzLmkxOG4uZ2V0STE4blRleHQoKS51cGxvYWQ7XHJcbiAgICB0aGlzLmkxOG5TdWJzY3JpcHRpb24gPSB0aGlzLmkxOG4ubGFuZ0NoYW5nZSgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLmkxOG5UZXh0ID0gZGF0YS51cGxvYWQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZEZpbGUoZmlsZSkge1xyXG4gICAgc3VwZXIuYWRkRmlsZShmaWxlLCB0aGlzLnVwbG9hZE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmlsZShmaWxlKSB7XHJcbiAgICBzdXBlci5kZWxldGVGaWxlKGZpbGUpO1xyXG4gICAgdGhpcy5kZWxldGVVcGxvYWRlZEZpbGVFdmVudC5lbWl0KGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRmlsZXMoKSB7XHJcbiAgICBzdXBlci5yZW1vdmVGaWxlcygpO1xyXG4gIH1cclxuXHJcbiAgLy8g6Kej5YazdGVtcGxhdGVDb250ZXh0IOS8oOmAkm1ldGhvZC5iaW5kKHRoaXMp5byV5Y+R5qih5p2/5Lit5YaF5bWM57uE5Lu2aW5pdGlhbGl6ZemXrumimFxyXG4gIGRlbGV0ZUZpbGVQcm94eSA9IGZpbGUgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVGaWxlKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgX29uRGVsZXRlVXBsb2FkZWRGaWxlKGZpbGVQYXRoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGVsZXRlVXBsb2FkZWRGaWxlRXZlbnQuZW1pdChmaWxlUGF0aCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaTE4blN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmkxOG5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=