@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
17 lines (15 loc) • 31 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs/operators"),require("rxjs"),require("ng-devui/i18n"),require("@angular/common"),require("lodash-es/endsWith"),require("ng-devui/modal"),require("ng-devui/button")):"function"==typeof define&&define.amd?define("ng-devui/upload",["exports","@angular/core","rxjs/operators","rxjs","ng-devui/i18n","@angular/common","lodash-es/endsWith","ng-devui/modal","ng-devui/button"],t):t(((e=e||self)["ng-devui"]=e["ng-devui"]||{},e["ng-devui"].upload={}),e.ng.core,e.rxjs.operators,e.rxjs,e["ng-devui"].i18n,e.ng.common,e.endsWith,e["ng-devui"].modal,e["ng-devui"].button)}(this,(function(e,t,i,o,n,l,r,p,a){"use strict";r=r&&r.hasOwnProperty("default")?r.default:r;
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
var d=function(e,t){return(d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function s(e,t){function i(){this.constructor=e}d(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}function u(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var o,n,l=i.call(e),r=[];try{for(;(void 0===t||t-- >0)&&!(o=l.next()).done;)r.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(i=l.return)&&i.call(l)}finally{if(n)throw n.error}}return r}var c=function(){};var f=function(){};var h={preLoad:0,uploading:1,uploaded:2,failed:3};h[h.preLoad]="preLoad",h[h.uploading]="uploading",h[h.uploaded]="uploaded",h[h.failed]="failed";var m=function(){function e(e,t){this.file=e,this.uploadOptions=t,this.percentage=0,this.file=e,this.uploadOptions=t,this.status=h.preLoad}return e.prototype.send=function(){var e=this;return new Promise((function(t,i){var o=e.uploadOptions,n=o.uri,l=o.method,r=o.headers,p=o.authToken,a=o.authTokenHeader,d=o.additionalParameter,s=o.fileFieldName,u=o.withCredentials,c=a||"Authorization",f=s||"file";e.xhr=new XMLHttpRequest,e.xhr.open(l||"POST",n),u&&(e.xhr.withCredentials=u),p&&e.xhr.setRequestHeader(c,p),r&&Object.keys(r).forEach((function(t){e.xhr.setRequestHeader(t,r[t])})),e.xhr.upload.onprogress=function(t){e.percentage=Math.round(100*t.loaded/t.total)};var m=new FormData;m.append(f,e.file),d&&Object.keys(d).forEach((function(e){m.append(e,d[e])})),e.xhr.send(m),e.status=h.uploading,e.xhr.onabort=function(){e.status=h.preLoad,e.xhr=null},e.xhr.onerror=function(){e.response=e.xhr.response,e.status=h.failed,i(new Error("Upload failed in some reason."))},e.xhr.onload=function(){4===e.xhr.readyState&&e.xhr.status>=200&&e.xhr.status<300?(e.response=e.xhr.response,e.status=h.uploaded,t({file:e.file,response:e.xhr.response})):(e.response=e.xhr.response,e.status=h.failed,i({file:e.file,response:e.xhr.response}))}}))},e.prototype.cancel=function(){this.xhr&&this.xhr.abort()},e}();var g=function(){function e(){this.fileUploaders=[],this.filesWithSameName=[]}return e.prototype.addFile=function(e,t){t.checkSameName?this.checkFileSame(e.name)&&this.fileUploaders.push(new m(e,t)):this.fileUploaders.push(new m(e,t))},e.prototype.checkFileSame=function(e){for(var t=!0,i=0;i<this.fileUploaders.length;i++)if(e===this.fileUploaders[i].file.name){t=!1,-1===this.filesWithSameName.indexOf(e)&&this.filesWithSameName.push(e);break}return t},e.prototype.getFiles=function(){return this.fileUploaders.map((function(e){return e.file}))},e.prototype.upload=function(){var e=this.fileUploaders.filter((function(e){return e.status!==h.uploaded})).map((function(e){return o.from(e.send())}));return e.length>0?o.merge.apply(void 0,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(u(arguments[t]));return e}(e)).pipe(i.toArray()):o.from(Promise.reject("no files"))},e.prototype.deleteFile=function(e){this.fileUploaders=this.fileUploaders.filter((function(t){return e!==t.file}))},e.prototype.removeFiles=function(){this.fileUploaders=[],this.filesWithSameName=[]},e.prototype.getSameNameFiles=function(){return this.filesWithSameName.join()},e.prototype.resetSameNameFiles=function(){this.filesWithSameName=[]},e}();var v=function(){function e(e){var i=this;this.i18n=e,this.uploadedFiles=[],this.deleteUploadedFileEvent=new t.EventEmitter,this.deleteFileProxy=function(e){i.deleteFile(e)},this.i18nText=this.i18n.getI18nText().upload,this.i18nSubscription=this.i18n.langChange().subscribe((function(e){i.i18nText=e.upload}))}return e.prototype.cleanUploadedFiles=function(){this.uploadedFiles=[]},e.prototype.addAndOverwriteFile=function(e){this.cleanUploadedFiles(),this.uploadedFiles.push(e)},e.prototype.addFile=function(e){this.uploadedFiles.push(e)},e.prototype.deleteFile=function(e){var t=this;this.uploadedFiles=this.uploadedFiles.filter((function(i){return e!==i[t.filePath]})),this.deleteUploadedFileEvent.emit(e)},e.prototype.ngOnDestroy=function(){this.i18nSubscription&&this.i18nSubscription.unsubscribe()},e.decorators=[{type:t.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}"]}]}],e.ctorParameters=function(){return[{type:n.I18nService}]},e.propDecorators={uploadedFiles:[{type:t.Input}],uploadedFilesRef:[{type:t.Input}],filePath:[{type:t.Input}],deleteUploadedFileEvent:[{type:t.Output}]},e}();var b=function(e){function i(i){var o=e.call(this)||this;return o.i18n=i,o.uploadedFiles=[],o.deleteUploadedFileEvent=new t.EventEmitter,o.UploadStatus=h,o.fileUploaders=[],o.deleteFileProxy=function(e){o.deleteFile(e)},o.i18nText=o.i18n.getI18nText().upload,o.i18nSubscription=o.i18n.langChange().subscribe((function(e){o.i18nText=e.upload})),o}return s(i,e),i.prototype.addFile=function(t){e.prototype.addFile.call(this,t,this.uploadOptions)},i.prototype.deleteFile=function(t){e.prototype.deleteFile.call(this,t),this.deleteUploadedFileEvent.emit(t)},i.prototype.removeFiles=function(){e.prototype.removeFiles.call(this)},i.prototype._onDeleteUploadedFile=function(e){this.deleteUploadedFileEvent.emit(e)},i.prototype.ngOnDestroy=function(){this.i18nSubscription&&this.i18nSubscription.unsubscribe()},i.decorators=[{type:t.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}"]}]}],i.ctorParameters=function(){return[{type:n.I18nService}]},i.propDecorators={uploadedFilesComponent:[{type:t.ViewChild,args:["dUploadedFiles",{static:!0}]}],uploadOptions:[{type:t.Input}],preloadFilesRef:[{type:t.Input}],uploadedFiles:[{type:t.Input}],uploadedFilesRef:[{type:t.Input}],filePath:[{type:t.Input}],deleteUploadedFileEvent:[{type:t.Output}]},i}(g);var y=function(e){function i(){var i=null!==e&&e.apply(this,arguments)||this;return i.uploadedFiles=[],i.deleteUploadedFileEvent=new t.EventEmitter,i.UploadStatus=h,i.fileUploaders=[],i.deleteFileProxy=function(e){i.deleteFile(e)},i}return s(i,e),i.prototype.addFile=function(t){this.fileUploaders=[],e.prototype.addFile.call(this,t,this.uploadOptions)},i.prototype.deleteFile=function(t){e.prototype.deleteFile.call(this,t),this.deleteUploadedFileEvent.emit(t)},i.prototype._onDeleteUploadedFile=function(e){this.deleteUploadedFileEvent.emit(e)},i.decorators=[{type:t.Component,args:[{selector:"d-single-upload-view",exportAs:"dSingleUploadView",template:'<d-uploaded-files\r\n #dUploadedFiles\r\n [uploadedFiles]="uploadedFiles"\r\n [filePath]="filePath"\r\n [uploadedFilesRef]="uploadedFilesRef || default"\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> </ng-template>\r\n',styles:[".devui-table>tbody>tr:first-child td{border-top:none}"]}]}],i.propDecorators={uploadOptions:[{type:t.Input}],preloadFilesRef:[{type:t.Input}],uploadedFiles:[{type:t.Input}],uploadedFilesRef:[{type:t.Input}],filePath:[{type:t.Input}],deleteUploadedFileEvent:[{type:t.Output}],uploadedFilesComponent:[{type:t.ViewChild,args:["dUploadedFiles",{static:!0}]}]},i}(g);var F=function(){function e(e){var t=this;this.i18n=e,this.selectFiles=function(e){var i=e.multiple,o=e.accept;return new Promise((function(e){var n=document.getElementById("d-upload-temp");n&&document.body.removeChild(n);var l=document.createElement("input");l.style.position="fixed",l.style.left="-2000px",l.style.top="-2000px",l.setAttribute("id","d-upload-temp"),l.setAttribute("type","file"),i&&l.setAttribute("multiple",""),o&&l.setAttribute("accept",o),l.addEventListener("change",(function(t){e(Array.prototype.slice.call(t.target.files))})),document.body.appendChild(l),t.simulateClickEvent(l)}))},this.isAllowedFileType=function(e,t){return!e||e.split(",").reduce((function(e,i){return e||t.type.indexOf(i.replace(/[\.*]/g,""))>-1||r(t.name,i)}),!1)},this.beyondMaximalSize=function(e,t){return!!t&&e>1e6*t},this.triggerSelectFiles=function(e,i){var n=e.multiple,l=e.accept;return t._validateFiles(o.from(t.selectFiles({multiple:n,accept:l})),l,i)},this.triggerDropFiles=function(e,i,n){e.multiple;var l=e.accept;return t._validateFiles(new o.Observable((function(e){return e.next(n)})),l,i)},this.i18nText=this.i18n.getI18nText().upload,this.i18nSubscription=this.i18n.langChange().subscribe((function(e){t.i18nText=e.upload}))}return e.prototype._validateFiles=function(e,t,o){var n=this;return e.pipe(i.mergeMap((function(e){return e})),i.map((function(e){if(!n.isAllowedFileType(t,e))throw n.NOT_ALLOWED_FILE_TYPE_MSG=n.i18nText.getNotAllowedFileTypeMsg(e.name,t),new Error(n.NOT_ALLOWED_FILE_TYPE_MSG);if(n.beyondMaximalSize(e.size,o.maximumSize))throw n.BEYOND_MAXIMAL_FILE_SIZE_MSG=n.i18nText.getBeyondMaximalFileSizeMsg(e.size,o.maximumSize),new Error(n.BEYOND_MAXIMAL_FILE_SIZE_MSG);return e})))},e.prototype.simulateClickEvent=function(e){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,0,null),e.dispatchEvent(t)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:n.I18nService}]},e}();var x=function(){function e(e,i,o){var n=this;this.modalService=e,this.i18n=i,this.selectFiles=o,this.autoUpload=!1,this.withoutBtn=!1,this.uploadedFiles=[],this.enableDrop=!1,this.successEvent=new t.EventEmitter,this.errorEvent=new t.EventEmitter,this.deleteUploadedFileEvent=new t.EventEmitter,this.fileDrop=new t.EventEmitter,this.fileOver=new t.EventEmitter,this.UploadStatus=h,this.isDropOVer=!1,this.i18nText=this.i18n.getI18nText().upload,this.i18nCommonText=this.i18n.getI18nText().common,this.i18nSubscription=this.i18n.langChange().subscribe((function(e){n.i18nText=e.upload,n.i18nCommonText=e.common}))}return e.prototype._dealFiles=function(e){var t=this;e.pipe(i.map((function(e){return t.singleUploadViewComponent.addFile(e),e}))).subscribe((function(){t.singleUploadViewComponent.uploadedFilesComponent.cleanUploadedFiles(),t.autoUpload&&t.upload()}),(function(e){t.alertMsg(e.message)}))},e.prototype.onClick=function(e){this._dealFiles(this.selectFiles.triggerSelectFiles(this.fileOptions,this.uploadOptions))},Object.defineProperty(e.prototype,"filename",{get:function(){return(this.singleUploadViewComponent.getFiles()[0]||{}).name||""},enumerable:!0,configurable:!0}),e.prototype.onFileDrop=function(e){this.isDropOVer=!1,this._dealFiles(this.selectFiles.triggerDropFiles(this.fileOptions,this.uploadOptions,e)),this.fileDrop.emit(e[0])},e.prototype.onFileOver=function(e){this.isDropOVer=e,this.fileOver.emit(e)},e.prototype.upload=function(){var e=this;this.canUpload().then((function(t){t&&e.singleUploadViewComponent.upload().pipe(i.last()).subscribe((function(t){e.successEvent.emit(t),t.forEach((function(t){e.singleUploadViewComponent.deleteFile(t.file),e.singleUploadViewComponent.uploadedFilesComponent.addAndOverwriteFile(t.file)}))}),(function(t){e.singleUploadViewComponent.uploadedFilesComponent.cleanUploadedFiles(),e.errorEvent.emit(t)}))}))},e.prototype.canUpload=function(){var e=Promise.resolve(!0);if(this.beforeUpload){var t=this.beforeUpload(this.singleUploadViewComponent.getFiles()[0]||{});void 0!==t&&(e=t.then?t:t.subscribe?t.toPromise():Promise.resolve(t))}return e},e.prototype._onDeleteUploadedFile=function(e){this.deleteUploadedFileEvent.emit(e)},e.prototype.deleteFile=function(e){e.stopPropagation();var t=this.singleUploadViewComponent.getFiles();this.singleUploadViewComponent.deleteFile(t[0])},e.prototype.alertMsg=function(e){var t=this.modalService.open({width:"300px",backdropCloseable:!1,showAnimate:!0,component:p.ModalAlertComponent,data:{content:e,cancelBtnText:this.confirmText?this.confirmText:this.i18nCommonText.btnConfirm,onClose:function(e){t.modalInstance.hide()}}})},e.prototype.ngOnDestroy=function(){this.i18nSubscription&&this.i18nSubscription.unsubscribe()},e.decorators=[{type:t.Component,args:[{selector:"d-single-upload",template:'<div\r\n [style.display]="withoutBtn ? \'\' : \'-webkit-inline-box\'"\r\n d-file-drop\r\n [enableDrop]="enableDrop"\r\n [isSingle]="true"\r\n (fileDrop)="onFileDrop($event)"\r\n (fileOver)="onFileOver($event)"\r\n [ngStyle]="{ border: isDropOVer ? \'1px solid #15bf15\' : \'0\' }"\r\n>\r\n <div (click)="onClick($event)" class="devui-input-group">\r\n <input\r\n style="cursor: pointer"\r\n class="devui-form-control devui-upload-input"\r\n [placeholder]="placeholderText ? placeholderText : i18nText?.chooseFile"\r\n [value]="filename"\r\n [title]="filename"\r\n readonly\r\n />\r\n <span\r\n *ngIf="!!filename"\r\n class="icon-close devui-upload-delete-file-button devui-icon-close-position"\r\n (click)="deleteFile($event)"\r\n ></span>\r\n <span class="devui-input-group-addon" style="cursor: pointer">\r\n <svg class="svg-icon-dot" height="1em" width="1em" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">\r\n <path\r\n d="m400.31892 176.970574c0-61.574381 50.113351-111.680569 111.679545-111.680569 61.576427 0 111.680569 50.106188 111.680569 111.680569 0 61.568241-50.104141 111.679545-111.680569 111.679545-61.566194 0-111.679545-50.111304-111.679545-111.679545zm0 335.028403c0-61.568241 50.113351-111.678522 111.679545-111.678522 61.576427 0 111.680569 50.110281 111.680569 111.678522 0 61.574381-50.105165 111.682615-111.680569 111.682615-61.566194 0-111.679545-50.108235-111.679545-111.682615zm0 335.037612c0-61.572334 50.113351-111.679545 111.679545-111.679545 61.575404 0 111.680569 50.107211 111.680569 111.679545 0 61.567217-50.105165 111.672382-111.680569 111.672382-61.566194 0-111.679545-50.105164-111.679545-111.672382zm0 0"\r\n />\r\n </svg>\r\n </span>\r\n </div>\r\n <d-button\r\n *ngIf="!autoUpload && !withoutBtn"\r\n (btnClick)="upload()"\r\n bsStyle="common"\r\n [style.margin-left.px]="10"\r\n [disabled]="\r\n dSingleUploadView.uploadedFilesComponent.uploadedFiles.length > 0 ||\r\n dSingleUploadView.fileUploaders[0]?.status === UploadStatus.uploading\r\n "\r\n >\r\n <span *ngIf="!dSingleUploadView.fileUploaders[0] || dSingleUploadView.fileUploaders[0]?.status === UploadStatus.preLoad">{{\r\n uploadText || i18nText?.upload\r\n }}</span>\r\n <span *ngIf="dSingleUploadView.fileUploaders[0]?.status === UploadStatus.uploading">{{ i18nText?.uploading }}</span>\r\n <span *ngIf="dSingleUploadView.fileUploaders[0]?.status === UploadStatus.uploaded">{{ i18nText?.uploaded }}</span>\r\n <span *ngIf="dSingleUploadView.fileUploaders[0]?.status === UploadStatus.failed">{{ i18nText?.uploadFailed }}</span>\r\n </d-button>\r\n</div>\r\n<d-single-upload-view\r\n #dSingleUploadView="dSingleUploadView"\r\n [uploadOptions]="uploadOptions"\r\n [filePath]="filePath"\r\n [uploadedFiles]="uploadedFiles"\r\n [uploadedFilesRef]="uploadedFilesRef"\r\n [preloadFilesRef]="preloadFilesRef"\r\n (deleteUploadedFileEvent)="_onDeleteUploadedFile($event)"\r\n>\r\n</d-single-upload-view>\r\n',exportAs:"dSingleUpload",styles:[".devui-input-group{position:relative;display:table;border-collapse:separate}.devui-input-group:hover .devui-input-group-addon{border-color:#344899;background-color:#dfe1e6;font-weight:700}.devui-input-group:hover .devui-form-control{border-color:#344899 #adb0b8 #344899 #344899}.devui-input-group .devui-input-group-addon:active{border-color:#344899 #adb0b8 #344899 #344899;background-color:#dfe1e6}.devui-input-group .devui-input-group-addon{width:1%;white-space:nowrap;vertical-align:middle;padding:5px 10px;font-size:14px;font-weight:400;line-height:1;color:#252b3a;text-align:center;background-color:#f8f8f8;border-top:1px solid #adb0b8;border-bottom:1px solid #adb0b8;border-right:1px solid #adb0b8;border-top-right-radius:1px;border-bottom-right-radius:1px;display:table-cell;-webkit-transition:border-color .15s ease-in-out;transition:border-color .15s ease-in-out;cursor:pointer}.devui-input-group .devui-form-control{cursor:pointer;display:block;width:100%;height:32px;padding:5px 10px;font-size:14px;line-height:1.42857143;color:#252b3a;background-image:none;border:1px solid #adb0b8;border-top-left-radius:1px;border-bottom-left-radius:1px;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}svg.svg-icon-dot>path{fill:#252b3a}.devui-form-control{outline:0}.devui-icon-close-position{position:absolute;top:calc(50% - 7px);right:50px}"]}]}],e.ctorParameters=function(){return[{type:p.ModalService},{type:n.I18nService},{type:F}]},e.propDecorators={uploadOptions:[{type:t.Input}],fileOptions:[{type:t.Input}],autoUpload:[{type:t.Input}],withoutBtn:[{type:t.Input}],uploadedFiles:[{type:t.Input}],uploadedFilesRef:[{type:t.Input}],preloadFilesRef:[{type:t.Input}],filePath:[{type:t.Input}],placeholderText:[{type:t.Input}],uploadText:[{type:t.Input}],confirmText:[{type:t.Input}],beforeUpload:[{type:t.Input}],enableDrop:[{type:t.Input}],successEvent:[{type:t.Output}],errorEvent:[{type:t.Output}],deleteUploadedFileEvent:[{type:t.Output}],fileDrop:[{type:t.Output}],fileOver:[{type:t.Output}],singleUploadViewComponent:[{type:t.ViewChild,args:["dSingleUploadView",{static:!0}]}]},e}();var U=function(){function e(e,i,o){var n=this;this.modalService=e,this.selectFiles=i,this.i18n=o,this.autoUpload=!1,this.withoutBtn=!1,this.uploadedFiles=[],this.enableDrop=!1,this.successEvent=new t.EventEmitter,this.errorEvent=new t.EventEmitter,this.deleteUploadedFileEvent=new t.EventEmitter,this.fileDrop=new t.EventEmitter,this.fileOver=new t.EventEmitter,this.isDropOVer=!1,this.i18nText=this.i18n.getI18nText().upload,this.i18nCommonText=this.i18n.getI18nText().common,this.i18nSubscription=this.i18n.langChange().subscribe((function(e){n.i18nText=e.upload,n.i18nCommonText=e.common}))}return e.prototype._dealFiles=function(e){var t=this;this.multipleUploadViewComponent.resetSameNameFiles(),e.pipe(i.map((function(e){return t.multipleUploadViewComponent.addFile(e)})),i.debounceTime(100)).subscribe((function(){var e=t.multipleUploadViewComponent.getSameNameFiles();t.autoUpload&&t.upload(),t.uploadOptions.checkSameName&&e.length&&t.alertMsg(t.i18nText.getExistSameNameFilesMsg(e))}),(function(e){t.alertMsg(e.message)}))},e.prototype.onClick=function(e){this._dealFiles(this.selectFiles.triggerSelectFiles(this.fileOptions,this.uploadOptions))},e.prototype.onFileDrop=function(e){this.isDropOVer=!1,this._dealFiles(this.selectFiles.triggerDropFiles(this.fileOptions,this.uploadOptions,e)),this.fileDrop.emit(e)},e.prototype.onFileOver=function(e){this.isDropOVer=e,this.fileOver.emit(e)},e.prototype.upload=function(){var e=this;this.canUpload().then((function(t){t?e.multipleUploadViewComponent.upload().pipe(i.last()).subscribe((function(t){e.successEvent.emit(t),t.forEach((function(t){e.multipleUploadViewComponent.deleteFile(t.file),e.multipleUploadViewComponent.uploadedFilesComponent.addFile(t.file)}))}),(function(t){e.errorEvent.emit(t)})):e.multipleUploadViewComponent.removeFiles()}))},e.prototype.canUpload=function(){var e=Promise.resolve(!0);if(this.beforeUpload){var t=this.beforeUpload(this.multipleUploadViewComponent.getFiles());void 0!==t&&(e=t.then?t:t.subscribe?t.toPromise():Promise.resolve(t))}return e},e.prototype._onDeleteUploadedFile=function(e){this.deleteUploadedFileEvent.emit(e)},e.prototype.alertMsg=function(e){var t=this.modalService.open({width:"300px",backdropCloseable:!1,showAnimate:!0,component:p.ModalAlertComponent,data:{content:e,cancelBtnText:this.confirmText?this.confirmText:this.i18nCommonText.btnConfirm,onClose:function(e){t.modalInstance.hide()}}})},e.prototype.ngOnDestroy=function(){this.i18nSubscription&&this.i18nSubscription.unsubscribe()},e.decorators=[{type:t.Component,args:[{selector:"d-multiple-upload",template:'<div\r\n [style.display]="withoutBtn ? \'\' : \'-webkit-inline-box\'"\r\n d-file-drop\r\n [enableDrop]="enableDrop"\r\n (fileDrop)="onFileDrop($event)"\r\n (fileOver)="onFileOver($event)"\r\n [ngStyle]="{ border: isDropOVer ? \'1px solid #15bf15\' : \'0\' }"\r\n>\r\n <div class="devui-input-group" (click)="onClick($event)">\r\n <input\r\n type="text"\r\n style="cursor: pointer"\r\n class="devui-form-control"\r\n [placeholder]="placeholderText ? placeholderText : i18nText?.chooseFiles"\r\n readonly\r\n />\r\n <span class="devui-input-group-addon" style="cursor: pointer">\r\n <svg class="svg-icon-dot" height="1em" width="1em" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">\r\n <path\r\n d="m400.31892 176.970574c0-61.574381 50.113351-111.680569 111.679545-111.680569 61.576427 0 111.680569 50.106188 111.680569 111.680569 0 61.568241-50.104141 111.679545-111.680569 111.679545-61.566194 0-111.679545-50.111304-111.679545-111.679545zm0 335.028403c0-61.568241 50.113351-111.678522 111.679545-111.678522 61.576427 0 111.680569 50.110281 111.680569 111.678522 0 61.574381-50.105165 111.682615-111.680569 111.682615-61.566194 0-111.679545-50.108235-111.679545-111.682615zm0 335.037612c0-61.572334 50.113351-111.679545 111.679545-111.679545 61.575404 0 111.680569 50.107211 111.680569 111.679545 0 61.567217-50.105165 111.672382-111.680569 111.672382-61.566194 0-111.679545-50.105164-111.679545-111.672382zm0 0"\r\n />\r\n </svg>\r\n </span>\r\n </div>\r\n <d-button *ngIf="!autoUpload && !withoutBtn" (btnClick)="upload()" [style.margin-left.px]="10" bsStyle="common">\r\n {{ uploadText || i18nText?.upload }}\r\n </d-button>\r\n</div>\r\n<d-multiple-upload-view\r\n #dMultipleUploadView\r\n [uploadedFiles]="uploadedFiles"\r\n [uploadedFilesRef]="uploadedFilesRef"\r\n [preloadFilesRef]="preloadFilesRef"\r\n [uploadOptions]="uploadOptions"\r\n [filePath]="filePath"\r\n (deleteUploadedFileEvent)="_onDeleteUploadedFile($event)"\r\n>\r\n</d-multiple-upload-view>\r\n',exportAs:"dMultipleUpload",styles:[".devui-input-group{position:relative;display:table;border-collapse:separate}.devui-input-group:hover .devui-input-group-addon{border-color:#344899;background-color:#dfe1e6;font-weight:700}.devui-input-group:hover .devui-form-control{border-color:#344899 #adb0b8 #344899 #344899}.devui-input-group .devui-input-group-addon:active{border-color:#344899 #adb0b8 #344899 #344899;background-color:#dfe1e6}.devui-input-group .devui-input-group-addon{width:1%;white-space:nowrap;vertical-align:middle;padding:5px 10px;font-size:14px;font-weight:400;line-height:1;color:#252b3a;text-align:center;background-color:#f8f8f8;border-top:1px solid #adb0b8;border-bottom:1px solid #adb0b8;border-right:1px solid #adb0b8;border-top-right-radius:1px;border-bottom-right-radius:1px;display:table-cell;-webkit-transition:border-color .15s ease-in-out;transition:border-color .15s ease-in-out;cursor:pointer}.devui-input-group .devui-form-control{cursor:pointer;display:block;width:100%;height:32px;padding:5px 10px;font-size:14px;line-height:1.42857143;color:#252b3a;background-image:none;border:1px solid #adb0b8;border-top-left-radius:1px;border-bottom-left-radius:1px;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}svg.svg-icon-dot>path{fill:#252b3a}.devui-form-control{outline:0}.devui-icon-close-position{position:absolute;top:calc(50% - 7px);right:50px}"]}]}],e.ctorParameters=function(){return[{type:p.ModalService},{type:F},{type:n.I18nService}]},e.propDecorators={uploadOptions:[{type:t.Input}],fileOptions:[{type:t.Input}],autoUpload:[{type:t.Input}],withoutBtn:[{type:t.Input}],uploadedFiles:[{type:t.Input}],uploadedFilesRef:[{type:t.Input}],preloadFilesRef:[{type:t.Input}],filePath:[{type:t.Input}],placeholderText:[{type:t.Input}],uploadText:[{type:t.Input}],confirmText:[{type:t.Input}],beforeUpload:[{type:t.Input}],enableDrop:[{type:t.Input}],successEvent:[{type:t.Output}],errorEvent:[{type:t.Output}],deleteUploadedFileEvent:[{type:t.Output}],fileDrop:[{type:t.Output}],fileOver:[{type:t.Output}],multipleUploadViewComponent:[{type:t.ViewChild,args:["dMultipleUploadView",{static:!0}]}]},e}();var w=function(){function e(e){this.enableDrop=!1,this.isSingle=!1,this.fileOver=new t.EventEmitter,this.fileDrop=new t.EventEmitter,this.element=e}return e.prototype.onDrop=function(e){if(this.enableDrop){var t=this._getTransfer(e);t&&(this._preventAndStop(e),this.isSingle?this.fileDrop.emit([t.files[0]]):this.fileDrop.emit(t.files))}},e.prototype.onDragOver=function(e){if(this.enableDrop){var t=this._getTransfer(e);this._haveFiles(t.types)&&(t.dropEffect="move",this._preventAndStop(e),this.fileOver.emit(!0))}},e.prototype.onDragLeave=function(e){this.enableDrop&&(this.element&&e.currentTarget===this.element[0]||(this._preventAndStop(e),this.fileOver.emit(!1)))},e.prototype._getTransfer=function(e){return e.dataTransfer?e.dataTransfer:e.originalEvent.dataTransfer},e.prototype._preventAndStop=function(e){e.preventDefault(),e.stopPropagation()},e.prototype._haveFiles=function(e){return!!e&&(e.indexOf?-1!==e.indexOf("Files"):!!e.contains&&e.contains("Files"))},e.decorators=[{type:t.Directive,args:[{selector:"[d-file-drop]"}]}],e.ctorParameters=function(){return[{type:t.ElementRef}]},e.propDecorators={enableDrop:[{type:t.Input}],isSingle:[{type:t.Input}],fileOver:[{type:t.Output}],fileDrop:[{type:t.Output}],onDrop:[{type:t.HostListener,args:["drop",["$event"]]}],onDragOver:[{type:t.HostListener,args:["dragover",["$event"]]}],onDragLeave:[{type:t.HostListener,args:["dragleave",["$event"]]}]},e}();var S=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[l.CommonModule,a.ButtonModule,p.ModalModule],exports:[b,y,x,U,v,w],declarations:[b,y,x,U,v,w],entryComponents:[b,y],providers:[F]}]}],e}();e.FileDropDirective=w,e.IFileOptions=f,e.IUploadOptions=c,e.MultipleUploadComponent=U,e.MultipleUploadViewComponent=b,e.SelectFiles=F,e.SingleUploadComponent=x,e.SingleUploadViewComponent=y,e.UploadComponent=g,e.UploadModule=S,e.UploadStatus=h,e.UploadedFilesComponent=v,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=ng-devui-upload.umd.min.js.map