@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
116 lines • 9.28 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: uploaded-files.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, TemplateRef, Output, EventEmitter, } from '@angular/core';
import { I18nService } from '@duoduo-oba/ng-devui/i18n';
export class UploadedFilesComponent {
/**
* @param {?} i18n
*/
constructor(i18n) {
this.i18n = i18n;
this.uploadedFiles = [];
this.deleteUploadedFileEvent = new EventEmitter();
// 解决templateContext 传递method.bind(this)引发模板中内嵌组件initialize问题
this.deleteFileProxy = (/**
* @param {?} filePath
* @return {?}
*/
filePath => {
this.deleteFile(filePath);
});
this.i18nText = this.i18n.getI18nText().upload;
this.i18nSubscription = this.i18n.langChange().subscribe((/**
* @param {?} data
* @return {?}
*/
(data) => {
this.i18nText = data.upload;
}));
}
/**
* @return {?}
*/
cleanUploadedFiles() {
this.uploadedFiles = [];
}
/**
* @param {?} file
* @return {?}
*/
addAndOverwriteFile(file) {
this.cleanUploadedFiles();
this.uploadedFiles.push(file);
}
/**
* @param {?} file
* @return {?}
*/
addFile(file) {
this.uploadedFiles.push(file);
}
/**
* @param {?} filePath
* @return {?}
*/
deleteFile(filePath) {
this.uploadedFiles = this.uploadedFiles.filter((/**
* @param {?} file
* @return {?}
*/
(file) => {
return filePath !== ((/** @type {?} */ (file)))[this.filePath];
}));
this.deleteUploadedFileEvent.emit(filePath);
}
/**
* @return {?}
*/
ngOnDestroy() {
if (this.i18nSubscription) {
this.i18nSubscription.unsubscribe();
}
}
}
UploadedFilesComponent.decorators = [
{ type: Component, args: [{
selector: 'd-uploaded-files',
exportAs: 'dUploadFiles',
template: "<ng-template\r\n [ngTemplateOutlet]=\"uploadedFilesRef ? uploadedFilesRef : default\"\r\n [ngTemplateOutletContext]=\"{ $implicit: this, uploadedFiles: uploadedFiles, filePath: filePath, deleteFile: deleteFileProxy}\"\r\n>\r\n</ng-template>\r\n\r\n<ng-template #default>\r\n <table class=\"devui-table\" *ngIf=\"uploadedFiles.length > 0\" [style.margin-bottom.px]=\"0\">\r\n <tbody>\r\n <tr *ngFor=\"let uploadedFile of uploadedFiles; let index = index\">\r\n <td width=\"50%\">\r\n <span>{{ uploadedFile.name }}</span>\r\n </td>\r\n <td width=\"25%\">\r\n <span>{{ i18nText?.upload }}</span>\r\n </td>\r\n <td>\r\n <d-button icon=\"trash\" bsStyle=\"danger\" bsSize=\"xs\" (btnClick)=\"deleteFile(uploadedFile[filePath])\">\r\n {{ i18nText?.delete }}\r\n </d-button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n",
styles: ["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}.devui-upload-input{padding:5px 25px 5px 10px!important;cursor:pointer;text-overflow:ellipsis}"]
}] }
];
/** @nocollapse */
UploadedFilesComponent.ctorParameters = () => [
{ type: I18nService }
];
UploadedFilesComponent.propDecorators = {
uploadedFiles: [{ type: Input }],
uploadedFilesRef: [{ type: Input }],
filePath: [{ type: Input }],
deleteUploadedFileEvent: [{ type: Output }]
};
if (false) {
/** @type {?} */
UploadedFilesComponent.prototype.uploadedFiles;
/** @type {?} */
UploadedFilesComponent.prototype.uploadedFilesRef;
/** @type {?} */
UploadedFilesComponent.prototype.filePath;
/** @type {?} */
UploadedFilesComponent.prototype.deleteUploadedFileEvent;
/** @type {?} */
UploadedFilesComponent.prototype.i18nText;
/** @type {?} */
UploadedFilesComponent.prototype.i18nSubscription;
/** @type {?} */
UploadedFilesComponent.prototype.deleteFileProxy;
/**
* @type {?}
* @private
*/
UploadedFilesComponent.prototype.i18n;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZWQtZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZGV2dWkvdXBsb2FkLyIsInNvdXJjZXMiOlsidXBsb2FkZWQtZmlsZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxFQUNYLE1BQU0sRUFDTixZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0QsTUFBTSxPQUFPLHNCQUFzQjs7OztJQU9qQyxZQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBTjVCLGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUdqQyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUErQjFFLG9CQUFlOzs7O1FBQUcsUUFBUSxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixDQUFDLEVBQUE7UUE3QkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBRUQsbUJBQW1CLENBQUMsSUFBWTtRQUM5QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RCxPQUFPLFFBQVEsS0FBSyxDQUFDLG1CQUFBLElBQUksRUFBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDOzs7O0lBTUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUVyQztJQUNILENBQUM7OztZQWpERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLDQ3QkFBOEM7O2FBRS9DOzs7O1lBUnVCLFdBQVc7Ozs0QkFVaEMsS0FBSzsrQkFDTCxLQUFLO3VCQUNMLEtBQUs7c0NBQ0wsTUFBTTs7OztJQUhQLCtDQUEyQzs7SUFDM0Msa0RBQTRDOztJQUM1QywwQ0FBMEI7O0lBQzFCLHlEQUEwRTs7SUFDMUUsMENBQWtDOztJQUNsQyxrREFBK0I7O0lBNkIvQixpREFFQzs7Ozs7SUE5Qlcsc0NBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkRlc3Ryb3ksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEkxOG5JbnRlcmZhY2UsIEkxOG5TZXJ2aWNlIH0gZnJvbSAnbmctZGV2dWkvaTE4bic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkLXVwbG9hZGVkLWZpbGVzJyxcclxuICBleHBvcnRBczogJ2RVcGxvYWRGaWxlcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZGVkLWZpbGVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWRlZC1maWxlcy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRlZEZpbGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSB1cGxvYWRlZEZpbGVzOiBBcnJheTxPYmplY3Q+ID0gW107XHJcbiAgQElucHV0KCkgdXBsb2FkZWRGaWxlc1JlZjogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBmaWxlUGF0aDogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBkZWxldGVVcGxvYWRlZEZpbGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaTE4blRleHQ6IEkxOG5JbnRlcmZhY2VbJ3VwbG9hZCddO1xyXG4gIGkxOG5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGkxOG46IEkxOG5TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmkxOG5UZXh0ID0gdGhpcy5pMThuLmdldEkxOG5UZXh0KCkudXBsb2FkO1xyXG4gICAgdGhpcy5pMThuU3Vic2NyaXB0aW9uID0gdGhpcy5pMThuLmxhbmdDaGFuZ2UoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5pMThuVGV4dCA9IGRhdGEudXBsb2FkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhblVwbG9hZGVkRmlsZXMoKSB7XHJcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbXTtcclxuICB9XHJcblxyXG4gIGFkZEFuZE92ZXJ3cml0ZUZpbGUoZmlsZTogT2JqZWN0KSB7XHJcbiAgICB0aGlzLmNsZWFuVXBsb2FkZWRGaWxlcygpO1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2goZmlsZSk7XHJcbiAgfVxyXG5cclxuICBhZGRGaWxlKGZpbGU6IE9iamVjdCkge1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2goZmlsZSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGVQYXRoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcy5maWx0ZXIoKGZpbGUpID0+IHtcclxuICAgICAgcmV0dXJuIGZpbGVQYXRoICE9PSAoZmlsZSBhcyBhbnkpW3RoaXMuZmlsZVBhdGhdO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRlbGV0ZVVwbG9hZGVkRmlsZUV2ZW50LmVtaXQoZmlsZVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgLy8g6Kej5YazdGVtcGxhdGVDb250ZXh0IOS8oOmAkm1ldGhvZC5iaW5kKHRoaXMp5byV5Y+R5qih5p2/5Lit5YaF5bWM57uE5Lu2aW5pdGlhbGl6ZemXrumimFxyXG4gIGRlbGV0ZUZpbGVQcm94eSA9IGZpbGVQYXRoID0+IHtcclxuICAgIHRoaXMuZGVsZXRlRmlsZShmaWxlUGF0aCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuaTE4blN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmkxOG5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==