Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@iplab/ngx-file-upload

Package Overview
Dependencies
Maintainers
1
Versions
71
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@iplab/ngx-file-upload - npm Package Compare versions

Comparing version 1.2.1 to 1.2.2

components/file-upload-abstract.component.d.ts

2

bundles/iplab-ngx-file-upload.umd.min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("rxjs"),require("@angular/animations"),require("@angular/common"),require("@angular/core"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@iplab/ngx-file-upload",["exports","rxjs","@angular/animations","@angular/common","@angular/core","@angular/forms"],e):e((t.iplab=t.iplab||{},t.iplab["ngx-file-upload"]={}),t.rxjs,t.ng.animations,t.ng.common,t.ng.core,t.ng.forms)}(this,function(t,e,n,i,o,r){"use strict";function s(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,o,r=n.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(i=r.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(n=r["return"])&&n.call(r)}finally{if(o)throw o.error}}return s}function a(t){return null==t||0===t.length}var l={INVALID:0,VALID:1,DISABLED:2};l[l.INVALID]="INVALID",l[l.VALID]="VALID",l[l.DISABLED]="DISABLED";var c="click",p="focus",h="blur",u=function(){function t(t){this.files=new Set,this.listVisible=!0,this.status=l.VALID,this.errors=[],this.validators=[],this.statusChanged=new e.Subject,this.eventsChanged=new e.Subject,this.statusChanges=this.statusChanged.asObservable(),this.valueChanges=new e.BehaviorSubject([]),this.listVisibilityChanges=new e.BehaviorSubject(this.listVisible),this.eventsChanges=this.eventsChanged.asObservable(),this.defineValidators(t)}return t.prototype.setValidators=function(t){return this.defineValidators(t),this.validate(),this},t.prototype.defineValidators=function(t){a(t)||(this.validators=Array.isArray(t)?function n(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(s(arguments[e]));return t}(t):[t])},t.prototype.addFile=function(t){return this.files.add(t),this.validate(),this.valueChanges.next(Array.from(this.files.values())),this},t.prototype.removeFile=function(t){return this.files["delete"](t),this.validate(),this.valueChanges.next(Array.from(this.files.values())),this},t.prototype.addFiles=function(t){return this.addMultipleFiles(Array.from(t)),this},t.prototype.addMultipleFiles=function(t){var e=this;t.forEach(function(t){return e.files.add(t)}),this.validate(),this.valueChanges.next(Array.from(this.files.values()))},Object.defineProperty(t.prototype,"valid",{get:function(){return 0===this.errors.length&&this.status!==l.DISABLED},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return 0<this.errors.length},enumerable:!0,configurable:!0}),t.prototype.getError=function(){return this.errors},Object.defineProperty(t.prototype,"size",{get:function(){return this.files.size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return Array.from(this.files.values())},enumerable:!0,configurable:!0}),t.prototype.setValue=function(t){if(this.files.clear(),!(t instanceof Array))throw Error("FormControl.setValue was provided with wrong argument type, "+t+" was provided instead Array<File>");return this.addMultipleFiles(t),this},t.prototype.clear=function(){return this.files.clear(),this.validate(),this.valueChanges.next(Array.from(this.files.values())),this},Object.defineProperty(t.prototype,"isListVisible",{get:function(){return this.listVisible},enumerable:!0,configurable:!0}),t.prototype.setListVisibility=function(t){return void 0===t&&(t=!0),this.listVisible=t,this.listVisibilityChanges.next(this.listVisible),this},Object.defineProperty(t.prototype,"disabled",{get:function(){return this.status===l.DISABLED},enumerable:!0,configurable:!0}),t.prototype.enable=function(t){return void 0===t&&(t=!0),this.status=t?l.VALID:l.DISABLED,this.validate(),this.statusChanged.next(this.status),this},t.prototype.disable=function(t){return void 0===t&&(t=!0),this.status=t?l.DISABLED:l.VALID,this.validate(),this.statusChanged.next(this.status),this},t.prototype.click=function(){return this.eventsChanged.next(c),this},t.prototype.focus=function(){return this.eventsChanged.next(p),this},t.prototype.blur=function(){return this.eventsChanged.next(h),this},t.prototype.validate=function(){var e=this;if(this.status!==l.DISABLED){var t=this.valid;this.errors=this.validators.map(function(t){return t(e)}).filter(function(t){return t}),t!==this.valid&&this.statusChanged.next(this.valid?l.VALID:l.INVALID)}else this.errors.length=0},t}(),d={aac:"audio/aac",abw:"application/x-abiword",arc:"application/octet-stream",avi:"video/x-msvideo",azw:"application/vnd.amazon.ebook",bin:"application/octet-stream",bmp:"image/bmp",bz:"application/x-bzip",bz2:"application/x-bzip2",csh:"application/x-csh",css:"text/css",csv:"text/csv",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",eot:"application/vnd.ms-fontobject",epub:"application/epub+zip",es:"application/ecmascript",gif:"image/gif",html:"text/html",ico:"image/x-icon",ics:"text/calendar",jar:"application/java-archive",jpg:"image/jpeg",js:"application/javascript",json:"application/json",midi:"audio/midi",mpeg:"video/mpeg",mpkg:"application/vnd.apple.installer+xml",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",oga:"audio/ogg",ogv:"video/ogg",ogx:"application/ogg",otf:"font/otf",png:"image/png",pdf:"application/pdf",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",rar:"application/vnd.openxmlformats-officedocument.presentationml.presentation",rtf:"application/rtf",sh:"application/x-sh",svg:"image/svg+xml",swf:"application/x-shockwave-flash",tar:"application/x-tar",tiff:"image/tiff",ts:"application/typescript",ttf:"font/ttf",vsd:"application/vnd.visio",wav:"audio/wav",weba:"audio/webm",webm:"video/webm",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",xhtml:"application/xhtml+xml",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",xml:"application/xml",xul:"application/vnd.mozilla.xul+xml",zip:"application/zip","3gp":"video/3gpp","3g2":"video/3gpp2","7z":"application/x-7z-compressed"},f=function(){function t(t){this.renderer=t,this.extensions=["B","KB","MB","GB"]}return t.prototype.isFileDragDropAvailable=function(){var t=this.renderer.createElement("div");return"draggable"in t||"ondragstart"in t&&"ondrop"in t},t.prototype.calculateSize=function(t,e){return void 0===e&&(e=0),isNaN(t)&&(t=0),t<1024?Math.round(100*t)/100+" "+this.extensions[e]:this.calculateSize(t/1024,e+1)},t.prototype.getFileType=function(e){return Object.keys(d).find(function(t){return d[t]===e.type})},t.decorators=[{type:o.Injectable}],t.ctorParameters=function(){return[{type:o.Renderer2}]},t}(),g=n.trigger("insertAnimation",[n.transition("* => *",[n.query(":leave",[n.stagger(30,[n.animate(".3s",n.style({opacity:0}))])],{optional:!0}),n.query(":enter",[n.style({opacity:0}),n.stagger(30,[n.animate(".3s",n.style({opacity:1}))])],{optional:!0})])]),v=n.trigger("zoomAnimation",[n.transition("static => zoomOut",[n.animate(250,n.style({transform:"translate(-50%, -50%) scale(2, 2)",opacity:0}))]),n.transition("static => zoomIn",[n.query(":self",[n.style({transform:"translate(-50%, -50%) scale(.2, .2)",opacity:0,top:"50%",left:"50%",margin:0}),n.stagger(50,[n.animate(250,n.style({transform:"translate(-50%, -50%) scale(1, 1)",opacity:1}))])])])]),m="dragover",y="ng-touched",b=function(){function t(t,e,n,i,o){var r=this;this.fileUploadService=t,this.hostElementRef=e,this.renderer=n,this.document=i,this.cdr=o,this.control=null,this.templateRef=null,this.listItem=null,this.templateContext={$implicit:this.fileUploadService.isFileDragDropAvailable(),isFileDragDropAvailable:this.fileUploadService.isFileDragDropAvailable()},this.zoomText="static",this.listVisible=!1,this.hooks=[],this.subscriptions=[],this.onChange=function(){},this.onTouch=function(){r.renderer.addClass(r.hostElementRef.nativeElement,y)}}return t.prototype.ngOnInit=function(){a(this.control)&&(this.control=new u),this.setEvents(),this.checkAndMarkAsDisabled(),this.connectToForm()},t.prototype.ngOnDestroy=function(){this.cdr.detach(),this.hooks.forEach(function(t){return t()}),this.hooks.length=0,this.subscriptions.forEach(function(t){return t.unsubscribe()}),this.subscriptions.length=0},Object.defineProperty(t.prototype,"hasFiles",{get:function(){return this.control.isListVisible&&0<this.control.size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return!this.control.disabled&&this.control.invalid},enumerable:!0,configurable:!0}),t.prototype.setEvents=function(){var e=this;["drag","dragstart","dragend","dragover","dragenter","dragleave","drop"].forEach(function(t){e.hooks.push(e.renderer.listen(e.document,t,function(t){return e.preventDragEvents(t)}))}),["dragover","dragenter"].forEach(function(t){e.hooks.push(e.renderer.listen(e.hostElementRef.nativeElement,t,function(t){return e.onDragOver(t)}))}),["dragleave","dragend","drop"].forEach(function(t){e.hooks.push(e.renderer.listen(e.hostElementRef.nativeElement,t,function(t){return e.onDragLeave(t)}))}),this.subscriptions.push(this.control.statusChanges.subscribe(function(t){return e.checkAndMarkAsDisabled()})),this.subscriptions.push(this.control.valueChanges.subscribe(function(t){return e.renderView()})),this.subscriptions.push(this.control.listVisibilityChanges.subscribe(function(t){return e.toggleListVisibility()})),this.subscriptions.push(this.control.eventsChanges.subscribe(function(t){return e.triggerEvent(t)}))},t.prototype.triggerEvent=function(t){"function"==typeof this.label.nativeElement[t]&&this.label.nativeElement[t]()},t.prototype.onKeyDown=function(t){13!==t.keyCode&&32!==t.keyCode||(t.preventDefault(),this.control.click())},t.prototype.checkAndMarkAsDisabled=function(){this.control.disabled?(this.renderer.addClass(this.hostElementRef.nativeElement,"disabled"),this.renderer.setProperty(this.input.nativeElement,"disabled",!0)):(this.renderer.removeClass(this.hostElementRef.nativeElement,"disabled"),this.renderer.setProperty(this.input.nativeElement,"disabled",!1))},t.prototype.preventDragEvents=function(t){t.preventDefault(),t.stopPropagation()},t.prototype.renderView=function(){this.listVisible||(this.zoomText=this.control.isListVisible&&0<this.control.size?"zoomOut":"static"),this.cdr.markForCheck()},t.prototype.showList=function(){"static"!==this.zoomText&&(this.listVisible=!0)},t.prototype.hideList=function(){this.listVisible=!1},t.prototype.toggleListVisibility=function(){this.listVisible=this.control.isListVisible&&0<this.control.size,this.listVisible&&(this.renderer.addClass(this.hostElementRef.nativeElement,"list-visible"),this.zoomText="static"),this.cdr.markForCheck()},t.prototype.onDragOver=function(t){this.renderer.addClass(this.hostElementRef.nativeElement,m)},t.prototype.onDragLeave=function(t){this.renderer.removeClass(this.hostElementRef.nativeElement,m)},t.prototype.onDrop=function(t){if(!this.control.disabled){var e=t.dataTransfer.files;this.control.addFiles(e),this.onTouch()}},t.prototype.onInputChange=function(t){var e=t.target;!this.control.disabled&&0<e.files.length&&(this.control.addFiles(e.files),this.clearInputEl()),this.onTouch()},t.prototype.clearInputEl=function(){this.input.nativeElement.value=null},t.prototype.connectToForm=function(){var e=this;this.subscriptions.push(this.control.valueChanges.subscribe(function(t){return e.onChange(t)}))},t.prototype.writeValue=function(t){null!=t&&this.control.setValue(t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouch=t},t.prototype.setDisabledState=function(t){this.control.disable(t)},t.prototype.zoomAnimationDone=function(t){this.control.isListVisible&&0<this.control.size?this.showList():this.hideList(),"static"===t.fromState&&"zoomOut"===t.toState?this.renderer.addClass(this.hostElementRef.nativeElement,"hide-text"):this.renderer.removeClass(this.hostElementRef.nativeElement,"hide-text"),"zoomIn"===t.toState&&(this.zoomText="static")},t.prototype.animationListFinished=function(t){"void"===t.toState&&(this.zoomText="zoomIn",this.renderer.removeClass(this.hostElementRef.nativeElement,"list-visible")),"void"===t.fromState&&(this.zoomText="static",this.renderer.addClass(this.hostElementRef.nativeElement,"list-visible"))},t.decorators=[{type:o.Component,args:[{selector:"file-upload:not([simple])",template:'<label #labelRef class="upload-input" tabindex="0" (keydown)="onKeyDown($event)" [@zoomAnimation]="zoomText" (@zoomAnimation.done)="zoomAnimationDone($event)">\r\n\r\n <ng-container *ngTemplateOutlet="templateRef ? templateRef : defaultTemplate; context: templateContext"></ng-container>\r\n\r\n <ng-template #defaultTemplate let-isFileDragDropAvailable="isFileDragDropAvailable">\r\n <div class="icon">\r\n <svg viewBox="0 0 96 96">\r\n <g>\r\n <path d="M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\r\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\r\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\r\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\r\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\r\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\r\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\r\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\r\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z"/>\r\n </g>\r\n </svg>\r\n </div>\r\n \r\n <div class="upload-text">\r\n <ng-container *ngIf="isFileDragDropAvailable; else isNotDragDropAvailable">\r\n <b>Drag and drop</b> files<br> or click here\r\n </ng-container>\r\n <ng-template #isNotDragDropAvailable>\r\n <b>Click here</b> to<br> choose a files\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n\r\n <input #inputRef type="file" class="files-input" tabindex="-1" multiple (change)="onInputChange($event)">\r\n</label>\r\n\r\n<div class="upload-list" *ngIf="(control.listVisibilityChanges | async) && control.size > 0 && listVisible" [@insertAnimation]="control.size" (@insertAnimation.done)="animationListFinished($event)">\r\n <ng-template ngFor let-file let-i="index" [ngForOf]="control.valueChanges | async">\r\n <ng-container *ngTemplateOutlet="listItem ? listItem : defaultItemTemplate; context: { $implicit: file, file: file, index: i, control: control }"></ng-container>\r\n </ng-template>\r\n \r\n <ng-template #defaultItemTemplate let-i="index" let-file="file" let-control="control">\r\n <file-upload-list-item [index]="i" [file]="file" [control]="control"></file-upload-list-item>\r\n </ng-template>\r\n</div>',providers:[f,{provide:r.NG_VALUE_ACCESSOR,useExisting:o.forwardRef(function(){return t}),multi:!0}],changeDetection:o.ChangeDetectionStrategy.OnPush,animations:[v,g],styles:[':host,:host>*{box-sizing:border-box}:host{overflow:hidden;display:block;background:#fafafa;padding:20px 66px 20px 20px;min-height:140px;outline:#92b0b3 dashed 1px;outline-offset:-10px;position:relative}:host(.dragover){outline-width:2px}:host(.disabled){opacity:.5;cursor:no-drop}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;float:left}.icon svg{fill:#909293}.upload-input:after{clear:both;content:"\\0A0";display:block;height:0;line-height:0;visibility:hidden;zoom:1}.upload-input{cursor:pointer;display:inline-block;color:#646464;position:absolute;top:50%;left:50%;margin:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);outline:0}:host(.disabled) .upload-input{cursor:not-allowed}:host(.list-visible) .upload-input{top:20px;left:100%;margin-left:-20px;-webkit-transform:translate(-100%,0);transform:translate(-100%,0);text-align:center}.upload-text{overflow:hidden;width:auto;position:relative;padding-left:20px}:host(.hide-text) .upload-input{opacity:0}:host(.list-visible) .upload-text{display:none}:host(.dragover:not(.disabled)) .upload-input,:host(:not(.disabled)) .upload-input:focus,:host(:not(.disabled)) .upload-input:hover{color:#80a9d2}:host(.dragover:not(.disabled)) .icon svg,:host(:not(.disabled)) .upload-input:focus svg,:host(:not(.disabled)) .upload-input:hover svg{fill:#80a9d2}file-upload-list-item{padding:10px 0 0}file-upload-list-item:first-child{padding:0}']}]}],t.ctorParameters=function(){return[{type:f},{type:o.ElementRef},{type:o.Renderer2},{type:undefined,decorators:[{type:o.Inject,args:[i.DOCUMENT]}]},{type:o.ChangeDetectorRef}]},t.propDecorators={control:[{type:o.Input}],templateRef:[{type:o.ContentChild,args:["placeholder"]}],listItem:[{type:o.ContentChild,args:["item"]}],input:[{type:o.ViewChild,args:["inputRef"]}],label:[{type:o.ViewChild,args:["labelRef"]}],hasFiles:[{type:o.HostBinding,args:["class.has-files"]}],isInvalid:[{type:o.HostBinding,args:["class.ng-invalid"]}],onDrop:[{type:o.HostListener,args:["drop",["$event"]]}]},t}(),x=function(){function t(t){this.fileUploadService=t}return t.prototype.removeFile=function(t){this.control.removeFile(t)},t.prototype.calculateSize=function(t){return this.fileUploadService.calculateSize(t)},t.decorators=[{type:o.Component,args:[{selector:"file-upload-list-item",template:'\n <file-upload-icon [file]="file"></file-upload-icon>\n <div class="file-info">\n <span class="file-name">{{ file.name }}</span> ({{ calculateSize( file.size ) }})\n </div>\n <div class="file-buttons">\n <span class="remove-btn" (click)="removeFile(file)">\n <svg viewBox="0 0 96 96">\n <g>\n <path d="M40.5,66.8V39.3c0-0.4-0.1-0.7-0.4-0.9S39.6,38,39.3,38h-2.5c-0.4,0-0.7,0.1-0.9,0.4\n s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4h2.5c0.4,0,0.7-0.1,0.9-0.4S40.5,67.1,40.5,66.8z M50.5,66.8V39.3\n c0-0.4-0.1-0.7-0.4-0.9S49.6,38,49.3,38h-2.5c-0.4,0-0.7,0.1-0.9,0.4s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4\n h2.5c0.4,0,0.7-0.1,0.9-0.4S50.5,67.1,50.5,66.8z M60.5,66.8V39.3c0-0.4-0.1-0.7-0.4-0.9S59.6,38,59.3,38h-2.5\n c-0.4,0-0.7,0.1-0.9,0.4s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4h2.5c0.4,0,0.7-0.1,0.9-0.4\n S60.5,67.1,60.5,66.8z M39.3,28h17.5l-1.9-4.6c-0.2-0.2-0.4-0.4-0.7-0.4H41.8c-0.3,0.1-0.5,0.2-0.7,0.4L39.3,28z M75.5,29.3v2.5\n c0,0.4-0.1,0.7-0.4,0.9S74.6,33,74.3,33h-3.8v37c0,2.2-0.6,4-1.8,5.6S66,78,64.3,78H31.8c-1.7,0-3.2-0.8-4.4-2.3s-1.8-3.4-1.8-5.5\n V33h-3.8c-0.4,0-0.7-0.1-0.9-0.4s-0.4-0.5-0.4-0.9v-2.5c0-0.4,0.1-0.7,0.4-0.9s0.5-0.4,0.9-0.4h12.1l2.7-6.5c0.4-1,1.1-1.8,2.1-2.5\n s2-1,3.1-1h12.5c1,0,2.1,0.3,3.1,1s1.7,1.5,2.1,2.5l2.7,6.5h12.1c0.4,0,0.7,0.1,0.9,0.4S75.5,28.9,75.5,29.3z"/>\n </g>\n </svg> Remove</span>\n </div>\n ',styles:[':host{display:block;font-size:14px;color:#646464}:host:after{clear:both;content:"\\0A0";display:block;height:0;line-height:0;visibility:hidden;zoom:1}file-upload-icon{float:left;width:30px;height:36px;margin:0 10px 0 0}.file-info{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.remove-btn{font-size:12px;cursor:pointer}.remove-btn svg{display:inline-block;vertical-align:-20%;height:18px;width:18px}']}]}],t.ctorParameters=function(){return[{type:f}]},t.propDecorators={index:[{type:o.Input}],file:[{type:o.Input}],control:[{type:o.Input}]},t}(),C=function(){function t(t){this.fileUploadService=t,this.fileType="unknown"}return t.prototype.ngOnInit=function(){this.fileType=this.fileUploadService.getFileType(this.file)},t.prototype.isIcon=function(t){switch(t){case"text":return"html"===this.fileType||"css"===this.fileType||"csv"===this.fileType||"js"===this.fileType||"pdf"===this.fileType||"ppt"===this.fileType||"xls"===this.fileType||"xlsx"===this.fileType||"xml"===this.fileType||"doc"===this.fileType||"docx"===this.fileType;case"audio":return"aac"===this.fileType||"midi"===this.fileType||"oga"===this.fileType||"wav"===this.fileType||"weba"===this.fileType;case"image":return"png"===this.fileType||"bmp"===this.fileType||"gif"===this.fileType||"jpg"===this.fileType||"svg"===this.fileType||"webp"===this.fileType||"ico"===this.fileType;case"video":return"avi"===this.fileType||"mpeg"===this.fileType||"ogv"===this.fileType||"webm"===this.fileType||"3gp"===this.fileType||"3g2"===this.fileType}},t.decorators=[{type:o.Component,args:[{selector:"file-upload-icon",template:'\r\n\r\n<ng-container [ngSwitch]="true">\r\n\r\n <svg *ngSwitchDefault viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase="isIcon(\'image\')" viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M65.1,58.7v10.7H30.9V63l6.4-6.4l4.3,4.3L54.4,48L65.1,58.7z M37.3,52.3c-1.8,0-3.3-0.6-4.6-1.9c-1.3-1.2-1.9-2.8-1.9-4.6\r\n c0-1.8,0.6-3.3,1.9-4.6c1.3-1.2,2.8-1.9,4.6-1.9s3.3,0.6,4.6,1.9c1.3,1.3,1.9,2.8,1.9,4.6c0,1.8-0.6,3.3-1.9,4.6\r\n C40.6,51.7,39.1,52.3,37.3,52.3z"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase="isIcon(\'audio\')" viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M43,46.5c0.4,0.2,0.7,0.5,0.7,1v18.2c0,0.5-0.2,0.8-0.7,1c-0.2,0-0.3,0.1-0.4,0.1c-0.3,0-0.5-0.1-0.8-0.3l-5.6-5.6h-4.4\r\n c-0.3,0-0.6-0.1-0.8-0.3c-0.2-0.2-0.3-0.5-0.3-0.8v-6.4c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3h4.4l5.6-5.6\r\n C42.2,46.4,42.6,46.3,43,46.5z M57,69.5c0.7,0,1.3-0.3,1.7-0.8c2.9-3.5,4.3-7.6,4.3-12.2s-1.4-8.6-4.3-12.2\r\n c-0.4-0.5-0.8-0.7-1.4-0.8c-0.6-0.1-1.1,0.1-1.6,0.5c-0.5,0.4-0.7,0.9-0.8,1.5c-0.1,0.6,0.1,1.1,0.5,1.6c2.2,2.7,3.3,5.9,3.3,9.4\r\n c0,3.5-1.1,6.7-3.3,9.4c-0.4,0.5-0.5,1-0.5,1.6c0.1,0.6,0.3,1.1,0.8,1.4C56.1,69.4,56.5,69.5,57,69.5z M49.9,64.6\r\n c0.6,0,1.1-0.2,1.6-0.7c1.9-2.1,2.9-4.5,2.9-7.3s-1-5.3-2.9-7.3c-0.4-0.4-0.9-0.6-1.5-0.7c-0.6,0-1.1,0.2-1.5,0.6s-0.6,0.9-0.7,1.5\r\n c0,0.6,0.2,1.1,0.6,1.6c1.2,1.3,1.7,2.7,1.7,4.4c0,1.7-0.6,3.1-1.7,4.4c-0.4,0.4-0.6,1-0.6,1.6c0,0.6,0.2,1.1,0.7,1.5\r\n C48.9,64.4,49.4,64.6,49.9,64.6z"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase="isIcon(\'text\')" viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M35.1,44.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3h23.6c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.5,0.3,0.8v2.1\r\n c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3c-0.2-0.2-0.3-0.5-0.3-0.8V44.8z M59.8,52.3\r\n c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.5,0.3,0.8v2.1c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3\r\n c-0.2-0.2-0.3-0.5-0.3-0.8v-2.1c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3H59.8z M59.8,60.9c0.3,0,0.6,0.1,0.8,0.3\r\n c0.2,0.2,0.3,0.5,0.3,0.8v2.1c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3\r\n c-0.2-0.2-0.3-0.5-0.3-0.8v-2.1c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3H59.8z"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase="isIcon(\'video\')" viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M48,43.7c1.2,0,2.2,0.4,3,1.3c0.8,0.8,1.3,1.9,1.3,3v12.9c0,1.2-0.4,2.2-1.3,3c-0.8,0.8-1.9,1.3-3,1.3H35.1c-1.2,0-2.2-0.4-3-1.3\r\n c-0.8-0.8-1.3-1.9-1.3-3V48c0-1.2,0.4-2.2,1.3-3c0.8-0.8,1.9-1.3,3-1.3H48z M64.5,43.8c0.4,0.2,0.7,0.5,0.7,1v19.3\r\n c0,0.5-0.2,0.8-0.7,1c-0.2,0-0.3,0.1-0.4,0.1c-0.3,0-0.6-0.1-0.8-0.3l-8.9-8.9v-3l8.9-8.9c0.2-0.2,0.5-0.3,0.8-0.3\r\n C64.2,43.7,64.3,43.7,64.5,43.8z"/>\r\n </g>\r\n </svg>\r\n\r\n</ng-container>',styles:[":host{display:block;border:1px solid #eaeaea;border-radius:4px}:host svg{fill:#909293}"]}]}],t.ctorParameters=function(){return[{type:f}]},t.propDecorators={file:[{type:o.Input}]},t}(),z=function(){function t(t,e,n,i){var o=this;this.fileUploadService=t,this.hostElementRef=e,this.renderer=n,this.document=i,this.control=null,this.templateRef=null,this.hooks=[],this.subscriptions=[],this.onTouch=function(){o.renderer.addClass(o.hostElementRef.nativeElement,y)}}return t.prototype.ngOnInit=function(){a(this.control)&&(this.control=new u)},t.prototype.ngAfterViewInit=function(){this.fileUploadService.isFileDragDropAvailable()&&(this.setEvents(),this.checkAndMarkAsDisabled())},t.prototype.ngOnDestroy=function(){this.hooks.forEach(function(t){return t()}),this.hooks.length=0,this.subscriptions.forEach(function(t){return t.unsubscribe()}),this.subscriptions.length=0},Object.defineProperty(t.prototype,"hasFiles",{get:function(){return this.control.isListVisible&&0<this.control.size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return!this.control.disabled&&this.control.invalid},enumerable:!0,configurable:!0}),t.prototype.setEvents=function(){var n=this;["drag","dragstart","dragend","dragover","dragenter","dragleave","drop"].forEach(function(t){n.hooks.push(n.renderer.listen(n.document,t,function(t){return n.preventDragEvents(t)}))}),["dragover","dragenter"].forEach(function(t){n.hooks.push(n.renderer.listen(n.hostElementRef.nativeElement,t,function(t){return n.onDragOver(t)}))}),["dragleave","dragend","drop"].forEach(function(e){n.hooks.push(n.renderer.listen(n.hostElementRef.nativeElement,e,function(t){(n.control.disabled&&"dragleave"===e||"dragleave"!==e)&&n.onDragLeave(t)}))}),["dragleave"].forEach(function(t){n.hooks.push(n.renderer.listen(n.overlay.nativeElement,t,function(t){return n.onDragLeave(t)}))}),this.subscriptions.push(this.control.statusChanges.subscribe(function(t){return n.checkAndMarkAsDisabled()}))},t.prototype.checkAndMarkAsDisabled=function(){this.control.disabled?this.renderer.addClass(this.hostElementRef.nativeElement,"disabled"):this.renderer.removeClass(this.hostElementRef.nativeElement,"disabled")},t.prototype.preventDragEvents=function(t){t.preventDefault(),t.stopPropagation()},t.prototype.onDragOver=function(t){this.renderer.addClass(this.hostElementRef.nativeElement,m)},t.prototype.onDragLeave=function(t){this.renderer.removeClass(this.hostElementRef.nativeElement,m)},t.prototype.onDrop=function(t){if(!this.control.disabled){var e=t.dataTransfer.files;this.control.addFiles(e),this.onTouch()}},t.decorators=[{type:o.Component,args:[{selector:"[file-drop-zone]",template:'\n <ng-content></ng-content>\n <div #overlay class="overlay" *ngIf="fileUploadService.isFileDragDropAvailable()">\n\n <div class="upload-input">\n <ng-container *ngTemplateOutlet="templateRef ? templateRef : defaultTemplate"></ng-container>\n\n <ng-template #defaultTemplate>\n <div class="icon">\n <svg viewBox="0 0 96 96">\n <g>\n <path d="M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z"/>\n </g>\n </svg>\n </div>\n \n <div class="upload-text">\n <b>Drop</b> it here\n </div>\n </ng-template>\n </div>\n </div>\n ',providers:[f],styles:[":host{position:relative;display:block}:host .overlay{display:none;background:rgba(255,255,255,.8);outline:#92b0b3 dashed 2px;outline-offset:-10px;position:absolute;top:0;left:0;right:0;bottom:0}:host(.dragover:not(.disabled)) .overlay{display:block}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;margin:0 auto 10px}:host /deep/ .icon svg{fill:#80a9d2}.upload-input{pointer-events:none;cursor:pointer;display:inline-block;color:#80a9d2;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.15s ease-in-out}"]}]}],t.ctorParameters=function(){return[{type:f},{type:o.ElementRef},{type:o.Renderer2},{type:undefined,decorators:[{type:o.Inject,args:[i.DOCUMENT]}]}]},t.propDecorators={control:[{type:o.Input}],overlay:[{type:o.ViewChild,args:["overlay"]}],templateRef:[{type:o.ContentChild,args:["placeholder"]}],hasFiles:[{type:o.HostBinding,args:["class.has-files"]}],isInvalid:[{type:o.HostBinding,args:["class.ng-invalid"]}],onDrop:[{type:o.HostListener,args:["drop",["$event"]]}]},t}(),w=function(){function t(t,e,n,i){var o=this;this.fileUploadService=t,this.hostElementRef=e,this.renderer=n,this.cdr=i,this.control=null,this.buttonRef=null,this.placeholderRef=null,this.subscriptions=[],this.onChange=function(){},this.onTouch=function(){o.renderer.addClass(o.hostElementRef.nativeElement,y)}}return t.prototype.ngOnInit=function(){a(this.control)&&(this.control=new u),this.setEvents(),this.checkAndMarkAsDisabled(),this.connectToForm()},t.prototype.ngOnDestroy=function(){this.cdr.detach(),this.subscriptions.forEach(function(t){return t.unsubscribe()}),this.subscriptions.length=0},Object.defineProperty(t.prototype,"hasFiles",{get:function(){return this.control.isListVisible&&0<this.control.size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return!this.control.disabled&&this.control.invalid},enumerable:!0,configurable:!0}),t.prototype.setEvents=function(){var e=this;this.subscriptions.push(this.control.statusChanges.subscribe(function(t){return e.checkAndMarkAsDisabled()})),this.subscriptions.push(this.control.eventsChanges.subscribe(function(t){return e.triggerEvent(t)}))},t.prototype.checkAndMarkAsDisabled=function(){this.control.disabled?(this.renderer.addClass(this.hostElementRef.nativeElement,"disabled"),this.renderer.setProperty(this.input.nativeElement,"disabled",!0)):(this.renderer.removeClass(this.hostElementRef.nativeElement,"disabled"),this.renderer.setProperty(this.input.nativeElement,"disabled",!1))},t.prototype.onInputChange=function(t){var e=t.target;!this.control.disabled&&0<e.files.length&&(this.control.setValue(Array.from(e.files)),this.clearInputEl()),this.onTouch()},t.prototype.clearInputEl=function(){this.input.nativeElement.value=null},t.prototype.connectToForm=function(){var e=this;this.subscriptions.push(this.control.valueChanges.subscribe(function(t){return e.onChange(t)}))},t.prototype.writeValue=function(t){null!=t&&this.control.setValue(t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouch=t},t.prototype.setDisabledState=function(t){this.control.disable(t)},t.prototype.triggerEvent=function(t){"function"==typeof this.label.nativeElement[t]&&this.label.nativeElement[t]()},t.prototype.onKeyDown=function(t){13!==t.keyCode&&32!==t.keyCode||(t.preventDefault(),this.control.click())},t.decorators=[{type:o.Component,args:[{selector:"file-upload[simple]",template:'<div class="upload-text">\r\n <ng-template [ngIf]="control.valueChanges | async">\r\n <ng-container *ngTemplateOutlet="placeholderRef ? placeholderRef : defaultPlaceholderTemplate; context: { $implicit: control.value[0], control: control, file: control.value[0] }"></ng-container>\r\n </ng-template>\r\n \r\n <ng-template #defaultPlaceholderTemplate let-file>\r\n <span *ngIf="file; else emptyList" class="file-name">{{ file.name }}</span>\r\n\r\n <ng-template #emptyList>\r\n Select a file...\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n\r\n<label #labelRef class="upload-button" tabindex="0" (keydown)="onKeyDown($event)">\r\n <ng-container *ngTemplateOutlet="buttonRef ? buttonRef : defaultButtonTemplate; context: { control: control }"></ng-container>\r\n\r\n <ng-template #defaultButtonTemplate>\r\n <div class="button">\r\n <div class="icon">\r\n <svg viewBox="0 0 96 96">\r\n <g>\r\n <path d="M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\r\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\r\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\r\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\r\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\r\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\r\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\r\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\r\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z"/>\r\n </g>\r\n </svg>\r\n </div>\r\n \r\n <span class="button-text">Browse</span>\r\n </div>\r\n </ng-template>\r\n\r\n <input #inputRef type="file" class="files-input" tabindex="-1" (change)="onInputChange($event)">\r\n</label>',providers:[f,{provide:r.NG_VALUE_ACCESSOR,useExisting:o.forwardRef(function(){return t}),multi:!0}],changeDetection:o.ChangeDetectionStrategy.OnPush,styles:[":host,:host>*{box-sizing:border-box}:host{display:flex;line-height:1.5;color:#555;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:inset 0 4px 7px rgba(0,0,0,.05)}:host(.disabled){opacity:.5}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:24px;width:24px;display:inline-block}.icon svg{fill:#555}.upload-button{cursor:pointer;display:block;padding:2px 4px;background-color:#eee;border-left:1px solid #ddd;border-radius:0 4px 4px 0;min-width:100px;color:#555;margin:0;position:relative;outline:0}.upload-text{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;padding:5px 10px;font-size:14px;height:30px}.button-text{vertical-align:middle;padding-left:10px}:host(.disabled) .upload-button{cursor:not-allowed}:host(:not(.disabled)) .upload-button:focus,:host(:not(.disabled)) .upload-button:hover{color:#80a9d2}:host(:not(.disabled)) .upload-button:focus svg,:host(:not(.disabled)) .upload-button:hover svg{fill:#80a9d2}"]}]}],t.ctorParameters=function(){return[{type:f},{type:o.ElementRef},{type:o.Renderer2},{type:o.ChangeDetectorRef}]},t.propDecorators={control:[{type:o.Input}],buttonRef:[{type:o.ContentChild,args:["button"]}],placeholderRef:[{type:o.ContentChild,args:["placeholder"]}],input:[{type:o.ViewChild,args:["inputRef"]}],label:[{type:o.ViewChild,args:["labelRef"]}],hasFiles:[{type:o.HostBinding,args:["class.has-files"]}],isInvalid:[{type:o.HostBinding,args:["class.ng-invalid"]}]},t}(),D=function(t,e,n){return void 0===n&&(n=0),!a(e)&&t.size>e||t.size<n?{maxSize:e,minSize:n,actual:t.size,file:t}:null},E=/(^[.]\w*)$/m,V=function(t,e){var n,i,o="."+t.name.split(".").pop();try{for(var r=function l(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}(e),s=r.next();!s.done;s=r.next()){var a=s.value;if(E.test(a)?a===o:new RegExp(a).test(t.type))return null}}catch(c){n={error:c}}finally{try{s&&!s.done&&(i=r["return"])&&i.call(r)}finally{if(n)throw n.error}}return{allowedTypes:e,actual:t.type,file:t}},I=function(t){if(!Array.isArray(t))throw Error("FormControl.setValue was provided with wrong argument type, "+t+" was provided instead Array<File>")},A=function(){function t(){}return t.fileSize=function(i){return function(t){var e=t.value;if(a(e))return null;I(e);var n=e.map(function(t){return D(t,i)}).filter(function(t){return t});return 0<n.length?{fileSize:n}:null}},t.sizeRange=function(t){var i=t.minSize,o=t.maxSize;return function(t){var e=t.value;if(a(e))return null;I(e);var n=e.map(function(t){return D(t,o,i)}).filter(function(t){return t});return 0<n.length?{sizeRange:n}:null}},t.filesLimit=function(n){return function(t){var e=t.value;return a(e)?null:(I(e),e.length>n?{filesLimit:{max:n,actual:e.length}}:null)}},t.accept=function(i){return function(t){var e=t.value;if(a(e))return null;I(e);var n=e.map(function(t){return V(t,i)}).filter(function(t){return t});return 0<n.length?{fileTypes:n}:null}},t}(),S=function(){function t(){}return t.prototype.ngOnChanges=function(t){("filesize"in t||"maxsize"in t||"minsize"in t)&&(this._createValidator(),this.onChange&&this.onChange())},t.prototype.validate=function(t){return this.validator(t)},t.prototype.registerOnValidatorChange=function(t){this.onChange=t},t.prototype._createValidator=function(){var t=null;a(this.maxsize)?a(this.filesize)||(t="string"==typeof this.filesize?parseInt(this.filesize,10):this.filesize):t="string"==typeof this.maxsize?parseInt(this.maxsize,10):this.maxsize;var e="string"==typeof this.minsize?parseInt(this.minsize,10):this.minsize;this.validator=A.sizeRange({maxSize:t,minSize:e})},t.decorators=[{type:o.Directive,args:[{selector:"[filesize][formControlName],[filesize][formControl],[filesize][ngModel],\n [minsize][formControlName],[minsize][formControl],[minsize][ngModel],\n [maxsize][formControlName],[maxsize][formControl],[maxsize][ngModel]",providers:[{provide:r.NG_VALIDATORS,useExisting:o.forwardRef(function(){return t}),multi:!0}],host:{"[attr.filesize]":"filesize ? filesize : null","[attr.minsize]":"minsize ? minsize : null","[attr.maxsize]":"maxsize ? maxsize : null"}}]}],t.propDecorators={filesize:[{type:o.Input}],minsize:[{type:o.Input}],maxsize:[{type:o.Input}]},t}(),T=function(){function t(){}return t.prototype.ngOnChanges=function(t){"fileslimit"in t&&(this._createValidator(),this.onChange&&this.onChange())},t.prototype.validate=function(t){return null!=this.fileslimit?this.validator(t):null},t.prototype.registerOnValidatorChange=function(t){this.onChange=t},t.prototype._createValidator=function(){this.validator=A.filesLimit("string"==typeof this.fileslimit?parseInt(this.fileslimit,10):this.fileslimit)},t.decorators=[{type:o.Directive,args:[{selector:"[fileslimit][formControlName],[fileslimit][formControl],[fileslimit][ngModel]",providers:[{provide:r.NG_VALIDATORS,useExisting:o.forwardRef(function(){return t}),multi:!0}],host:{"[attr.fileslimit]":"fileslimit ? fileslimit : null"}}]}],t.propDecorators={fileslimit:[{type:o.Input}]},t}(),k=function(){function t(){}return t.prototype.ngOnChanges=function(t){"accept"in t&&(this._createValidator(),this.onChange&&this.onChange())},t.prototype.validate=function(t){return null!=this.accept?this.validator(t):null},t.prototype.registerOnValidatorChange=function(t){this.onChange=t},t.prototype._createValidator=function(){this.validator=A.accept(this.accept.split(","))},t.decorators=[{type:o.Directive,args:[{selector:"[accept][formControlName],[accept][formControl],[accept][ngModel]",providers:[{provide:r.NG_VALIDATORS,useExisting:o.forwardRef(function(){return T}),multi:!0}],host:{"[attr.accept]":"accept ? accept : null"}}]}],t.propDecorators={accept:[{type:o.Input}]},t}(),R=function(){function t(t){this.injector=t}return t.prototype.ngDoBootstrap=function(){},t.decorators=[{type:o.NgModule,args:[{imports:[i.CommonModule,r.ReactiveFormsModule,r.FormsModule],declarations:[b,x,C,z,S,T,k,w],exports:[b,z,S,T,k,w],entryComponents:[b]}]}],t.ctorParameters=function(){return[{type:o.Injector}]},t}();t.FileUploadControl=u,t.FileUploadValidators=A,t.FileUploadTypes=d,t.FileUploadModule=R,t.ɵd=g,t.ɵc=v,t.ɵg=z,t.ɵf=C,t.ɵe=x,t.ɵa=b,t.ɵk=w,t.ɵh=S,t.ɵj=k,t.ɵi=T,t.ɵb=f,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/animations"),require("rxjs"),require("@angular/common"),require("@angular/forms"),require("@angular/core")):"function"==typeof define&&define.amd?define("@iplab/ngx-file-upload",["exports","@angular/animations","rxjs","@angular/common","@angular/forms","@angular/core"],e):e((t.iplab=t.iplab||{},t.iplab["ngx-file-upload"]={}),t.ng.animations,t.rxjs,t.ng.common,t.ng.forms,t.ng.core)}(this,function(t,e,n,i,o,a){"use strict";var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function l(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function s(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,o,r=n.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(i=r.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(n=r["return"])&&n.call(r)}finally{if(o)throw o.error}}return s}var c={aac:"audio/aac",abw:"application/x-abiword",arc:"application/octet-stream",avi:"video/x-msvideo",azw:"application/vnd.amazon.ebook",bin:"application/octet-stream",bmp:"image/bmp",bz:"application/x-bzip",bz2:"application/x-bzip2",csh:"application/x-csh",css:"text/css",csv:"text/csv",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",eot:"application/vnd.ms-fontobject",epub:"application/epub+zip",es:"application/ecmascript",gif:"image/gif",html:"text/html",ico:"image/x-icon",ics:"text/calendar",jar:"application/java-archive",jpg:"image/jpeg",js:"application/javascript",json:"application/json",midi:"audio/midi",mpeg:"video/mpeg",mpkg:"application/vnd.apple.installer+xml",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",oga:"audio/ogg",ogv:"video/ogg",ogx:"application/ogg",otf:"font/otf",png:"image/png",pdf:"application/pdf",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",rar:"application/vnd.openxmlformats-officedocument.presentationml.presentation",rtf:"application/rtf",sh:"application/x-sh",svg:"image/svg+xml",swf:"application/x-shockwave-flash",tar:"application/x-tar",tiff:"image/tiff",ts:"application/typescript",ttf:"font/ttf",vsd:"application/vnd.visio",wav:"audio/wav",weba:"audio/webm",webm:"video/webm",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",xhtml:"application/xhtml+xml",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",xml:"application/xml",xul:"application/vnd.mozilla.xul+xml",zip:"application/zip","3gp":"video/3gpp","3g2":"video/3gpp2","7z":"application/x-7z-compressed"},p=function(){function t(t){this.renderer=t,this.extensions=["B","KB","MB","GB"]}return t.prototype.isFileDragDropAvailable=function(){var t=this.renderer.createElement("div");return"draggable"in t||"ondragstart"in t&&"ondrop"in t},t.prototype.calculateSize=function(t,e){return void 0===e&&(e=0),isNaN(t)&&(t=0),t<1024?Math.round(100*t)/100+" "+this.extensions[e]:this.calculateSize(t/1024,e+1)},t.prototype.getFileType=function(e){return Object.keys(c).find(function(t){return c[t]===e.type})},t.decorators=[{type:a.Injectable}],t.ctorParameters=function(){return[{type:a.Renderer2}]},t}(),u=e.trigger("insertAnimation",[e.transition("* => *",[e.query(":leave",[e.stagger(30,[e.animate(".3s",e.style({opacity:0}))])],{optional:!0}),e.query(":enter",[e.style({opacity:0}),e.stagger(30,[e.animate(".3s",e.style({opacity:1}))])],{optional:!0})])]),h=e.trigger("zoomAnimation",[e.transition("static => zoomOut",[e.animate(250,e.style({transform:"translate(-50%, -50%) scale(2, 2)",opacity:0}))]),e.transition("static => zoomIn",[e.query(":self",[e.style({transform:"translate(-50%, -50%) scale(.2, .2)",opacity:0,top:"50%",left:"50%",margin:0}),e.stagger(50,[e.animate(250,e.style({transform:"translate(-50%, -50%) scale(1, 1)",opacity:1}))])])])]);function d(t){return null==t||0===t.length}var f={INVALID:0,VALID:1,DISABLED:2};f[f.INVALID]="INVALID",f[f.VALID]="VALID",f[f.DISABLED]="DISABLED";var g="click",v="focus",m="blur",y=function(){function t(t){this.files=new Set,this.listVisible=!0,this.status=f.VALID,this.errors=[],this.validators=[],this.statusChanged=new n.Subject,this.eventsChanged=new n.Subject,this.accept=null,this.acceptChanged=new n.BehaviorSubject(this.accept),this.statusChanges=this.statusChanged.asObservable(),this.valueChanges=new n.BehaviorSubject([]),this.listVisibilityChanges=new n.BehaviorSubject(this.listVisible),this.acceptChanges=this.acceptChanged.asObservable(),this.eventsChanges=this.eventsChanged.asObservable(),this.defineValidators(t)}return t.prototype.setValidators=function(t){return this.defineValidators(t),this.validate(),this},t.prototype.defineValidators=function(t){d(t)||(this.validators=Array.isArray(t)?function n(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(s(arguments[e]));return t}(t):[t])},t.prototype.addFile=function(t){return this.files.add(t),this.validate(),this.valueChanges.next(Array.from(this.files.values())),this},t.prototype.removeFile=function(t){return this.files["delete"](t),this.validate(),this.valueChanges.next(Array.from(this.files.values())),this},t.prototype.addFiles=function(t){return this.addMultipleFiles(Array.from(t)),this},t.prototype.addMultipleFiles=function(t){var e=this;t.forEach(function(t){return e.files.add(t)}),this.validate(),this.valueChanges.next(Array.from(this.files.values()))},Object.defineProperty(t.prototype,"valid",{get:function(){return 0===this.errors.length&&this.status!==f.DISABLED},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return 0<this.errors.length},enumerable:!0,configurable:!0}),t.prototype.getError=function(){return this.errors},Object.defineProperty(t.prototype,"size",{get:function(){return this.files.size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return Array.from(this.files.values())},enumerable:!0,configurable:!0}),t.prototype.setValue=function(t){if(this.files.clear(),!(t instanceof Array))throw Error("FormControl.setValue was provided with wrong argument type, "+t+" was provided instead Array<File>");return this.addMultipleFiles(t),this},t.prototype.clear=function(){return this.files.clear(),this.validate(),this.valueChanges.next(Array.from(this.files.values())),this},Object.defineProperty(t.prototype,"isListVisible",{get:function(){return this.listVisible},enumerable:!0,configurable:!0}),t.prototype.setListVisibility=function(t){return void 0===t&&(t=!0),this.listVisible=t,this.listVisibilityChanges.next(this.listVisible),this},Object.defineProperty(t.prototype,"disabled",{get:function(){return this.status===f.DISABLED},enumerable:!0,configurable:!0}),t.prototype.enable=function(t){return void 0===t&&(t=!0),this.status=t?f.VALID:f.DISABLED,this.validate(),this.statusChanged.next(this.status),this},t.prototype.disable=function(t){return void 0===t&&(t=!0),this.status=t?f.DISABLED:f.VALID,this.validate(),this.statusChanged.next(this.status),this},t.prototype.click=function(){return this.eventsChanged.next(g),this},t.prototype.focus=function(){return this.eventsChanged.next(v),this},t.prototype.blur=function(){return this.eventsChanged.next(m),this},t.prototype.acceptFiles=function(t){return this.accept=t,this.acceptChanged.next(this.accept),this},t.prototype.acceptAll=function(){return this.accept=null,this.acceptChanged.next(this.accept),this},t.prototype.validate=function(){var e=this;if(this.status!==f.DISABLED){var t=this.valid;this.errors=this.validators.map(function(t){return t(e)}).filter(function(t){return t}),t!==this.valid&&this.statusChanged.next(this.valid?f.VALID:f.INVALID)}else this.errors.length=0},t}(),b=function(){function t(t,e,n){this.hostElementRef=t,this.renderer=e,this.cdr=n,this.control=null,this.hooks=[],this.subscriptions=[],this.onChange=function(){}}return t.prototype.ngOnInit=function(){d(this.control)&&(this.control=new y),this.setEvents(),this.checkAndMarkAsDisabled(),this.connectToForm()},t.prototype.ngOnDestroy=function(){this.cdr.detach(),this.hooks.forEach(function(t){return t()}),this.hooks.length=0,this.subscriptions.forEach(function(t){return t.unsubscribe()}),this.subscriptions.length=0},t.prototype.setEvents=function(){var e=this;this.subscriptions.push(this.control.statusChanges.subscribe(function(t){return e.checkAndMarkAsDisabled()})),this.subscriptions.push(this.control.eventsChanges.subscribe(function(t){return e.triggerEvent(t)})),this.subscriptions.push(this.control.acceptChanges.subscribe(function(t){return e.updateAcceptAttr(t)}))},t.prototype.triggerEvent=function(t){"function"==typeof this.label.nativeElement[t]&&this.label.nativeElement[t]()},t.prototype.updateAcceptAttr=function(t){d(t)?this.renderer.removeAttribute(this.input.nativeElement,"accept"):this.renderer.setAttribute(this.input.nativeElement,"accept",t)},t.prototype.checkAndMarkAsDisabled=function(){this.control.disabled?(this.renderer.addClass(this.hostElementRef.nativeElement,"disabled"),this.renderer.setProperty(this.input.nativeElement,"disabled",!0)):(this.renderer.removeClass(this.hostElementRef.nativeElement,"disabled"),this.renderer.setProperty(this.input.nativeElement,"disabled",!1))},t.prototype.connectToForm=function(){var e=this;this.subscriptions.push(this.control.valueChanges.subscribe(function(t){return e.onChange(t)}))},t}(),x="dragover",C="ng-touched",z=function(s){function t(t,e,n,i,o){var r=s.call(this,e,n,o)||this;return r.fileUploadService=t,r.document=i,r.control=null,r.templateRef=null,r.listItem=null,r.templateContext={$implicit:r.fileUploadService.isFileDragDropAvailable(),isFileDragDropAvailable:r.fileUploadService.isFileDragDropAvailable()},r.zoomText="static",r.listVisible=!1,r.onTouch=function(){r.renderer.addClass(r.hostElementRef.nativeElement,C)},r}return l(t,s),Object.defineProperty(t.prototype,"hasFiles",{get:function(){return this.control.isListVisible&&0<this.control.size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return!this.control.disabled&&this.control.invalid},enumerable:!0,configurable:!0}),t.prototype.setEvents=function(){var e=this;s.prototype.setEvents.call(this),["drag","dragstart","dragend","dragover","dragenter","dragleave","drop"].forEach(function(t){e.hooks.push(e.renderer.listen(e.document,t,function(t){return e.preventDragEvents(t)}))}),["dragover","dragenter"].forEach(function(t){e.hooks.push(e.renderer.listen(e.hostElementRef.nativeElement,t,function(t){return e.onDragOver(t)}))}),["dragleave","dragend","drop"].forEach(function(t){e.hooks.push(e.renderer.listen(e.hostElementRef.nativeElement,t,function(t){return e.onDragLeave(t)}))}),this.subscriptions.push(this.control.valueChanges.subscribe(function(t){return e.renderView()})),this.subscriptions.push(this.control.listVisibilityChanges.subscribe(function(t){return e.toggleListVisibility()}))},t.prototype.onKeyDown=function(t){13!==t.keyCode&&32!==t.keyCode||(t.preventDefault(),this.control.click())},t.prototype.preventDragEvents=function(t){t.preventDefault(),t.stopPropagation()},t.prototype.renderView=function(){this.listVisible||(this.zoomText=this.control.isListVisible&&0<this.control.size?"zoomOut":"static"),this.cdr.markForCheck()},t.prototype.showList=function(){"static"!==this.zoomText&&(this.listVisible=!0)},t.prototype.hideList=function(){this.listVisible=!1},t.prototype.toggleListVisibility=function(){this.listVisible=this.control.isListVisible&&0<this.control.size,this.listVisible&&(this.renderer.addClass(this.hostElementRef.nativeElement,"list-visible"),this.zoomText="static"),this.cdr.markForCheck()},t.prototype.onDragOver=function(t){this.renderer.addClass(this.hostElementRef.nativeElement,x)},t.prototype.onDragLeave=function(t){this.renderer.removeClass(this.hostElementRef.nativeElement,x)},t.prototype.onDrop=function(t){if(!this.control.disabled){var e=t.dataTransfer.files;this.control.addFiles(e),this.onTouch()}},t.prototype.onInputChange=function(t){var e=t.target;!this.control.disabled&&0<e.files.length&&(this.control.addFiles(e.files),this.clearInputEl()),this.onTouch()},t.prototype.clearInputEl=function(){this.input.nativeElement.value=null},t.prototype.writeValue=function(t){null!=t&&this.control.setValue(t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouch=t},t.prototype.setDisabledState=function(t){this.control.disable(t)},t.prototype.zoomAnimationDone=function(t){this.control.isListVisible&&0<this.control.size?this.showList():this.hideList(),"static"===t.fromState&&"zoomOut"===t.toState?this.renderer.addClass(this.hostElementRef.nativeElement,"hide-text"):this.renderer.removeClass(this.hostElementRef.nativeElement,"hide-text"),"zoomIn"===t.toState&&(this.zoomText="static")},t.prototype.animationListFinished=function(t){"void"===t.toState&&(this.zoomText="zoomIn",this.renderer.removeClass(this.hostElementRef.nativeElement,"list-visible")),"void"===t.fromState&&(this.zoomText="static",this.renderer.addClass(this.hostElementRef.nativeElement,"list-visible"))},t.decorators=[{type:a.Component,args:[{selector:"file-upload:not([simple])",template:'<label #labelRef class="upload-input" tabindex="0" (keydown)="onKeyDown($event)" [@zoomAnimation]="zoomText" (@zoomAnimation.done)="zoomAnimationDone($event)">\r\n\r\n <ng-container *ngTemplateOutlet="templateRef ? templateRef : defaultTemplate; context: templateContext"></ng-container>\r\n\r\n <ng-template #defaultTemplate let-isFileDragDropAvailable="isFileDragDropAvailable">\r\n <div class="icon">\r\n <svg viewBox="0 0 96 96">\r\n <g>\r\n <path d="M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\r\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\r\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\r\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\r\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\r\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\r\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\r\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\r\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z"/>\r\n </g>\r\n </svg>\r\n </div>\r\n \r\n <div class="upload-text">\r\n <ng-container *ngIf="isFileDragDropAvailable; else isNotDragDropAvailable">\r\n <b>Drag and drop</b> files<br> or click here\r\n </ng-container>\r\n <ng-template #isNotDragDropAvailable>\r\n <b>Click here</b> to<br> choose a files\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n\r\n <input #inputRef type="file" class="files-input" tabindex="-1" multiple (change)="onInputChange($event)">\r\n</label>\r\n\r\n<div class="upload-list" *ngIf="(control.listVisibilityChanges | async) && control.size > 0 && listVisible" [@insertAnimation]="control.size" (@insertAnimation.done)="animationListFinished($event)">\r\n <ng-template ngFor let-file let-i="index" [ngForOf]="control.valueChanges | async">\r\n <ng-container *ngTemplateOutlet="listItem ? listItem : defaultItemTemplate; context: { $implicit: file, file: file, index: i, control: control }"></ng-container>\r\n </ng-template>\r\n \r\n <ng-template #defaultItemTemplate let-i="index" let-file="file" let-control="control">\r\n <file-upload-list-item [index]="i" [file]="file" [control]="control"></file-upload-list-item>\r\n </ng-template>\r\n</div>',providers:[p,{provide:o.NG_VALUE_ACCESSOR,useExisting:a.forwardRef(function(){return t}),multi:!0}],changeDetection:a.ChangeDetectionStrategy.OnPush,animations:[h,u],styles:[':host,:host>*{box-sizing:border-box}:host{overflow:hidden;display:block;background:#fafafa;padding:20px 66px 20px 20px;min-height:140px;outline:#92b0b3 dashed 1px;outline-offset:-10px;position:relative}:host(.dragover){outline-width:2px}:host(.disabled){opacity:.5;cursor:no-drop}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;float:left}.icon svg{fill:#909293}.upload-input:after{clear:both;content:"\\0A0";display:block;height:0;line-height:0;visibility:hidden;zoom:1}.upload-input{cursor:pointer;display:inline-block;color:#646464;position:absolute;top:50%;left:50%;margin:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);outline:0}:host(.disabled) .upload-input{cursor:not-allowed}:host(.list-visible) .upload-input{top:20px;left:100%;margin-left:-20px;-webkit-transform:translate(-100%,0);transform:translate(-100%,0);text-align:center}.upload-text{overflow:hidden;width:auto;position:relative;padding-left:20px}:host(.hide-text) .upload-input{opacity:0}:host(.list-visible) .upload-text{display:none}:host(.dragover:not(.disabled)) .upload-input,:host(:not(.disabled)) .upload-input:focus,:host(:not(.disabled)) .upload-input:hover{color:#80a9d2}:host(.dragover:not(.disabled)) .icon svg,:host(:not(.disabled)) .upload-input:focus svg,:host(:not(.disabled)) .upload-input:hover svg{fill:#80a9d2}file-upload-list-item{padding:10px 0 0}file-upload-list-item:first-child{padding:0}']}]}],t.ctorParameters=function(){return[{type:p},{type:a.ElementRef},{type:a.Renderer2},{type:undefined,decorators:[{type:a.Inject,args:[i.DOCUMENT]}]},{type:a.ChangeDetectorRef}]},t.propDecorators={control:[{type:a.Input}],templateRef:[{type:a.ContentChild,args:["placeholder"]}],listItem:[{type:a.ContentChild,args:["item"]}],input:[{type:a.ViewChild,args:["inputRef"]}],label:[{type:a.ViewChild,args:["labelRef"]}],hasFiles:[{type:a.HostBinding,args:["class.has-files"]}],isInvalid:[{type:a.HostBinding,args:["class.ng-invalid"]}],onDrop:[{type:a.HostListener,args:["drop",["$event"]]}]},t}(b),w=function(){function t(t){this.fileUploadService=t}return t.prototype.removeFile=function(t){this.control.removeFile(t)},t.prototype.calculateSize=function(t){return this.fileUploadService.calculateSize(t)},t.decorators=[{type:a.Component,args:[{selector:"file-upload-list-item",template:'\n <file-upload-icon [file]="file"></file-upload-icon>\n <div class="file-info">\n <span class="file-name">{{ file.name }}</span> ({{ calculateSize( file.size ) }})\n </div>\n <div class="file-buttons">\n <span class="remove-btn" (click)="removeFile(file)">\n <svg viewBox="0 0 96 96">\n <g>\n <path d="M40.5,66.8V39.3c0-0.4-0.1-0.7-0.4-0.9S39.6,38,39.3,38h-2.5c-0.4,0-0.7,0.1-0.9,0.4\n s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4h2.5c0.4,0,0.7-0.1,0.9-0.4S40.5,67.1,40.5,66.8z M50.5,66.8V39.3\n c0-0.4-0.1-0.7-0.4-0.9S49.6,38,49.3,38h-2.5c-0.4,0-0.7,0.1-0.9,0.4s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4\n h2.5c0.4,0,0.7-0.1,0.9-0.4S50.5,67.1,50.5,66.8z M60.5,66.8V39.3c0-0.4-0.1-0.7-0.4-0.9S59.6,38,59.3,38h-2.5\n c-0.4,0-0.7,0.1-0.9,0.4s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4h2.5c0.4,0,0.7-0.1,0.9-0.4\n S60.5,67.1,60.5,66.8z M39.3,28h17.5l-1.9-4.6c-0.2-0.2-0.4-0.4-0.7-0.4H41.8c-0.3,0.1-0.5,0.2-0.7,0.4L39.3,28z M75.5,29.3v2.5\n c0,0.4-0.1,0.7-0.4,0.9S74.6,33,74.3,33h-3.8v37c0,2.2-0.6,4-1.8,5.6S66,78,64.3,78H31.8c-1.7,0-3.2-0.8-4.4-2.3s-1.8-3.4-1.8-5.5\n V33h-3.8c-0.4,0-0.7-0.1-0.9-0.4s-0.4-0.5-0.4-0.9v-2.5c0-0.4,0.1-0.7,0.4-0.9s0.5-0.4,0.9-0.4h12.1l2.7-6.5c0.4-1,1.1-1.8,2.1-2.5\n s2-1,3.1-1h12.5c1,0,2.1,0.3,3.1,1s1.7,1.5,2.1,2.5l2.7,6.5h12.1c0.4,0,0.7,0.1,0.9,0.4S75.5,28.9,75.5,29.3z"/>\n </g>\n </svg> Remove</span>\n </div>\n ',styles:[':host{display:block;font-size:14px;color:#646464}:host:after{clear:both;content:"\\0A0";display:block;height:0;line-height:0;visibility:hidden;zoom:1}file-upload-icon{float:left;width:30px;height:36px;margin:0 10px 0 0}.file-info{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.remove-btn{font-size:12px;cursor:pointer}.remove-btn svg{display:inline-block;vertical-align:-20%;height:18px;width:18px}']}]}],t.ctorParameters=function(){return[{type:p}]},t.propDecorators={index:[{type:a.Input}],file:[{type:a.Input}],control:[{type:a.Input}]},t}(),D=function(){function t(t){this.fileUploadService=t,this.fileType="unknown"}return t.prototype.ngOnInit=function(){this.fileType=this.fileUploadService.getFileType(this.file)},t.prototype.isIcon=function(t){switch(t){case"text":return"html"===this.fileType||"css"===this.fileType||"csv"===this.fileType||"js"===this.fileType||"pdf"===this.fileType||"ppt"===this.fileType||"xls"===this.fileType||"xlsx"===this.fileType||"xml"===this.fileType||"doc"===this.fileType||"docx"===this.fileType;case"audio":return"aac"===this.fileType||"midi"===this.fileType||"oga"===this.fileType||"wav"===this.fileType||"weba"===this.fileType;case"image":return"png"===this.fileType||"bmp"===this.fileType||"gif"===this.fileType||"jpg"===this.fileType||"svg"===this.fileType||"webp"===this.fileType||"ico"===this.fileType;case"video":return"avi"===this.fileType||"mpeg"===this.fileType||"ogv"===this.fileType||"webm"===this.fileType||"3gp"===this.fileType||"3g2"===this.fileType}},t.decorators=[{type:a.Component,args:[{selector:"file-upload-icon",template:'\r\n\r\n<ng-container [ngSwitch]="true">\r\n\r\n <svg *ngSwitchDefault viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase="isIcon(\'image\')" viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M65.1,58.7v10.7H30.9V63l6.4-6.4l4.3,4.3L54.4,48L65.1,58.7z M37.3,52.3c-1.8,0-3.3-0.6-4.6-1.9c-1.3-1.2-1.9-2.8-1.9-4.6\r\n c0-1.8,0.6-3.3,1.9-4.6c1.3-1.2,2.8-1.9,4.6-1.9s3.3,0.6,4.6,1.9c1.3,1.3,1.9,2.8,1.9,4.6c0,1.8-0.6,3.3-1.9,4.6\r\n C40.6,51.7,39.1,52.3,37.3,52.3z"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase="isIcon(\'audio\')" viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M43,46.5c0.4,0.2,0.7,0.5,0.7,1v18.2c0,0.5-0.2,0.8-0.7,1c-0.2,0-0.3,0.1-0.4,0.1c-0.3,0-0.5-0.1-0.8-0.3l-5.6-5.6h-4.4\r\n c-0.3,0-0.6-0.1-0.8-0.3c-0.2-0.2-0.3-0.5-0.3-0.8v-6.4c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3h4.4l5.6-5.6\r\n C42.2,46.4,42.6,46.3,43,46.5z M57,69.5c0.7,0,1.3-0.3,1.7-0.8c2.9-3.5,4.3-7.6,4.3-12.2s-1.4-8.6-4.3-12.2\r\n c-0.4-0.5-0.8-0.7-1.4-0.8c-0.6-0.1-1.1,0.1-1.6,0.5c-0.5,0.4-0.7,0.9-0.8,1.5c-0.1,0.6,0.1,1.1,0.5,1.6c2.2,2.7,3.3,5.9,3.3,9.4\r\n c0,3.5-1.1,6.7-3.3,9.4c-0.4,0.5-0.5,1-0.5,1.6c0.1,0.6,0.3,1.1,0.8,1.4C56.1,69.4,56.5,69.5,57,69.5z M49.9,64.6\r\n c0.6,0,1.1-0.2,1.6-0.7c1.9-2.1,2.9-4.5,2.9-7.3s-1-5.3-2.9-7.3c-0.4-0.4-0.9-0.6-1.5-0.7c-0.6,0-1.1,0.2-1.5,0.6s-0.6,0.9-0.7,1.5\r\n c0,0.6,0.2,1.1,0.6,1.6c1.2,1.3,1.7,2.7,1.7,4.4c0,1.7-0.6,3.1-1.7,4.4c-0.4,0.4-0.6,1-0.6,1.6c0,0.6,0.2,1.1,0.7,1.5\r\n C48.9,64.4,49.4,64.6,49.9,64.6z"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase="isIcon(\'text\')" viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M35.1,44.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3h23.6c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.5,0.3,0.8v2.1\r\n c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3c-0.2-0.2-0.3-0.5-0.3-0.8V44.8z M59.8,52.3\r\n c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.5,0.3,0.8v2.1c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3\r\n c-0.2-0.2-0.3-0.5-0.3-0.8v-2.1c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3H59.8z M59.8,60.9c0.3,0,0.6,0.1,0.8,0.3\r\n c0.2,0.2,0.3,0.5,0.3,0.8v2.1c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3\r\n c-0.2-0.2-0.3-0.5-0.3-0.8v-2.1c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3H59.8z"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase="isIcon(\'video\')" viewBox="0 0 96 96">\r\n <g>\r\n <path d="M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M48,43.7c1.2,0,2.2,0.4,3,1.3c0.8,0.8,1.3,1.9,1.3,3v12.9c0,1.2-0.4,2.2-1.3,3c-0.8,0.8-1.9,1.3-3,1.3H35.1c-1.2,0-2.2-0.4-3-1.3\r\n c-0.8-0.8-1.3-1.9-1.3-3V48c0-1.2,0.4-2.2,1.3-3c0.8-0.8,1.9-1.3,3-1.3H48z M64.5,43.8c0.4,0.2,0.7,0.5,0.7,1v19.3\r\n c0,0.5-0.2,0.8-0.7,1c-0.2,0-0.3,0.1-0.4,0.1c-0.3,0-0.6-0.1-0.8-0.3l-8.9-8.9v-3l8.9-8.9c0.2-0.2,0.5-0.3,0.8-0.3\r\n C64.2,43.7,64.3,43.7,64.5,43.8z"/>\r\n </g>\r\n </svg>\r\n\r\n</ng-container>',styles:[":host{display:block;border:1px solid #eaeaea;border-radius:4px}:host svg{fill:#909293}"]}]}],t.ctorParameters=function(){return[{type:p}]},t.propDecorators={file:[{type:a.Input}]},t}(),E=function(){function t(t,e,n,i){var o=this;this.fileUploadService=t,this.hostElementRef=e,this.renderer=n,this.document=i,this.control=null,this.templateRef=null,this.hooks=[],this.subscriptions=[],this.onTouch=function(){o.renderer.addClass(o.hostElementRef.nativeElement,C)}}return t.prototype.ngOnInit=function(){d(this.control)&&(this.control=new y)},t.prototype.ngAfterViewInit=function(){this.fileUploadService.isFileDragDropAvailable()&&(this.setEvents(),this.checkAndMarkAsDisabled())},t.prototype.ngOnDestroy=function(){this.hooks.forEach(function(t){return t()}),this.hooks.length=0,this.subscriptions.forEach(function(t){return t.unsubscribe()}),this.subscriptions.length=0},Object.defineProperty(t.prototype,"hasFiles",{get:function(){return this.control.isListVisible&&0<this.control.size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return!this.control.disabled&&this.control.invalid},enumerable:!0,configurable:!0}),t.prototype.setEvents=function(){var n=this;["drag","dragstart","dragend","dragover","dragenter","dragleave","drop"].forEach(function(t){n.hooks.push(n.renderer.listen(n.document,t,function(t){return n.preventDragEvents(t)}))}),["dragover","dragenter"].forEach(function(t){n.hooks.push(n.renderer.listen(n.hostElementRef.nativeElement,t,function(t){return n.onDragOver(t)}))}),["dragleave","dragend","drop"].forEach(function(e){n.hooks.push(n.renderer.listen(n.hostElementRef.nativeElement,e,function(t){(n.control.disabled&&"dragleave"===e||"dragleave"!==e)&&n.onDragLeave(t)}))}),["dragleave"].forEach(function(t){n.hooks.push(n.renderer.listen(n.overlay.nativeElement,t,function(t){return n.onDragLeave(t)}))}),this.subscriptions.push(this.control.statusChanges.subscribe(function(t){return n.checkAndMarkAsDisabled()}))},t.prototype.checkAndMarkAsDisabled=function(){this.control.disabled?this.renderer.addClass(this.hostElementRef.nativeElement,"disabled"):this.renderer.removeClass(this.hostElementRef.nativeElement,"disabled")},t.prototype.preventDragEvents=function(t){t.preventDefault(),t.stopPropagation()},t.prototype.onDragOver=function(t){this.renderer.addClass(this.hostElementRef.nativeElement,x)},t.prototype.onDragLeave=function(t){this.renderer.removeClass(this.hostElementRef.nativeElement,x)},t.prototype.onDrop=function(t){if(!this.control.disabled){var e=t.dataTransfer.files;this.control.addFiles(e),this.onTouch()}},t.decorators=[{type:a.Component,args:[{selector:"[file-drop-zone]",template:'\n <ng-content></ng-content>\n <div #overlay class="overlay" *ngIf="fileUploadService.isFileDragDropAvailable()">\n\n <div class="upload-input">\n <ng-container *ngTemplateOutlet="templateRef ? templateRef : defaultTemplate"></ng-container>\n\n <ng-template #defaultTemplate>\n <div class="icon">\n <svg viewBox="0 0 96 96">\n <g>\n <path d="M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z"/>\n </g>\n </svg>\n </div>\n \n <div class="upload-text">\n <b>Drop</b> it here\n </div>\n </ng-template>\n </div>\n </div>\n ',providers:[p],styles:[":host{position:relative;display:block}:host .overlay{display:none;background:rgba(255,255,255,.8);outline:#92b0b3 dashed 2px;outline-offset:-10px;position:absolute;top:0;left:0;right:0;bottom:0}:host(.dragover:not(.disabled)) .overlay{display:block}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;margin:0 auto 10px}:host /deep/ .icon svg{fill:#80a9d2}.upload-input{pointer-events:none;cursor:pointer;display:inline-block;color:#80a9d2;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.15s ease-in-out}"]}]}],t.ctorParameters=function(){return[{type:p},{type:a.ElementRef},{type:a.Renderer2},{type:undefined,decorators:[{type:a.Inject,args:[i.DOCUMENT]}]}]},t.propDecorators={control:[{type:a.Input}],overlay:[{type:a.ViewChild,args:["overlay"]}],templateRef:[{type:a.ContentChild,args:["placeholder"]}],hasFiles:[{type:a.HostBinding,args:["class.has-files"]}],isInvalid:[{type:a.HostBinding,args:["class.ng-invalid"]}],onDrop:[{type:a.HostListener,args:["drop",["$event"]]}]},t}(),V=function(r){function t(t,e,n,i){var o=r.call(this,e,n,i)||this;return o.fileUploadService=t,o.control=null,o.buttonRef=null,o.placeholderRef=null,o.onTouch=function(){o.renderer.addClass(o.hostElementRef.nativeElement,C)},o}return l(t,r),Object.defineProperty(t.prototype,"hasFiles",{get:function(){return this.control.isListVisible&&0<this.control.size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return!this.control.disabled&&this.control.invalid},enumerable:!0,configurable:!0}),t.prototype.onInputChange=function(t){var e=t.target;!this.control.disabled&&0<e.files.length&&(this.control.setValue(Array.from(e.files)),this.clearInputEl()),this.onTouch()},t.prototype.clearInputEl=function(){this.input.nativeElement.value=null},t.prototype.writeValue=function(t){null!=t&&this.control.setValue(t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouch=t},t.prototype.setDisabledState=function(t){this.control.disable(t)},t.prototype.onKeyDown=function(t){13!==t.keyCode&&32!==t.keyCode||(t.preventDefault(),this.control.click())},t.decorators=[{type:a.Component,args:[{selector:"file-upload[simple]",template:'<div class="upload-text">\r\n <ng-template [ngIf]="control.valueChanges | async">\r\n <ng-container *ngTemplateOutlet="placeholderRef ? placeholderRef : defaultPlaceholderTemplate; context: { $implicit: control.value[0], control: control, file: control.value[0] }"></ng-container>\r\n </ng-template>\r\n \r\n <ng-template #defaultPlaceholderTemplate let-file>\r\n <span *ngIf="file; else emptyList" class="file-name">{{ file.name }}</span>\r\n\r\n <ng-template #emptyList>\r\n Select a file...\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n\r\n<label #labelRef class="upload-button" tabindex="0" (keydown)="onKeyDown($event)">\r\n <ng-container *ngTemplateOutlet="buttonRef ? buttonRef : defaultButtonTemplate; context: { control: control }"></ng-container>\r\n\r\n <ng-template #defaultButtonTemplate>\r\n <div class="button">\r\n <div class="icon">\r\n <svg viewBox="0 0 96 96">\r\n <g>\r\n <path d="M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\r\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\r\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\r\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\r\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\r\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\r\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\r\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\r\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z"/>\r\n </g>\r\n </svg>\r\n </div>\r\n \r\n <span class="button-text">Browse</span>\r\n </div>\r\n </ng-template>\r\n\r\n <input #inputRef type="file" class="files-input" tabindex="-1" (change)="onInputChange($event)">\r\n</label>',providers:[p,{provide:o.NG_VALUE_ACCESSOR,useExisting:a.forwardRef(function(){return t}),multi:!0}],changeDetection:a.ChangeDetectionStrategy.OnPush,styles:[":host,:host>*{box-sizing:border-box}:host{display:flex;line-height:1.5;color:#555;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:inset 0 4px 7px rgba(0,0,0,.05)}:host(.disabled){opacity:.5}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:24px;width:24px;display:inline-block}.icon svg{fill:#555}.upload-button{cursor:pointer;display:block;padding:2px 4px;background-color:#eee;border-left:1px solid #ddd;border-radius:0 4px 4px 0;min-width:100px;color:#555;margin:0;position:relative;outline:0}.upload-text{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;padding:5px 10px;font-size:14px;height:30px}.button-text{vertical-align:middle;padding-left:10px}:host(.disabled) .upload-button{cursor:not-allowed}:host(:not(.disabled)) .upload-button:focus,:host(:not(.disabled)) .upload-button:hover{color:#80a9d2}:host(:not(.disabled)) .upload-button:focus svg,:host(:not(.disabled)) .upload-button:hover svg{fill:#80a9d2}"]}]}],t.ctorParameters=function(){return[{type:p},{type:a.ElementRef},{type:a.Renderer2},{type:a.ChangeDetectorRef}]},t.propDecorators={control:[{type:a.Input}],buttonRef:[{type:a.ContentChild,args:["button"]}],placeholderRef:[{type:a.ContentChild,args:["placeholder"]}],input:[{type:a.ViewChild,args:["inputRef"]}],label:[{type:a.ViewChild,args:["labelRef"]}],hasFiles:[{type:a.HostBinding,args:["class.has-files"]}],isInvalid:[{type:a.HostBinding,args:["class.ng-invalid"]}]},t}(b),A=function(t,e,n){return void 0===n&&(n=0),!d(e)&&t.size>e||t.size<n?{maxSize:e,minSize:n,actual:t.size,file:t}:null},I=/(^[.]\w*)$/m,S=function(t,e){var n,i,o="."+t.name.split(".").pop();try{for(var r=function l(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}(e),s=r.next();!s.done;s=r.next()){var a=s.value;if(I.test(a)?a===o:new RegExp(a).test(t.type))return null}}catch(c){n={error:c}}finally{try{s&&!s.done&&(i=r["return"])&&i.call(r)}finally{if(n)throw n.error}}return{allowedTypes:e,actual:t.type,file:t}},T=function(t){if(!Array.isArray(t))throw Error("FormControl.setValue was provided with wrong argument type, "+t+" was provided instead Array<File>")},R=function(){function t(){}return t.fileSize=function(i){return function(t){var e=t.value;if(d(e))return null;T(e);var n=e.map(function(t){return A(t,i)}).filter(function(t){return t});return 0<n.length?{fileSize:n}:null}},t.sizeRange=function(t){var i=t.minSize,o=t.maxSize;return function(t){var e=t.value;if(d(e))return null;T(e);var n=e.map(function(t){return A(t,o,i)}).filter(function(t){return t});return 0<n.length?{sizeRange:n}:null}},t.filesLimit=function(n){return function(t){var e=t.value;return d(e)?null:(T(e),e.length>n?{filesLimit:{max:n,actual:e.length}}:null)}},t.accept=function(i){return function(t){var e=t.value;if(d(e))return null;T(e);var n=e.map(function(t){return S(t,i)}).filter(function(t){return t});return 0<n.length?{fileTypes:n}:null}},t}(),k=function(){function t(){}return t.prototype.ngOnChanges=function(t){("filesize"in t||"maxsize"in t||"minsize"in t)&&(this._createValidator(),this.onChange&&this.onChange())},t.prototype.validate=function(t){return this.validator(t)},t.prototype.registerOnValidatorChange=function(t){this.onChange=t},t.prototype._createValidator=function(){var t=null;d(this.maxsize)?d(this.filesize)||(t="string"==typeof this.filesize?parseInt(this.filesize,10):this.filesize):t="string"==typeof this.maxsize?parseInt(this.maxsize,10):this.maxsize;var e="string"==typeof this.minsize?parseInt(this.minsize,10):this.minsize;this.validator=R.sizeRange({maxSize:t,minSize:e})},t.decorators=[{type:a.Directive,args:[{selector:"[filesize][formControlName],[filesize][formControl],[filesize][ngModel],\n [minsize][formControlName],[minsize][formControl],[minsize][ngModel],\n [maxsize][formControlName],[maxsize][formControl],[maxsize][ngModel]",providers:[{provide:o.NG_VALIDATORS,useExisting:a.forwardRef(function(){return t}),multi:!0}],host:{"[attr.filesize]":"filesize ? filesize : null","[attr.minsize]":"minsize ? minsize : null","[attr.maxsize]":"maxsize ? maxsize : null"}}]}],t.propDecorators={filesize:[{type:a.Input}],minsize:[{type:a.Input}],maxsize:[{type:a.Input}]},t}(),L=function(){function t(){}return t.prototype.ngOnChanges=function(t){"fileslimit"in t&&(this._createValidator(),this.onChange&&this.onChange())},t.prototype.validate=function(t){return null!=this.fileslimit?this.validator(t):null},t.prototype.registerOnValidatorChange=function(t){this.onChange=t},t.prototype._createValidator=function(){this.validator=R.filesLimit("string"==typeof this.fileslimit?parseInt(this.fileslimit,10):this.fileslimit)},t.decorators=[{type:a.Directive,args:[{selector:"[fileslimit][formControlName],[fileslimit][formControl],[fileslimit][ngModel]",providers:[{provide:o.NG_VALIDATORS,useExisting:a.forwardRef(function(){return t}),multi:!0}],host:{"[attr.fileslimit]":"fileslimit ? fileslimit : null"}}]}],t.propDecorators={fileslimit:[{type:a.Input}]},t}(),M=function(){function t(){}return t.prototype.ngOnChanges=function(t){"accept"in t&&(this._createValidator(),this.onChange&&this.onChange())},t.prototype.validate=function(t){return null!=this.accept?this.validator(t):null},t.prototype.registerOnValidatorChange=function(t){this.onChange=t},t.prototype._createValidator=function(){this.validator=R.accept(this.accept.split(","))},t.decorators=[{type:a.Directive,args:[{selector:"[accept][formControlName],[accept][formControl],[accept][ngModel]",providers:[{provide:o.NG_VALIDATORS,useExisting:a.forwardRef(function(){return t}),multi:!0}],host:{"[attr.accept]":"accept ? accept : null"}}]}],t.propDecorators={accept:[{type:a.Input}]},t}(),O=function(){function t(t){this.fileUpload=t}return t.prototype.ngAfterViewInit=function(){this.setAccept(this.accept)},t.prototype.ngOnChanges=function(t){"accept"in t&&t.accept.currentValue!==t.accept.previousValue&&this.setAccept(this.accept)},t.prototype.setAccept=function(t){this.fileUpload&&this.fileUpload.control&&this.fileUpload.control.acceptFiles(t)},t.decorators=[{type:a.Directive,args:[{selector:"file-upload[accept]"}]}],t.ctorParameters=function(){return[{type:z,decorators:[{type:a.Optional},{type:a.Host},{type:a.Self}]}]},t.propDecorators={accept:[{type:a.Input}]},t}(),F=function(){function t(t){this.injector=t}return t.prototype.ngDoBootstrap=function(){},t.decorators=[{type:a.NgModule,args:[{imports:[i.CommonModule,o.ReactiveFormsModule,o.FormsModule],declarations:[z,w,D,E,k,L,M,O,V],exports:[z,E,k,L,M,O,V],entryComponents:[z]}]}],t.ctorParameters=function(){return[{type:a.Injector}]},t}();t.FileUploadControl=y,t.FileUploadValidators=R,t.FileUploadTypes=c,t.FileUploadModule=F,t.ɵe=u,t.ɵd=h,t.ɵb=b,t.ɵh=E,t.ɵg=D,t.ɵf=w,t.ɵa=z,t.ɵm=V,t.ɵl=O,t.ɵi=k,t.ɵk=M,t.ɵj=L,t.ɵc=p,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=iplab-ngx-file-upload.umd.min.js.map

@@ -1,2 +0,2 @@

import { OnInit, ElementRef, Renderer2, OnDestroy, TemplateRef, ChangeDetectorRef } from '@angular/core';
import { ElementRef, Renderer2, TemplateRef, ChangeDetectorRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';

@@ -6,10 +6,8 @@ import { AnimationEvent } from '@angular/animations';

import { FileUploadService } from './../services/file-upload.service';
import { FileUploadAbstract } from './file-upload-abstract.component';
export declare const DRAGOVER = "dragover";
export declare const TOUCHED = "ng-touched";
export declare class FileUploadComponent implements OnInit, OnDestroy, ControlValueAccessor {
export declare class FileUploadComponent extends FileUploadAbstract implements ControlValueAccessor {
fileUploadService: FileUploadService;
private hostElementRef;
private renderer;
private document;
private cdr;
control: FileUploadControl;

@@ -27,13 +25,7 @@ templateRef: TemplateRef<any>;

listVisible: boolean;
private hooks;
private subscriptions;
constructor(fileUploadService: FileUploadService, hostElementRef: ElementRef, renderer: Renderer2, document: any, cdr: ChangeDetectorRef);
ngOnInit(): void;
ngOnDestroy(): void;
readonly hasFiles: boolean;
readonly isInvalid: boolean;
private setEvents;
private triggerEvent;
protected setEvents(): void;
onKeyDown(event: KeyboardEvent): void;
private checkAndMarkAsDisabled;
private preventDragEvents;

@@ -56,10 +48,5 @@ private renderView;

/**
* ControlValueAccessor implementation
*/
private connectToForm;
/**
* model -> view changes
*/
writeValue(files: any): void;
private onChange;
/**

@@ -66,0 +53,0 @@ * register function which will be called on UI change

@@ -1,10 +0,8 @@

import { OnInit, ElementRef, Renderer2, OnDestroy, TemplateRef, ChangeDetectorRef } from '@angular/core';
import { ElementRef, Renderer2, TemplateRef, ChangeDetectorRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { FileUploadControl } from './../helpers/control.class';
import { FileUploadService } from './../services/file-upload.service';
export declare class SimpleFileUploadComponent implements OnInit, OnDestroy, ControlValueAccessor {
import { FileUploadAbstract } from './file-upload-abstract.component';
export declare class SimpleFileUploadComponent extends FileUploadAbstract implements ControlValueAccessor {
fileUploadService: FileUploadService;
private hostElementRef;
private renderer;
private cdr;
control: FileUploadControl;

@@ -15,21 +13,11 @@ buttonRef: TemplateRef<any>;

label: ElementRef<HTMLLabelElement>;
private subscriptions;
constructor(fileUploadService: FileUploadService, hostElementRef: ElementRef, renderer: Renderer2, cdr: ChangeDetectorRef);
ngOnInit(): void;
ngOnDestroy(): void;
readonly hasFiles: boolean;
readonly isInvalid: boolean;
private setEvents;
private checkAndMarkAsDisabled;
onInputChange(event: Event): void;
private clearInputEl;
/**
* ControlValueAccessor implementation
*/
private connectToForm;
/**
* model -> view changes
*/
writeValue(files: any): void;
private onChange;
/**

@@ -43,4 +31,3 @@ * register function which will be called on UI change

setDisabledState(isDisabled: boolean): void;
private triggerEvent;
onKeyDown(event: KeyboardEvent): void;
}

@@ -9,6 +9,6 @@ /**

import { FileUploadControl } from './../helpers/control.class';
import { IsNullOrEmpty } from './../helpers/helpers.class';
import { FileUploadService } from './../services/file-upload.service';
import { InsertAnimation } from './../animations/insert.animation';
import { ZoomAnimation } from './../animations/zoom.animation';
import { FileUploadAbstract } from './file-upload-abstract.component';
/** @type {?} */

@@ -18,3 +18,3 @@ export const DRAGOVER = 'dragover';

export const TOUCHED = 'ng-touched';
export class FileUploadComponent {
export class FileUploadComponent extends FileUploadAbstract {
/**

@@ -28,7 +28,5 @@ * @param {?} fileUploadService

constructor(fileUploadService, hostElementRef, renderer, document, cdr) {
super(hostElementRef, renderer, cdr);
this.fileUploadService = fileUploadService;
this.hostElementRef = hostElementRef;
this.renderer = renderer;
this.document = document;
this.cdr = cdr;
this.control = null;

@@ -46,8 +44,2 @@ this.templateRef = null;

this.listVisible = false;
this.hooks = [];
this.subscriptions = [];
this.onChange = (/**
* @return {?}
*/
() => { });
this.onTouch = (/**

@@ -63,31 +55,2 @@ * @return {?}

*/
ngOnInit() {
if (IsNullOrEmpty(this.control)) {
this.control = new FileUploadControl();
}
this.setEvents();
this.checkAndMarkAsDisabled();
this.connectToForm();
}
/**
* @return {?}
*/
ngOnDestroy() {
this.cdr.detach();
this.hooks.forEach((/**
* @param {?} hook
* @return {?}
*/
(hook) => hook()));
this.hooks.length = 0;
this.subscriptions.forEach((/**
* @param {?} subscription
* @return {?}
*/
(subscription) => subscription.unsubscribe()));
this.subscriptions.length = 0;
}
/**
* @return {?}
*/
get hasFiles() {

@@ -103,6 +66,7 @@ return this.control.isListVisible && this.control.size > 0;

/**
* @private
* @protected
* @return {?}
*/
setEvents() {
super.setEvents();
['drag', 'dragstart', 'dragend', 'dragover', 'dragenter', 'dragleave', 'drop'].forEach((/**

@@ -141,7 +105,2 @@ * @param {?} eventName

}));
this.subscriptions.push(this.control.statusChanges.subscribe((/**
* @param {?} status
* @return {?}
*/
(status) => this.checkAndMarkAsDisabled())));
this.subscriptions.push(this.control.valueChanges.subscribe((/**

@@ -157,22 +116,7 @@ * @param {?} files

(status) => this.toggleListVisibility())));
this.subscriptions.push(this.control.eventsChanges.subscribe((/**
* @param {?} event
* @return {?}
*/
(event) => this.triggerEvent(event))));
}
/**
* @private
* @param {?} event
* @return {?}
*/
triggerEvent(event) {
if (typeof this.label.nativeElement[event] === 'function') {
this.label.nativeElement[event]();
}
}
/**
* @param {?} event
* @return {?}
*/
onKeyDown(event) {

@@ -186,16 +130,2 @@ if (event.keyCode === 13 || event.keyCode === 32) {

* @private
* @return {?}
*/
checkAndMarkAsDisabled() {
if (this.control.disabled) {
this.renderer.addClass(this.hostElementRef.nativeElement, 'disabled');
this.renderer.setProperty(this.input.nativeElement, 'disabled', true);
}
else {
this.renderer.removeClass(this.hostElementRef.nativeElement, 'disabled');
this.renderer.setProperty(this.input.nativeElement, 'disabled', false);
}
}
/**
* @private
* @param {?} event

@@ -298,14 +228,2 @@ * @return {?}

/**
* ControlValueAccessor implementation
* @private
* @return {?}
*/
connectToForm() {
this.subscriptions.push(this.control.valueChanges.subscribe((/**
* @param {?} v
* @return {?}
*/
(v) => this.onChange(v))));
}
/**
* model -> view changes

@@ -444,17 +362,2 @@ * @param {?} files

*/
FileUploadComponent.prototype.hooks;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.subscriptions;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.onChange;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.onTouch;

@@ -467,19 +370,4 @@ /** @type {?} */

*/
FileUploadComponent.prototype.hostElementRef;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.renderer;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.document;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.cdr;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFFTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFFVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFJekUsT0FBTyxFQUFFLGlCQUFpQixFQUFhLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRS9ELE1BQU0sT0FBTyxRQUFRLEdBQUcsVUFBVTs7QUFDbEMsTUFBTSxPQUFPLE9BQU8sR0FBRyxZQUFZO0FBb0JuQyxNQUFNLE9BQU8sbUJBQW1COzs7Ozs7OztJQThCNUIsWUFDVyxpQkFBb0MsRUFDbkMsY0FBMEIsRUFDMUIsUUFBbUIsRUFDRCxRQUFRLEVBQzFCLEdBQXNCO1FBSnZCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQVk7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNELGFBQVEsR0FB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QXhLaEMsc0NBQ3lDOztJQUV6QywwQ0FDNEM7O0lBRTVDLHVDQUN5Qzs7SUFFekMsb0NBQzJDOztJQUUzQyxvQ0FDMkM7O0lBRTNDLDhDQUdFOzs7OztJQUdGLHVDQUE0RDs7SUFDNUQsMENBQW9DOzs7OztJQUVwQyxvQ0FBb0M7Ozs7O0lBRXBDLDRDQUFnRDs7Ozs7SUF5TGhELHVDQUFzRDs7Ozs7SUFVdEQsc0NBRUU7O0lBbE1FLGdEQUEyQzs7Ozs7SUFDM0MsNkNBQWtDOzs7OztJQUNsQyx1Q0FBMkI7Ozs7O0lBQzNCLHVDQUFrQzs7Ozs7SUFDbEMsa0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIFJlbmRlcmVyMixcclxuICAgIE9uRGVzdHJveSxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29udHJvbCwgRmlsZUV2ZW50IH0gZnJvbSAnLi8uLi9oZWxwZXJzL2NvbnRyb2wuY2xhc3MnO1xyXG5pbXBvcnQgeyBJc051bGxPckVtcHR5IH0gZnJvbSAnLi8uLi9oZWxwZXJzL2hlbHBlcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gJy4vLi4vc2VydmljZXMvZmlsZS11cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7IEluc2VydEFuaW1hdGlvbiB9IGZyb20gJy4vLi4vYW5pbWF0aW9ucy9pbnNlcnQuYW5pbWF0aW9uJztcclxuaW1wb3J0IHsgWm9vbUFuaW1hdGlvbiB9IGZyb20gJy4vLi4vYW5pbWF0aW9ucy96b29tLmFuaW1hdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3QgRFJBR09WRVIgPSAnZHJhZ292ZXInO1xyXG5leHBvcnQgY29uc3QgVE9VQ0hFRCA9ICduZy10b3VjaGVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IGBmaWxlLXVwbG9hZDpub3QoW3NpbXBsZV0pYCxcclxuICAgIHRlbXBsYXRlVXJsOiBgLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbGAsXHJcbiAgICBzdHlsZVVybHM6IFtgLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2Nzc2BdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgRmlsZVVwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVVwbG9hZENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIFpvb21BbmltYXRpb24sXHJcbiAgICAgICAgSW5zZXJ0QW5pbWF0aW9uXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNvbnRyb2w6IEZpbGVVcGxvYWRDb250cm9sID0gbnVsbDtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKCdwbGFjZWhvbGRlcicpXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ2l0ZW0nKVxyXG4gICAgcHVibGljIGxpc3RJdGVtOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXHJcbiAgICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbGFiZWxSZWYnKVxyXG4gICAgcHVibGljIGxhYmVsOiBFbGVtZW50UmVmPEhUTUxMYWJlbEVsZW1lbnQ+O1xyXG5cclxuICAgIHB1YmxpYyB0ZW1wbGF0ZUNvbnRleHQgPSB7XHJcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmlzRmlsZURyYWdEcm9wQXZhaWxhYmxlKCksXHJcbiAgICAgICAgaXNGaWxlRHJhZ0Ryb3BBdmFpbGFibGU6IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UuaXNGaWxlRHJhZ0Ryb3BBdmFpbGFibGUoKVxyXG4gICAgfTtcclxuXHJcbiAgICAvKiogYW5pbWF0aW9uIGZpZWxkcyAqL1xyXG4gICAgcHVibGljIHpvb21UZXh0OiAnem9vbU91dCcgfCAnem9vbUluJyB8ICdzdGF0aWMnID0gJ3N0YXRpYyc7XHJcbiAgICBwdWJsaWMgbGlzdFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIGhvb2tzOiBBcnJheTxGdW5jdGlvbj4gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaG9zdEVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHt9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmIChJc051bGxPckVtcHR5KHRoaXMuY29udHJvbCkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gbmV3IEZpbGVVcGxvYWRDb250cm9sKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldEV2ZW50cygpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbmRNYXJrQXNEaXNhYmxlZCgpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdFRvRm9ybSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNkci5kZXRhY2goKTtcclxuICAgICAgICB0aGlzLmhvb2tzLmZvckVhY2goKGhvb2spID0+IGhvb2soKSk7XHJcbiAgICAgICAgdGhpcy5ob29rcy5sZW5ndGggPSAwO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1maWxlcycpXHJcbiAgICBwdWJsaWMgZ2V0IGhhc0ZpbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaXNMaXN0VmlzaWJsZSAmJiB0aGlzLmNvbnRyb2wuc2l6ZSA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZy1pbnZhbGlkJylcclxuICAgIHB1YmxpYyBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5jb250cm9sLmRpc2FibGVkICYmIHRoaXMuY29udHJvbC5pbnZhbGlkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0RXZlbnRzKCk6IHZvaWQge1xyXG4gICAgICAgIFsnZHJhZycsICdkcmFnc3RhcnQnLCAnZHJhZ2VuZCcsICdkcmFnb3ZlcicsICdkcmFnZW50ZXInLCAnZHJhZ2xlYXZlJywgJ2Ryb3AnXS5mb3JFYWNoKChldmVudE5hbWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ob29rcy5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgZXZlbnROYW1lLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5wcmV2ZW50RHJhZ0V2ZW50cyhldmVudCkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIFsnZHJhZ292ZXInLCAnZHJhZ2VudGVyJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9va3MucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkRyYWdPdmVyKGV2ZW50KSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgWydkcmFnbGVhdmUnLCAnZHJhZ2VuZCcsICdkcm9wJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9va3MucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkRyYWdMZWF2ZShldmVudCkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4gdGhpcy5jaGVja0FuZE1hcmtBc0Rpc2FibGVkKCkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChmaWxlcykgPT4gdGhpcy5yZW5kZXJWaWV3KCkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5saXN0VmlzaWJpbGl0eUNoYW5nZXMuc3Vic2NyaWJlKChzdGF0dXMpID0+IHRoaXMudG9nZ2xlTGlzdFZpc2liaWxpdHkoKSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLmV2ZW50c0NoYW5nZXMuc3Vic2NyaWJlKChldmVudDogRmlsZUV2ZW50KSA9PiB0aGlzLnRyaWdnZXJFdmVudChldmVudCkpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRyaWdnZXJFdmVudChldmVudDogRmlsZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxhYmVsLm5hdGl2ZUVsZW1lbnRbZXZlbnRdID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWwubmF0aXZlRWxlbWVudFtldmVudF0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXlDb2RlID09PSAzMikge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0FuZE1hcmtBc0Rpc2FibGVkKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgdHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByZXZlbnREcmFnRXZlbnRzKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVuZGVyVmlldygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMubGlzdFZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy56b29tVGV4dCA9IHRoaXMuY29udHJvbC5pc0xpc3RWaXNpYmxlICYmIHRoaXMuY29udHJvbC5zaXplID4gMCA/ICd6b29tT3V0JyA6ICdzdGF0aWMnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3dMaXN0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnpvb21UZXh0ICE9PSAnc3RhdGljJykge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoaWRlTGlzdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0b2dnbGVMaXN0VmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gdGhpcy5jb250cm9sLmlzTGlzdFZpc2libGUgJiYgdGhpcy5jb250cm9sLnNpemUgPiAwO1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGlzdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSAnc3RhdGljJztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBvbiBmaWxlIG92ZXIgYWRkIGNsYXNzIG5hbWVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgRFJBR09WRVIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogb24gbW91c2Ugb3V0IHJlbW92ZSBjbGFzcyBuYW1lXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBEUkFHT1ZFUik7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXHJcbiAgICBwdWJsaWMgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLmFkZEZpbGVzKGZpbGVzKTtcclxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IChldmVudC50YXJnZXQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmRpc2FibGVkICYmIGlucHV0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLmFkZEZpbGVzKGlucHV0LmZpbGVzKTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhcklucHV0RWwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2xlYXJJbnB1dEVsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNvbm5lY3RUb0Zvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2KSA9PiB0aGlzLm9uQ2hhbmdlKHYpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgIC8qKlxyXG4gICAgICAqIG1vZGVsIC0+IHZpZXcgY2hhbmdlc1xyXG4gICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUoZmlsZXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChmaWxlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmaWxlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh2OiBBcnJheTxGaWxlPikgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVnaXN0ZXIgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgb24gVUkgY2hhbmdlXHJcbiAgICAgKiB0byB1cGRhdGUgdmlldyAtPiBtb2RlbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IEFycmF5PEZpbGU+KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgVE9VQ0hFRCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKGlzRGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB6b29tQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmlzTGlzdFZpc2libGUgJiYgdGhpcy5jb250cm9sLnNpemUgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0xpc3QoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGVMaXN0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXZlbnQuZnJvbVN0YXRlID09PSAnc3RhdGljJyAmJiBldmVudC50b1N0YXRlID09PSAnem9vbU91dCcpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoaWRlLXRleHQnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hpZGUtdGV4dCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd6b29tSW4nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSAnc3RhdGljJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFuaW1hdGlvbkxpc3RGaW5pc2hlZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSAnem9vbUluJztcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsaXN0LXZpc2libGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ3ZvaWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSAnc3RhdGljJztcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsaXN0LXZpc2libGUnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFFTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFHekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFdEUsTUFBTSxPQUFPLFFBQVEsR0FBRyxVQUFVOztBQUNsQyxNQUFNLE9BQU8sT0FBTyxHQUFHLFlBQVk7QUFvQm5DLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7Ozs7Ozs7O0lBMEJ2RCxZQUNXLGlCQUFvQyxFQUMzQyxjQUEwQixFQUMxQixRQUFtQixFQUNPLFFBQVEsRUFDbEMsR0FBc0I7UUFFdEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFOOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtR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LFVBQVU7dUJBc0JwQixXQUFXLFNBQUMsaUJBQWlCO3dCQUs3QixXQUFXLFNBQUMsa0JBQWtCO3FCQXNGOUIsWUFBWSxTQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7OztJQTdIaEMsc0NBQ3lDOztJQUV6QywwQ0FDNEM7O0lBRTVDLHVDQUN5Qzs7SUFFekMsb0NBQzJDOztJQUUzQyxvQ0FDMkM7O0lBRTNDLDhDQUdFOzs7OztJQUdGLHVDQUE0RDs7SUFDNUQsMENBQW9DOzs7OztJQWlKcEMsc0NBRUU7O0lBaEpFLGdEQUEyQzs7Ozs7SUFHM0MsdUNBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIFJlbmRlcmVyMixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb250cm9sIH0gZnJvbSAnLi8uLi9oZWxwZXJzL2NvbnRyb2wuY2xhc3MnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gJy4vLi4vc2VydmljZXMvZmlsZS11cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7IEluc2VydEFuaW1hdGlvbiB9IGZyb20gJy4vLi4vYW5pbWF0aW9ucy9pbnNlcnQuYW5pbWF0aW9uJztcclxuaW1wb3J0IHsgWm9vbUFuaW1hdGlvbiB9IGZyb20gJy4vLi4vYW5pbWF0aW9ucy96b29tLmFuaW1hdGlvbic7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRBYnN0cmFjdCB9IGZyb20gJy4vZmlsZS11cGxvYWQtYWJzdHJhY3QuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBEUkFHT1ZFUiA9ICdkcmFnb3Zlcic7XHJcbmV4cG9ydCBjb25zdCBUT1VDSEVEID0gJ25nLXRvdWNoZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogYGZpbGUtdXBsb2FkOm5vdChbc2ltcGxlXSlgLFxyXG4gICAgdGVtcGxhdGVVcmw6IGAuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sYCxcclxuICAgIHN0eWxlVXJsczogW2AuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzYF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBGaWxlVXBsb2FkU2VydmljZSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlVXBsb2FkQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9XHJcbiAgICBdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgWm9vbUFuaW1hdGlvbixcclxuICAgICAgICBJbnNlcnRBbmltYXRpb25cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgZXh0ZW5kcyBGaWxlVXBsb2FkQWJzdHJhY3QgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb250cm9sOiBGaWxlVXBsb2FkQ29udHJvbCA9IG51bGw7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZCgncGxhY2Vob2xkZXInKVxyXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKCdpdGVtJylcclxuICAgIHB1YmxpYyBsaXN0SXRlbTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKVxyXG4gICAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2xhYmVsUmVmJylcclxuICAgIHB1YmxpYyBsYWJlbDogRWxlbWVudFJlZjxIVE1MTGFiZWxFbGVtZW50PjtcclxuXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVDb250ZXh0ID0ge1xyXG4gICAgICAgICRpbXBsaWNpdDogdGhpcy5maWxlVXBsb2FkU2VydmljZS5pc0ZpbGVEcmFnRHJvcEF2YWlsYWJsZSgpLFxyXG4gICAgICAgIGlzRmlsZURyYWdEcm9wQXZhaWxhYmxlOiB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmlzRmlsZURyYWdEcm9wQXZhaWxhYmxlKClcclxuICAgIH07XHJcblxyXG4gICAgLyoqIGFuaW1hdGlvbiBmaWVsZHMgKi9cclxuICAgIHB1YmxpYyB6b29tVGV4dDogJ3pvb21PdXQnIHwgJ3pvb21JbicgfCAnc3RhdGljJyA9ICdzdGF0aWMnO1xyXG4gICAgcHVibGljIGxpc3RWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcclxuICAgICAgICBob3N0RWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQsXHJcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaG9zdEVsZW1lbnRSZWYsIHJlbmRlcmVyLCBjZHIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWZpbGVzJylcclxuICAgIHB1YmxpYyBnZXQgaGFzRmlsZXMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5pc0xpc3RWaXNpYmxlICYmIHRoaXMuY29udHJvbC5zaXplID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5nLWludmFsaWQnKVxyXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbnRyb2wuZGlzYWJsZWQgJiYgdGhpcy5jb250cm9sLmludmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldEV2ZW50cygpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5zZXRFdmVudHMoKTtcclxuICAgICAgICBbJ2RyYWcnLCAnZHJhZ3N0YXJ0JywgJ2RyYWdlbmQnLCAnZHJhZ292ZXInLCAnZHJhZ2VudGVyJywgJ2RyYWdsZWF2ZScsICdkcm9wJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9va3MucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsIGV2ZW50TmFtZSwgKGV2ZW50OiBhbnkpID0+IHRoaXMucHJldmVudERyYWdFdmVudHMoZXZlbnQpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBbJ2RyYWdvdmVyJywgJ2RyYWdlbnRlciddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhvb2tzLnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSwgKGV2ZW50OiBhbnkpID0+IHRoaXMub25EcmFnT3ZlcihldmVudCkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIFsnZHJhZ2xlYXZlJywgJ2RyYWdlbmQnLCAnZHJvcCddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhvb2tzLnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSwgKGV2ZW50OiBhbnkpID0+IHRoaXMub25EcmFnTGVhdmUoZXZlbnQpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGZpbGVzKSA9PiB0aGlzLnJlbmRlclZpZXcoKSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLmxpc3RWaXNpYmlsaXR5Q2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4gdGhpcy50b2dnbGVMaXN0VmlzaWJpbGl0eSgpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXlDb2RlID09PSAzMikge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcmV2ZW50RHJhZ0V2ZW50cyhldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbmRlclZpZXcoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmxpc3RWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSB0aGlzLmNvbnRyb2wuaXNMaXN0VmlzaWJsZSAmJiB0aGlzLmNvbnRyb2wuc2l6ZSA+IDAgPyAnem9vbU91dCcgOiAnc3RhdGljJztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzaG93TGlzdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy56b29tVGV4dCAhPT0gJ3N0YXRpYycpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGlkZUxpc3QoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdG9nZ2xlTGlzdFZpc2liaWxpdHkoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IHRoaXMuY29udHJvbC5pc0xpc3RWaXNpYmxlICYmIHRoaXMuY29udHJvbC5zaXplID4gMDtcclxuICAgICAgICBpZiAodGhpcy5saXN0VmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xpc3QtdmlzaWJsZScpO1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UZXh0ID0gJ3N0YXRpYyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogb24gZmlsZSBvdmVyIGFkZCBjbGFzcyBuYW1lXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIERSQUdPVkVSKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG9uIG1vdXNlIG91dCByZW1vdmUgY2xhc3MgbmFtZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgRFJBR09WRVIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzO1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5hZGRGaWxlcyhmaWxlcyk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZXZlbnQudGFyZ2V0KSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJiBpbnB1dC5maWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5hZGRGaWxlcyhpbnB1dC5maWxlcyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dEVsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFySW5wdXRFbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgICAvKipcclxuICAgICAgKiBtb2RlbCAtPiB2aWV3IGNoYW5nZXNcclxuICAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKGZpbGVzOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZmlsZXMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZmlsZXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHJlZ2lzdGVyIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIG9uIFVJIGNoYW5nZVxyXG4gICAgICogdG8gdXBkYXRlIHZpZXcgLT4gbW9kZWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2OiBBcnJheTxGaWxlPikgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFRPVUNIRUQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuZGlzYWJsZShpc0Rpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgem9vbUFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5pc0xpc3RWaXNpYmxlICYmIHRoaXMuY29udHJvbC5zaXplID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dMaXN0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlTGlzdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ3N0YXRpYycgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ3pvb21PdXQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaGlkZS10ZXh0Jyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoaWRlLXRleHQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnem9vbUluJykge1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UZXh0ID0gJ3N0YXRpYyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhbmltYXRpb25MaXN0RmluaXNoZWQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJykge1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UZXh0ID0gJ3pvb21Jbic7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGlzdC12aXNpYmxlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldmVudC5mcm9tU3RhdGUgPT09ICd2b2lkJykge1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UZXh0ID0gJ3N0YXRpYyc7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGlzdC12aXNpYmxlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==

@@ -8,6 +8,6 @@ /**

import { FileUploadControl } from './../helpers/control.class';
import { IsNullOrEmpty } from './../helpers/helpers.class';
import { FileUploadService } from './../services/file-upload.service';
import { TOUCHED } from './file-upload.component';
export class SimpleFileUploadComponent {
import { FileUploadAbstract } from './file-upload-abstract.component';
export class SimpleFileUploadComponent extends FileUploadAbstract {
/**

@@ -20,14 +20,7 @@ * @param {?} fileUploadService

constructor(fileUploadService, hostElementRef, renderer, cdr) {
super(hostElementRef, renderer, cdr);
this.fileUploadService = fileUploadService;
this.hostElementRef = hostElementRef;
this.renderer = renderer;
this.cdr = cdr;
this.control = null;
this.buttonRef = null;
this.placeholderRef = null;
this.subscriptions = [];
this.onChange = (/**
* @return {?}
*/
() => { });
this.onTouch = (/**

@@ -43,25 +36,2 @@ * @return {?}

*/
ngOnInit() {
if (IsNullOrEmpty(this.control)) {
this.control = new FileUploadControl();
}
this.setEvents();
this.checkAndMarkAsDisabled();
this.connectToForm();
}
/**
* @return {?}
*/
ngOnDestroy() {
this.cdr.detach();
this.subscriptions.forEach((/**
* @param {?} subscription
* @return {?}
*/
(subscription) => subscription.unsubscribe()));
this.subscriptions.length = 0;
}
/**
* @return {?}
*/
get hasFiles() {

@@ -77,32 +47,2 @@ return this.control.isListVisible && this.control.size > 0;

/**
* @private
* @return {?}
*/
setEvents() {
this.subscriptions.push(this.control.statusChanges.subscribe((/**
* @param {?} status
* @return {?}
*/
(status) => this.checkAndMarkAsDisabled())));
this.subscriptions.push(this.control.eventsChanges.subscribe((/**
* @param {?} event
* @return {?}
*/
(event) => this.triggerEvent(event))));
}
/**
* @private
* @return {?}
*/
checkAndMarkAsDisabled() {
if (this.control.disabled) {
this.renderer.addClass(this.hostElementRef.nativeElement, 'disabled');
this.renderer.setProperty(this.input.nativeElement, 'disabled', true);
}
else {
this.renderer.removeClass(this.hostElementRef.nativeElement, 'disabled');
this.renderer.setProperty(this.input.nativeElement, 'disabled', false);
}
}
/**
* @param {?} event

@@ -128,14 +68,2 @@ * @return {?}

/**
* ControlValueAccessor implementation
* @private
* @return {?}
*/
connectToForm() {
this.subscriptions.push(this.control.valueChanges.subscribe((/**
* @param {?} v
* @return {?}
*/
(v) => this.onChange(v))));
}
/**
* model -> view changes

@@ -174,15 +102,5 @@ * @param {?} files

/**
* @private
* @param {?} event
* @return {?}
*/
triggerEvent(event) {
if (typeof this.label.nativeElement[event] === 'function') {
this.label.nativeElement[event]();
}
}
/**
* @param {?} event
* @return {?}
*/
onKeyDown(event) {

@@ -245,31 +163,6 @@ if (event.keyCode === 13 || event.keyCode === 32) {

*/
SimpleFileUploadComponent.prototype.subscriptions;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.onChange;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.onTouch;
/** @type {?} */
SimpleFileUploadComponent.prototype.fileUploadService;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.hostElementRef;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.renderer;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.cdr;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFVBQVUsRUFDVixTQUFTLEVBRVQsV0FBVyxFQUNYLFdBQVcsRUFDWCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBZ0JsRCxNQUFNLE9BQU8seUJBQXlCOzs7Ozs7O0lBbUJsQyxZQUNXLGlCQUFvQyxFQUNuQyxjQUEwQixFQUMxQixRQUFtQixFQUNuQixHQUFzQjtRQUh2QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFZO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFwQjNCLFlBQU8sR0FBc0IsSUFBSSxDQUFDO1FBR2xDLGNBQVMsR0FBcUIsSUFBSSxDQUFDO1FBR25DLG1CQUFjLEdBQXFCLElBQUksQ0FBQztRQVF2QyxrQkFBYSxHQUF3QixFQUFFLENBQUM7UUF3RnhDLGFBQVE7OztRQUE2QixHQUFHLEVBQUUsR0FBRSxDQUFDLEVB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QUssQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFO1lBQzlDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzs7O1lBeEpKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixtbEZBQWtEO2dCQUVsRCxTQUFTLEVBQUU7b0JBQ1AsaUJBQWlCO29CQUNqQjt3QkFDSSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVTs7O3dCQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixFQUFDO3dCQUN4RCxLQUFLLEVBQUUsSUFBSTtxQkFDZDtpQkFDSjtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7Ozs7WUFoQlEsaUJBQWlCO1lBaEJ0QixVQUFVO1lBQ1YsU0FBUztZQVFULGlCQUFpQjs7O3NCQTBCaEIsS0FBSzt3QkFHTCxZQUFZLFNBQUMsUUFBUTs2QkFHckIsWUFBWSxTQUFDLGFBQWE7b0JBRzFCLFNBQVMsU0FBQyxVQUFVO29CQUdwQixTQUFTLFNBQUMsVUFBVTt1QkE0QnBCLFdBQVcsU0FBQyxpQkFBaUI7d0JBSzdCLFdBQVcsU0FBQyxrQkFBa0I7Ozs7SUE3Qy9CLDRDQUN5Qzs7SUFFekMsOENBQzBDOztJQUUxQyxtREFDK0M7O0lBRS9DLDBDQUMyQzs7SUFFM0MsMENBQzJDOzs7OztJQUUzQyxrREFBZ0Q7Ozs7O0lBd0ZoRCw2Q0FBc0Q7Ozs7O0lBVXRELDRDQUVFOztJQWpHRSxzREFBMkM7Ozs7O0lBQzNDLG1EQUFrQzs7Ozs7SUFDbEMsNkNBQTJCOzs7OztJQUMzQix3Q0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBUZW1wbGF0ZVJlZixcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29udGVudENoaWxkLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIENoYW5nZURldGVjdG9yUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29udHJvbCwgRmlsZUV2ZW50IH0gZnJvbSAnLi8uLi9oZWxwZXJzL2NvbnRyb2wuY2xhc3MnO1xyXG5pbXBvcnQgeyBJc051bGxPckVtcHR5IH0gZnJvbSAnLi8uLi9oZWxwZXJzL2hlbHBlcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gJy4vLi4vc2VydmljZXMvZmlsZS11cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRPVUNIRUQgfSBmcm9tICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBgZmlsZS11cGxvYWRbc2ltcGxlXWAsXHJcbiAgICB0ZW1wbGF0ZVVybDogYC4vc2ltcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sYCxcclxuICAgIHN0eWxlVXJsczogW2AuL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuc2Nzc2BdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgRmlsZVVwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNvbnRyb2w6IEZpbGVVcGxvYWRDb250cm9sID0gbnVsbDtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKCdidXR0b24nKVxyXG4gICAgcHVibGljIGJ1dHRvblJlZjogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZCgncGxhY2Vob2xkZXInKVxyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyUmVmOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXHJcbiAgICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbGFiZWxSZWYnKVxyXG4gICAgcHVibGljIGxhYmVsOiBFbGVtZW50UmVmPEhUTUxMYWJlbEVsZW1lbnQ+O1xyXG5cclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBmaWxlVXBsb2FkU2VydmljZTogRmlsZVVwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHt9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmIChJc051bGxPckVtcHR5KHRoaXMuY29udHJvbCkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sID0gbmV3IEZpbGVVcGxvYWRDb250cm9sKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldEV2ZW50cygpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbmRNYXJrQXNEaXNhYmxlZCgpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdFRvRm9ybSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNkci5kZXRhY2goKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtZmlsZXMnKVxyXG4gICAgcHVibGljIGdldCBoYXNGaWxlcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmlzTGlzdFZpc2libGUgJiYgdGhpcy5jb250cm9sLnNpemUgPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubmctaW52YWxpZCcpXHJcbiAgICBwdWJsaWMgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJiB0aGlzLmNvbnRyb2wuaW52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEV2ZW50cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChzdGF0dXMpID0+IHRoaXMuY2hlY2tBbmRNYXJrQXNEaXNhYmxlZCgpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuZXZlbnRzQ2hhbmdlcy5zdWJzY3JpYmUoKGV2ZW50OiBGaWxlRXZlbnQpID0+IHRoaXMudHJpZ2dlckV2ZW50KGV2ZW50KSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tBbmRNYXJrQXNEaXNhYmxlZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZXZlbnQudGFyZ2V0KSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJiBpbnB1dC5maWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShBcnJheS5mcm9tKGlucHV0LmZpbGVzKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dEVsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFySW5wdXRFbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjb25uZWN0VG9Gb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodikgPT4gdGhpcy5vbkNoYW5nZSh2KSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgICAvKipcclxuICAgICAgKiBtb2RlbCAtPiB2aWV3IGNoYW5nZXNcclxuICAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKGZpbGVzOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZmlsZXMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZmlsZXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAodjogQXJyYXk8RmlsZT4pID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHJlZ2lzdGVyIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIG9uIFVJIGNoYW5nZVxyXG4gICAgICogdG8gdXBkYXRlIHZpZXcgLT4gbW9kZWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2OiBBcnJheTxGaWxlPikgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFRPVUNIRUQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuZGlzYWJsZShpc0Rpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRyaWdnZXJFdmVudChldmVudDogRmlsZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxhYmVsLm5hdGl2ZUVsZW1lbnRbZXZlbnRdID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWwubmF0aXZlRWxlbWVudFtldmVudF0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXlDb2RlID09PSAzMikge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFVBQVUsRUFDVixTQUFTLEVBQ1QsV0FBVyxFQUNYLFdBQVcsRUFDWCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFnQnRFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQkFBa0I7Ozs7Ozs7SUFpQjdELFlBQ1csaUJBQW9DLEVBQzNDLGNBQTBCLEVBQzFCLFFBQW1CLEVBQ25CLEdBQXNCO1FBRXRCLEtBQUssQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBTDlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFmeEMsWUFBTyxHQUFzQixJQUFJLENBQUM7UUFHbEMsY0FBUyxHQUFxQixJQUFJLENBQUM7UUFHbkMsbUJBQWMsR0FBcUIsSUFBSSxDQUFDO1FBMkR2QyxZQUFPOzs7UUFBZSxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxh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ICAgIENvbXBvbmVudCxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIFJlbmRlcmVyMixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29udHJvbCB9IGZyb20gJy4vLi4vaGVscGVycy9jb250cm9sLmNsYXNzJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLy4uL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUT1VDSEVEIH0gZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQWJzdHJhY3QgfSBmcm9tICcuL2ZpbGUtdXBsb2FkLWFic3RyYWN0LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBgZmlsZS11cGxvYWRbc2ltcGxlXWAsXHJcbiAgICB0ZW1wbGF0ZVVybDogYC4vc2ltcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sYCxcclxuICAgIHN0eWxlVXJsczogW2AuL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuc2Nzc2BdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgRmlsZVVwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVGaWxlVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgRmlsZVVwbG9hZEFic3RyYWN0IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29udHJvbDogRmlsZVVwbG9hZENvbnRyb2wgPSBudWxsO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ2J1dHRvbicpXHJcbiAgICBwdWJsaWMgYnV0dG9uUmVmOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKCdwbGFjZWhvbGRlcicpXHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXJSZWY6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJylcclxuICAgIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdsYWJlbFJlZicpXHJcbiAgICBwdWJsaWMgbGFiZWw6IEVsZW1lbnRSZWY8SFRNTExhYmVsRWxlbWVudD47XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcclxuICAgICAgICBob3N0RWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGhvc3RFbGVtZW50UmVmLCByZW5kZXJlciwgY2RyKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1maWxlcycpXHJcbiAgICBwdWJsaWMgZ2V0IGhhc0ZpbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaXNMaXN0VmlzaWJsZSAmJiB0aGlzLmNvbnRyb2wuc2l6ZSA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZy1pbnZhbGlkJylcclxuICAgIHB1YmxpYyBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5jb250cm9sLmRpc2FibGVkICYmIHRoaXMuY29udHJvbC5pbnZhbGlkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGlucHV0ID0gKGV2ZW50LnRhcmdldCkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuZGlzYWJsZWQgJiYgaW5wdXQuZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoQXJyYXkuZnJvbShpbnB1dC5maWxlcykpO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFySW5wdXRFbCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjbGVhcklucHV0RWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAgLyoqXHJcbiAgICAgICogbW9kZWwgLT4gdmlldyBjaGFuZ2VzXHJcbiAgICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZShmaWxlczogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGZpbGVzICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZpbGVzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZWdpc3RlciBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGNhbGxlZCBvbiBVSSBjaGFuZ2VcclxuICAgICAqIHRvIHVwZGF0ZSB2aWV3IC0+IG1vZGVsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodjogQXJyYXk8RmlsZT4pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBUT1VDSEVEKTtcclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLmRpc2FibGUoaXNEaXNhYmxlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXlDb2RlID09PSAzMikge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -247,3 +247,3 @@ /**

*/
() => FilesLimitValidator)),
() => FilesAcceptValidator)),
multi: true

@@ -271,2 +271,2 @@ }],

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaXBsYWIvbmd4LWZpbGUtdXBsb2FkLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy92YWxpZGF0b3JzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBaUMsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBK0IzRCxNQUFNLE9BQU8saUJBQWlCOzs7OztJQWVuQixXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxVQUFVLElBQUksT0FBTztlQUNsQixTQUFTLElBQUksT0FBTztlQUNwQixTQUFTLElBQUksT0FBTyxFQUFFO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDZixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDbkI7U0FDRjtJQUNMLENBQUM7Ozs7O0lBRU0sUUFBUSxDQUFDLENBQWtCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7OztJQUVNLHlCQUF5QixDQUFDLEVBQWM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFTyxnQkFBZ0I7O1lBQ2hCLE9BQU8sR0FBRyxJQUFJO1FBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLE9BQU8sR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFB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d2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4sIEZpbGVVcGxvYWRWYWxpZGF0b3JzIH0gZnJvbSAnLi8uLi9oZWxwZXJzL3ZhbGlkYXRvcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBJc051bGxPckVtcHR5IH0gZnJvbSAnLi8uLi9oZWxwZXJzL2hlbHBlcnMuY2xhc3MnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBIERpcmVjdGl2ZSB0aGF0IGFkZHMgdGhlIGBmaWxlc2l6ZWAgdmFsaWRhdG9yIHRvIGNvbnRyb2xzIG1hcmtlZCB3aXRoIHRoZVxyXG4gKiBgZmlsZXNpemVgIGF0dHJpYnV0ZS5cclxuICpcclxuICogIyMjIEV4YW1wbGVcclxuICpcclxuICogYGBgXHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIGZpbGVzaXplPVwiODMwMDAwXCI+PC9maWxlLXVwbG9hZD5cclxuICogPGZpbGUtdXBsb2FkIG5hbWU9XCJmaWxlc1wiIG5nTW9kZWwgW2ZpbGVzaXplXT1cIjgzMDAwMFwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIG1pblNpemU9XCIwXCIgbWF4PVwiNjIwMFwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogYFtmaWxlc2l6ZV1bZm9ybUNvbnRyb2xOYW1lXSxbZmlsZXNpemVdW2Zvcm1Db250cm9sXSxbZmlsZXNpemVdW25nTW9kZWxdLFxyXG4gICAgW21pbnNpemVdW2Zvcm1Db250cm9sTmFtZV0sW21pbnNpemVdW2Zvcm1Db250cm9sXSxbbWluc2l6ZV1bbmdNb2RlbF0sXHJcbiAgICBbbWF4c2l6ZV1bZm9ybUNvbnRyb2xOYW1lXSxbbWF4c2l6ZV1bZm9ybUNvbnRyb2xdLFttYXhzaXplXVtuZ01vZGVsXWAsXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlU2l6ZVZhbGlkYXRvciksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICdbYXR0ci5maWxlc2l6ZV0nOiAnZmlsZXNpemUgPyBmaWxlc2l6ZSA6IG51bGwnLFxyXG4gICAgICAgICdbYXR0ci5taW5zaXplXSc6ICdtaW5zaXplID8gbWluc2l6ZSA6IG51bGwnLFxyXG4gICAgICAgICdbYXR0ci5tYXhzaXplXSc6ICdtYXhzaXplID8gbWF4c2l6ZSA6IG51bGwnXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlU2l6ZVZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZpbGVzaXplOiBzdHJpbmd8bnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWluc2l6ZTogc3RyaW5nfG51bWJlcjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1heHNpemU6IHN0cmluZ3xudW1iZXI7XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3I6IFZhbGlkYXRvckZuO1xyXG5cclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2ZpbGVzaXplJyBpbiBjaGFuZ2VzIFxyXG4gICAgICAgICAgICB8fCAnbWF4c2l6ZScgaW4gY2hhbmdlcyBcclxuICAgICAgICAgICAgfHwgJ21pbnNpemUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgIHRoaXMuX2NyZWF0ZVZhbGlkYXRvcigpO1xyXG4gICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzfG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRvcihjKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjsgXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY3JlYXRlVmFsaWRhdG9yKCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBtYXhTaXplID0gbnVsbDtcclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkodGhpcy5tYXhzaXplKSkge1xyXG4gICAgICAgICAgICBtYXhTaXplID0gdHlwZW9mIHRoaXMubWF4c2l6ZSA9PT0gJ3N0cmluZycgPyBwYXJzZUludCh0aGlzLm1heHNpemUsIDEwKSA6IHRoaXMubWF4c2l6ZTtcclxuICAgICAgICB9IGVsc2UgaWYoIUlzTnVsbE9yRW1wdHkodGhpcy5maWxlc2l6ZSkpIHtcclxuICAgICAgICAgICAgbWF4U2l6ZSA9IHR5cGVvZiB0aGlzLmZpbGVzaXplID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHRoaXMuZmlsZXNpemUsIDEwKSA6IHRoaXMuZmlsZXNpemU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBtaW5TaXplID0gdHlwZW9mIHRoaXMubWluc2l6ZSA9PT0gJ3N0cmluZycgPyBwYXJzZUludCh0aGlzLm1pbnNpemUsIDEwKSA6IHRoaXMubWluc2l6ZTtcclxuXHJcbiAgICAgICAgdGhpcy52YWxpZGF0b3IgPSBGaWxlVXBsb2FkVmFsaWRhdG9ycy5zaXplUmFuZ2UoeyBtYXhTaXplLCBtaW5TaXplIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEEgRGlyZWN0aXZlIHRoYXQgYWRkcyB0aGUgYGZpbGVzbGltaXRgIHZhbGlkYXRvciB0byBjb250cm9scyBtYXJrZWQgd2l0aCB0aGVcclxuICogYGZpbGVzbGltaXRgIGF0dHJpYnV0ZS5cclxuICpcclxuICogIyMjIEV4YW1wbGVcclxuICpcclxuICogYGBgXHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIGZpbGVzbGltaXQ9XCIyXCI+PC9maWxlLXVwbG9hZD5cclxuICogPGZpbGUtdXBsb2FkIG5hbWU9XCJmaWxlc1wiIG5nTW9kZWwgW2ZpbGVzbGltaXRdPVwiMlwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tmaWxlc2xpbWl0XVtmb3JtQ29udHJvbE5hbWVdLFtmaWxlc2xpbWl0XVtmb3JtQ29udHJvbF0sW2ZpbGVzbGltaXRdW25nTW9kZWxdJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVzTGltaXRWYWxpZGF0b3IpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XSxcclxuICAgIGhvc3Q6IHsnW2F0dHIuZmlsZXNsaW1pdF0nOiAnZmlsZXNsaW1pdCA/IGZpbGVzbGltaXQgOiBudWxsJ31cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVzTGltaXRWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3IsIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlc2xpbWl0OiBzdHJpbmd8bnVtYmVyO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbjtcclxuXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCdmaWxlc2xpbWl0JyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLl9jcmVhdGVWYWxpZGF0b3IoKTtcclxuICAgICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnN8bnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZXNsaW1pdCAhPSBudWxsID8gdGhpcy52YWxpZGF0b3IoYykgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuOyBcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jcmVhdGVWYWxpZGF0b3IoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0b3IgPSBGaWxlVXBsb2FkVmFsaWRhdG9ycy5maWxlc0xpbWl0KHR5cGVvZiB0aGlzLmZpbGVzbGltaXQgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGhpcy5maWxlc2xpbWl0LCAxMCkgOiB0aGlzLmZpbGVzbGltaXQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEEgRGlyZWN0aXZlIHRoYXQgYWRkcyB0aGUgYGFjY2VwdGAgdmFsaWRhdG9yIHRvIGNvbnRyb2xzIG1hcmtlZCB3aXRoIHRoZVxyXG4gKiBgYWNjZXB0YCBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqICMjIyBFeGFtcGxlXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBhY2NlcHQ9XCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCI+PC9maWxlLXVwbG9hZD5cclxuICogPGZpbGUtdXBsb2FkIG5hbWU9XCJmaWxlc1wiIG5nTW9kZWwgW2FjY2VwdF09XCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCI+PC9maWxlLXVwbG9hZD5cclxuICogYGBgXHJcbiAqIFxyXG4gKiBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgdmFsdWUsIHNlcGFyYXRlIHRoZSB2YWx1ZXMgd2l0aCBhIGNvbW1hIChlLmcuIDxmaWxlLXVwbG9hZCBhY2NlcHQ9XCJhdWRpby8qLHZpZGVvLyosaW1hZ2UvKlwiPjwvZmlsZS11cGxvYWQ+LlxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1thY2NlcHRdW2Zvcm1Db250cm9sTmFtZV0sW2FjY2VwdF1bZm9ybUNvbnRyb2xdLFthY2NlcHRdW25nTW9kZWxdJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVzTGltaXRWYWxpZGF0b3IpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XSxcclxuICAgIGhvc3Q6IHsnW2F0dHIuYWNjZXB0XSc6ICdhY2NlcHQgPyBhY2NlcHQgOiBudWxsJ31cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVzQWNjZXB0VmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkNoYW5nZXMge1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYWNjZXB0OiBzdHJpbmc7XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3I6IFZhbGlkYXRvckZuO1xyXG5cclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2FjY2VwdCcgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgdGhpcy5fY3JlYXRlVmFsaWRhdG9yKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnN8bnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0ICE9IG51bGwgPyB0aGlzLnZhbGlkYXRvcihjKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY3JlYXRlVmFsaWRhdG9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yID0gRmlsZVVwbG9hZFZhbGlkYXRvcnMuYWNjZXB0KHRoaXMuYWNjZXB0LnNwbGl0KCcsJykpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaXBsYWIvbmd4LWZpbGUtdXBsb2FkLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy92YWxpZGF0b3JzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUErRCxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBaUMsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBZ0MzRCxNQUFNLE9BQU8saUJBQWlCOzs7OztJQWVuQixXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxVQUFVLElBQUksT0FBTztlQUNsQixTQUFTLElBQUksT0FBTztlQUNwQixTQUFTLElBQUksT0FBTyxFQUFFO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDZixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDbkI7U0FDRjtJQUNMLENBQUM7Ozs7O0lBRU0sUUFBUSxDQUFDLENBQWtCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7OztJQUVNLHlCQUF5QixDQUFDLEVBQWM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFTyxnQkFBZ0I7O1lBQ2hCLE9BQU8sR0FBRyxJQUFJO1FBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLE9BQU8sR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFB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d2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgSG9zdCwgU2VsZiwgT3B0aW9uYWwsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgRmlsZVVwbG9hZFZhbGlkYXRvcnMgfSBmcm9tICcuLy4uL2hlbHBlcnMvdmFsaWRhdG9ycy5jbGFzcyc7XHJcbmltcG9ydCB7IElzTnVsbE9yRW1wdHkgfSBmcm9tICcuLy4uL2hlbHBlcnMvaGVscGVycy5jbGFzcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuXHJcblxyXG4vKipcclxuICogQSBEaXJlY3RpdmUgdGhhdCBhZGRzIHRoZSBgZmlsZXNpemVgIHZhbGlkYXRvciB0byBjb250cm9scyBtYXJrZWQgd2l0aCB0aGVcclxuICogYGZpbGVzaXplYCBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqICMjIyBFeGFtcGxlXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBmaWxlc2l6ZT1cIjgzMDAwMFwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIFtmaWxlc2l6ZV09XCI4MzAwMDBcIj48L2ZpbGUtdXBsb2FkPlxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBtaW5TaXplPVwiMFwiIG1heD1cIjYyMDBcIj48L2ZpbGUtdXBsb2FkPlxyXG4gKiBgYGBcclxuICpcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IGBbZmlsZXNpemVdW2Zvcm1Db250cm9sTmFtZV0sW2ZpbGVzaXplXVtmb3JtQ29udHJvbF0sW2ZpbGVzaXplXVtuZ01vZGVsXSxcclxuICAgIFttaW5zaXplXVtmb3JtQ29udHJvbE5hbWVdLFttaW5zaXplXVtmb3JtQ29udHJvbF0sW21pbnNpemVdW25nTW9kZWxdLFxyXG4gICAgW21heHNpemVdW2Zvcm1Db250cm9sTmFtZV0sW21heHNpemVdW2Zvcm1Db250cm9sXSxbbWF4c2l6ZV1bbmdNb2RlbF1gLFxyXG4gICAgcHJvdmlkZXJzOiBbe1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVNpemVWYWxpZGF0b3IpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XSxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICAnW2F0dHIuZmlsZXNpemVdJzogJ2ZpbGVzaXplID8gZmlsZXNpemUgOiBudWxsJyxcclxuICAgICAgICAnW2F0dHIubWluc2l6ZV0nOiAnbWluc2l6ZSA/IG1pbnNpemUgOiBudWxsJyxcclxuICAgICAgICAnW2F0dHIubWF4c2l6ZV0nOiAnbWF4c2l6ZSA/IG1heHNpemUgOiBudWxsJ1xyXG4gICAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVNpemVWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3IsIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlc2l6ZTogc3RyaW5nfG51bWJlcjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1pbnNpemU6IHN0cmluZ3xudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtYXhzaXplOiBzdHJpbmd8bnVtYmVyO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbjtcclxuXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCdmaWxlc2l6ZScgaW4gY2hhbmdlcyBcclxuICAgICAgICAgICAgfHwgJ21heHNpemUnIGluIGNoYW5nZXMgXHJcbiAgICAgICAgICAgIHx8ICdtaW5zaXplJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLl9jcmVhdGVWYWxpZGF0b3IoKTtcclxuICAgICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9yc3xudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0b3IoYyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47IFxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NyZWF0ZVZhbGlkYXRvcigpOiB2b2lkIHtcclxuICAgICAgICBsZXQgbWF4U2l6ZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKCFJc051bGxPckVtcHR5KHRoaXMubWF4c2l6ZSkpIHtcclxuICAgICAgICAgICAgbWF4U2l6ZSA9IHR5cGVvZiB0aGlzLm1heHNpemUgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGhpcy5tYXhzaXplLCAxMCkgOiB0aGlzLm1heHNpemU7XHJcbiAgICAgICAgfSBlbHNlIGlmKCFJc051bGxPckVtcHR5KHRoaXMuZmlsZXNpemUpKSB7XHJcbiAgICAgICAgICAgIG1heFNpemUgPSB0eXBlb2YgdGhpcy5maWxlc2l6ZSA9PT0gJ3N0cmluZycgPyBwYXJzZUludCh0aGlzLmZpbGVzaXplLCAxMCkgOiB0aGlzLmZpbGVzaXplO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbWluU2l6ZSA9IHR5cGVvZiB0aGlzLm1pbnNpemUgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGhpcy5taW5zaXplLCAxMCkgOiB0aGlzLm1pbnNpemU7XHJcblxyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yID0gRmlsZVVwbG9hZFZhbGlkYXRvcnMuc2l6ZVJhbmdlKHsgbWF4U2l6ZSwgbWluU2l6ZSB9KTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBBIERpcmVjdGl2ZSB0aGF0IGFkZHMgdGhlIGBmaWxlc2xpbWl0YCB2YWxpZGF0b3IgdG8gY29udHJvbHMgbWFya2VkIHdpdGggdGhlXHJcbiAqIGBmaWxlc2xpbWl0YCBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqICMjIyBFeGFtcGxlXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBmaWxlc2xpbWl0PVwiMlwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIFtmaWxlc2xpbWl0XT1cIjJcIj48L2ZpbGUtdXBsb2FkPlxyXG4gKiBgYGBcclxuICpcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZmlsZXNsaW1pdF1bZm9ybUNvbnRyb2xOYW1lXSxbZmlsZXNsaW1pdF1bZm9ybUNvbnRyb2xdLFtmaWxlc2xpbWl0XVtuZ01vZGVsXScsXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlc0xpbWl0VmFsaWRhdG9yKSxcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfV0sXHJcbiAgICBob3N0OiB7J1thdHRyLmZpbGVzbGltaXRdJzogJ2ZpbGVzbGltaXQgPyBmaWxlc2xpbWl0IDogbnVsbCd9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlc0xpbWl0VmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkNoYW5nZXMge1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZmlsZXNsaW1pdDogc3RyaW5nfG51bWJlcjtcclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRvcjogVmFsaWRhdG9yRm47XHJcblxyXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKCkgPT4gdm9pZDtcclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmICgnZmlsZXNsaW1pdCcgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgdGhpcy5fY3JlYXRlVmFsaWRhdG9yKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzfG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzbGltaXQgIT0gbnVsbCA/IHRoaXMudmFsaWRhdG9yKGMpIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjsgXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY3JlYXRlVmFsaWRhdG9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yID0gRmlsZVVwbG9hZFZhbGlkYXRvcnMuZmlsZXNMaW1pdCh0eXBlb2YgdGhpcy5maWxlc2xpbWl0ID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHRoaXMuZmlsZXNsaW1pdCwgMTApIDogdGhpcy5maWxlc2xpbWl0KTtcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEEgRGlyZWN0aXZlIHRoYXQgYWRkcyB0aGUgYGFjY2VwdGAgdmFsaWRhdG9yIHRvIGNvbnRyb2xzIG1hcmtlZCB3aXRoIHRoZVxyXG4gKiBgYWNjZXB0YCBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqICMjIyBFeGFtcGxlXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBhY2NlcHQ9XCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCI+PC9maWxlLXVwbG9hZD5cclxuICogPGZpbGUtdXBsb2FkIG5hbWU9XCJmaWxlc1wiIG5nTW9kZWwgW2FjY2VwdF09XCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCI+PC9maWxlLXVwbG9hZD5cclxuICogYGBgXHJcbiAqIFxyXG4gKiBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgdmFsdWUsIHNlcGFyYXRlIHRoZSB2YWx1ZXMgd2l0aCBhIGNvbW1hIChlLmcuIDxmaWxlLXVwbG9hZCBhY2NlcHQ9XCJhdWRpby8qLHZpZGVvLyosaW1hZ2UvKlwiPjwvZmlsZS11cGxvYWQ+LlxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1thY2NlcHRdW2Zvcm1Db250cm9sTmFtZV0sW2FjY2VwdF1bZm9ybUNvbnRyb2xdLFthY2NlcHRdW25nTW9kZWxdJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVzQWNjZXB0VmFsaWRhdG9yKSxcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfV0sXHJcbiAgICBob3N0OiB7J1thdHRyLmFjY2VwdF0nOiAnYWNjZXB0ID8gYWNjZXB0IDogbnVsbCd9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlc0FjY2VwdFZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGFjY2VwdDogc3RyaW5nO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbjtcclxuXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCdhY2NlcHQnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgIHRoaXMuX2NyZWF0ZVZhbGlkYXRvcigpO1xyXG4gICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzfG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjY2VwdCAhPSBudWxsID8gdGhpcy52YWxpZGF0b3IoYykgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NyZWF0ZVZhbGlkYXRvcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRvciA9IEZpbGVVcGxvYWRWYWxpZGF0b3JzLmFjY2VwdCh0aGlzLmFjY2VwdC5zcGxpdCgnLCcpKTtcclxuICAgIH1cclxufVxyXG4iXX0=

@@ -21,2 +21,3 @@ /**

import { FileSizeValidator, FilesLimitValidator, FilesAcceptValidator } from './directives/validators.directive';
import { FilesAcceptDirective } from './directives/attribute.directive';
export { FileUploadControl } from './helpers/control.class';

@@ -54,2 +55,3 @@ export { FileUploadValidators } from './helpers/validators.class';

FilesAcceptValidator,
FilesAcceptDirective,
SimpleFileUploadComponent

@@ -63,2 +65,3 @@ ],

FilesAcceptValidator,
FilesAcceptDirective,
SimpleFileUploadComponent

@@ -82,2 +85,2 @@ ],

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImZpbGUtdXBsb2FkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU9BLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFpQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQW1DN0QsTUFBTSxPQUFPLGdCQUFnQjs7OztJQUV6QixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xDLG9GQUFvRjtRQUNwRiwyREFBMkQ7SUFDL0QsQ0FBQzs7OztJQUVELGFBQWEsS0FBSSxDQUFDOzs7WUF4Q3JCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLFdBQVc7aUJBQ2Q7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLG1CQUFtQjtvQkFDbkIsMkJBQTJCO29CQUMzQix1QkFBdUI7b0JBRXZCLDRCQUE0QjtvQkFFNUIsaUJBQWlCO29CQUNqQixtQkFBbUI7b0JBQ25CLG9CQUFvQjtvQkFFcEIseUJBQXlCO2lCQUM1QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsbUJBQW1CO29CQUNuQiw0QkFBNEI7b0JBRTVCLGlCQUFpQjtvQkFDakIsbUJBQW1CO29CQUNuQixvQkFBb0I7b0JBRXBCLHlCQUF5QjtpQkFDNUI7Z0JBQ0QsZUFBZSxFQUFFO29CQUNiLG1CQUFtQjtpQkFDdEI7YUFDSjs7OztZQWhEa0IsUUFBUTs7Ozs7OztJQW1EWCxvQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBsMTBuXHJcbiAqXHJcbiAqIEJ5IEl2YW4gUGludGFyLCBodHRwOi8vd3d3LnBpbnRhci1pdmFuLmNvbVxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcclxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wSXZhbi9maWxlLXVwbG9hZC9ibG9iL21hc3Rlci9SRUFETUUubWRcclxuICovXHJcbmltcG9ydCB7IE5nTW9kdWxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLWxpc3QtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC1pY29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRBdHRyaWJ1dGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtYXR0ci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaW1wbGVGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgRmlsZVNpemVWYWxpZGF0b3IsIEZpbGVzTGltaXRWYWxpZGF0b3IsIEZpbGVzQWNjZXB0VmFsaWRhdG9yIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMuZGlyZWN0aXZlJztcclxuXHJcbmV4cG9ydCB7IEZpbGVVcGxvYWRDb250cm9sIH0gZnJvbSAnLi9oZWxwZXJzL2NvbnRyb2wuY2xhc3MnO1xyXG5leHBvcnQgeyBGaWxlVXBsb2FkVmFsaWRhdG9ycywgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICcuL2hlbHBlcnMvdmFsaWRhdG9ycy5jbGFzcyc7XHJcbmV4cG9ydCB7IEZpbGVVcGxvYWRUeXBlcyB9IGZyb20gJy4vaGVscGVycy9maWxlLXR5cGVzLmNsYXNzJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgICAgIEZpbGVVcGxvYWRMaXN0SXRlbUNvbXBvbmVudCxcclxuICAgICAgICBGaWxlVXBsb2FkSWNvbkNvbXBvbmVudCxcclxuXHJcbiAgICAgICAgRmlsZVVwbG9hZEF0dHJpYnV0ZUNvbXBvbmVudCxcclxuXHJcbiAgICAgICAgRmlsZVNpemVWYWxpZGF0b3IsXHJcbiAgICAgICAgRmlsZXNMaW1pdFZhbGlkYXRvcixcclxuICAgICAgICBGaWxlc0FjY2VwdFZhbGlkYXRvcixcclxuXHJcbiAgICAgICAgU2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgICAgIEZpbGVVcGxvYWRBdHRyaWJ1dGVDb21wb25lbnQsXHJcblxyXG4gICAgICAgIEZpbGVTaXplVmFsaWRhdG9yLFxyXG4gICAgICAgIEZpbGVzTGltaXRWYWxpZGF0b3IsXHJcbiAgICAgICAgRmlsZXNBY2NlcHRWYWxpZGF0b3IsXHJcblxyXG4gICAgICAgIFNpbXBsZUZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtcclxuICAgICAgICBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkTW9kdWxlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIC8vIGNvbnN0IGZpbGVVcGxvYWRFbGVtZW50ID0gY3JlYXRlQ3VzdG9tRWxlbWVudChGaWxlVXBsb2FkQ29tcG9uZW50LCB7IGluamVjdG9yIH0pO1xyXG4gICAgICAgIC8vIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZmlsZS11cGxvYWQnLCBmaWxlVXBsb2FkRWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdEb0Jvb3RzdHJhcCgpIHt9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImZpbGUtdXBsb2FkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU9BLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFpQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQXFDN0QsTUFBTSxPQUFPLGdCQUFnQjs7OztJQUV6QixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xDLG9GQUFvRjtRQUNwRiwyREFBMkQ7SUFDL0QsQ0FBQzs7OztJQUVELGFBQWEsS0FBSSxDQUFDOzs7WUExQ3JCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLFdBQVc7aUJBQ2Q7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLG1CQUFtQjtvQkFDbkIsMkJBQTJCO29CQUMzQix1QkFBdUI7b0JBRXZCLDRCQUE0QjtvQkFFNUIsaUJBQWlCO29CQUNqQixtQkFBbUI7b0JBQ25CLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUVwQix5QkFBeUI7aUJBQzVCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxtQkFBbUI7b0JBQ25CLDRCQUE0QjtvQkFFNUIsaUJBQWlCO29CQUNqQixtQkFBbUI7b0JBQ25CLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUVwQix5QkFBeUI7aUJBQzVCO2dCQUNELGVBQWUsRUFBRTtvQkFDYixtQkFBbUI7aUJBQ3RCO2FBQ0o7Ozs7WUFuRGtCLFFBQVE7Ozs7Ozs7SUFzRFgsb0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogbDEwblxyXG4gKlxyXG4gKiBCeSBJdmFuIFBpbnRhciwgaHR0cDovL3d3dy5waW50YXItaXZhbi5jb21cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlXHJcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcEl2YW4vZmlsZS11cGxvYWQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kXHJcbiAqL1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC1saXN0LWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEljb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtaWNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQXR0cmlidXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLWF0dHIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaW1wbGUtZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IEZpbGVTaXplVmFsaWRhdG9yLCBGaWxlc0xpbWl0VmFsaWRhdG9yLCBGaWxlc0FjY2VwdFZhbGlkYXRvciB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZpbGVzQWNjZXB0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2F0dHJpYnV0ZS5kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0IHsgRmlsZVVwbG9hZENvbnRyb2wgfSBmcm9tICcuL2hlbHBlcnMvY29udHJvbC5jbGFzcyc7XHJcbmV4cG9ydCB7IEZpbGVVcGxvYWRWYWxpZGF0b3JzLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJy4vaGVscGVycy92YWxpZGF0b3JzLmNsYXNzJztcclxuZXhwb3J0IHsgRmlsZVVwbG9hZFR5cGVzIH0gZnJvbSAnLi9oZWxwZXJzL2ZpbGUtdHlwZXMuY2xhc3MnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICAgICAgRmlsZVVwbG9hZExpc3RJdGVtQ29tcG9uZW50LFxyXG4gICAgICAgIEZpbGVVcGxvYWRJY29uQ29tcG9uZW50LFxyXG5cclxuICAgICAgICBGaWxlVXBsb2FkQXR0cmlidXRlQ29tcG9uZW50LFxyXG5cclxuICAgICAgICBGaWxlU2l6ZVZhbGlkYXRvcixcclxuICAgICAgICBGaWxlc0xpbWl0VmFsaWRhdG9yLFxyXG4gICAgICAgIEZpbGVzQWNjZXB0VmFsaWRhdG9yLFxyXG4gICAgICAgIEZpbGVzQWNjZXB0RGlyZWN0aXZlLFxyXG5cclxuICAgICAgICBTaW1wbGVGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICAgICAgRmlsZVVwbG9hZEF0dHJpYnV0ZUNvbXBvbmVudCxcclxuXHJcbiAgICAgICAgRmlsZVNpemVWYWxpZGF0b3IsXHJcbiAgICAgICAgRmlsZXNMaW1pdFZhbGlkYXRvcixcclxuICAgICAgICBGaWxlc0FjY2VwdFZhbGlkYXRvcixcclxuICAgICAgICBGaWxlc0FjY2VwdERpcmVjdGl2ZSxcclxuXHJcbiAgICAgICAgU2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRNb2R1bGUge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgLy8gY29uc3QgZmlsZVVwbG9hZEVsZW1lbnQgPSBjcmVhdGVDdXN0b21FbGVtZW50KEZpbGVVcGxvYWRDb21wb25lbnQsIHsgaW5qZWN0b3IgfSk7XHJcbiAgICAgICAgLy8gY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdmaWxlLXVwbG9hZCcsIGZpbGVVcGxvYWRFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0RvQm9vdHN0cmFwKCkge31cclxufVxyXG4iXX0=

@@ -36,2 +36,4 @@ /**

this.eventsChanged = new Subject();
this.accept = null;
this.acceptChanged = new BehaviorSubject(this.accept);
/**

@@ -53,2 +55,6 @@ * track status `VALID`, `INVALID` or `DISABLED`

/**
* track changed on accept attribute
*/
this.acceptChanges = this.acceptChanged.asObservable();
/**
* emit an event every time user programmatically ask for certain event

@@ -267,2 +273,33 @@ */

/**
* specifies the types of files that the server accepts
*
* ### Example
*
* ```
* acceptFiles("file_extension|audio/*|video/*|image/*|media_type")
* ```
*
* To specify more than one value, separate the values with a comma (e.g. acceptFiles("audio/*,video/*,image/*").
*
* @template THIS
* @this {THIS}
* @param {?} accept
* @return {THIS}
*/
acceptFiles(accept) {
(/** @type {?} */ (this)).accept = accept;
(/** @type {?} */ (this)).acceptChanged.next((/** @type {?} */ (this)).accept);
return (/** @type {?} */ (this));
}
/**
* @template THIS
* @this {THIS}
* @return {THIS}
*/
acceptAll() {
(/** @type {?} */ (this)).accept = null;
(/** @type {?} */ (this)).acceptChanged.next((/** @type {?} */ (this)).accept);
return (/** @type {?} */ (this));
}
/**
* @private

@@ -330,2 +367,12 @@ * @return {?}

/**
* @type {?}
* @private
*/
FileUploadControl.prototype.accept;
/**
* @type {?}
* @private
*/
FileUploadControl.prototype.acceptChanged;
/**
* track status `VALID`, `INVALID` or `DISABLED`

@@ -349,2 +396,7 @@ * @type {?}

/**
* track changed on accept attribute
* @type {?}
*/
FileUploadControl.prototype.acceptChanges;
/**
* emit an event every time user programmatically ask for certain event

@@ -355,2 +407,2 @@ * @type {?}

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJoZWxwZXJzL2NvbnRyb2wuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0lBRzVDLFVBQU87SUFDUCxRQUFLO0lBQ0wsV0FBUTs7Ozs7Ozs7SUFJUixPQUFRLE9BQU87SUFDZixPQUFRLE9BQU87SUFDZixNQUFPLE1BQU07OztBQUdqQixNQUFNLE9BQU8saUJBQWlCOzs7O0lBdUMxQixZQUFZLFVBQTJDO1FBckMvQyxVQUFLLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU3QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixXQUFNLEdBQVcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUU5QixXQUFNLEdBQWdDLEVBQUUsQ0FBQztRQUV6QyxlQUFVLEdBQXVCLEVBQUUsQ0FBQztRQUVwQyxrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRS9DLGtCQUFhLEdBQXVCLElBQUksT0FBTyxFQUFFLENBQUM7Ozs7UUFLbkQsa0JBQWEsR0FBdUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7Ozs7O1FBTzdELGlCQUFZLEdBQWlDLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzs7OztRQU1yRSwwQkFBcUIsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDOzs7O1FBS3hGLGtCQUFhLEdBQTBCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHckYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7Ozs7O0lBS00sYUFB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LENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7OztJQUVPLFFBQVE7UUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRTs7a0JBQzNCLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSztZQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRzs7OztZQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxNQUFNOzs7O1lBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsRUFBQyxDQUFDO1lBRW5HLElBQUksWUFBWSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2RTtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0NBQ0o7Ozs7OztJQTdMRyxrQ0FBcUM7Ozs7O0lBRXJDLHdDQUEyQjs7Ozs7SUFFM0IsbUNBQXNDOzs7OztJQUV0QyxtQ0FBaUQ7Ozs7O0lBRWpELHVDQUE0Qzs7Ozs7SUFFNUMsMENBQXVEOzs7OztJQUV2RCwwQ0FBMEQ7Ozs7O0lBSzFELDBDQUE2RTs7Ozs7OztJQU83RSx5Q0FBcUY7Ozs7OztJQU1yRixrREFBd0c7Ozs7O0lBS3hHLDBDQUF5RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4vdmFsaWRhdG9ycy5jbGFzcyc7XHJcbmltcG9ydCB7IElzTnVsbE9yRW1wdHkgfSBmcm9tICcuL2hlbHBlcnMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGVudW0gU1RBVFVTIHtcclxuICAgIElOVkFMSUQsXHJcbiAgICBWQUxJRCxcclxuICAgIERJU0FCTEVEXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVFdmVudCB7XHJcbiAgICBjbGljayA9ICdjbGljaycsXHJcbiAgICBmb2N1cyA9ICdmb2N1cycsXHJcbiAgICBibHVyID0gJ2JsdXInXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbCB7XHJcblxyXG4gICAgcHJpdmF0ZSBmaWxlczogU2V0PEZpbGU+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHByaXZhdGUgbGlzdFZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdHVzOiBTVEFUVVMgPSBTVEFUVVMuVkFMSUQ7XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvcnM6IEFycmF5PHtba2V5OiBzdHJpbmddOiBhbnl9PiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0dXNDaGFuZ2VkOiBTdWJqZWN0PFNUQVRVUz4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgZXZlbnRzQ2hhbmdlZDogU3ViamVjdDxGaWxlRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIHN0YXR1cyBgVkFMSURgLCBgSU5WQUxJRGAgb3IgYERJU0FCTEVEYFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxTVEFUVVM+ID0gdGhpcy5zdGF0dXNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZW1pdCBhbiBldmVudCBldmVyeSB0aW1lIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAgICogY2hhbmdlcy5cclxuICAgICAqIEluaXRpYWxseSByZXR1cm5zIGxhc3QgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PEFycmF5PEZpbGU+PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKiB1c2VkIHRvIHRyaWdnZXIgbGF5b3V0IGNoYW5nZSBmb3IgbGlzdCB2aXNpYmlsaXR5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0VmlzaWJpbGl0eUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5saXN0VmlzaWJsZSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdXNlciBwcm9ncmFtbWF0aWNhbGx5IGFzayBmb3IgY2VydGFpbiBldmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzQ2hhbmdlczogT2JzZXJ2YWJsZTxGaWxlRXZlbnQ+ID0gdGhpcy5ldmVudHNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pIHtcclxuICAgICAgICB0aGlzLmRlZmluZVZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzZXQgZnVuY3Rpb25zIHRoYXQgZGV0ZXJtaW5lcyB0aGUgc3luY2hyb25vdXMgdmFsaWRpdHkgb2YgdGhpcyBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmRlZmluZVZhbGlkYXRvcnMobmV3VmFsaWRhdG9ycyk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkodmFsaWRhdG9ycykpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzKSA/IFsuLi52YWxpZGF0b3JzXSA6IFt2YWxpZGF0b3JzXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuYWRkKGZpbGUpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKEFycmF5LmZyb20oZmlsZXMpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byBwcmV2ZW50IHZhbHVlQ2hhbmdlcyBlbWl0IG1vcmUgdGltZXNcclxuICAgICAqIHdoZW4gbXVsdGlwbGUgZmlsZXMgYXJlIHVwbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYWRkTXVsdGlwbGVGaWxlcyhmaWxlczogQXJyYXk8RmlsZT4pOiB2b2lkIHtcclxuICAgICAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4gdGhpcy5maWxlcy5hZGQoZmlsZSkpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnN0YXR1cyAhPT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RXJyb3IoKTogQXJyYXk8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG51bWJlciBvZiB1cGxvYWRlZCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmV0dXJuIGxpc3Qgb2YgRmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBBcnJheTxGaWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFZhbHVlKGZpbGVzOiBBcnJheTxGaWxlPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKGZpbGVzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgRm9ybUNvbnRyb2wuc2V0VmFsdWUgd2FzIHByb3ZpZGVkIHdpdGggd3JvbmcgYXJndW1lbnQgdHlwZSwgJHtmaWxlc30gd2FzIHByb3ZpZGVkIGluc3RlYWQgQXJyYXk8RmlsZT5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVzZXQgdGhlIGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsZWFyKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzTGlzdFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdFZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldExpc3RWaXNpYmlsaXR5KGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gaXNWaXNpYmxlO1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2liaWxpdHlDaGFuZ2VzLm5leHQodGhpcy5saXN0VmlzaWJsZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZW5hYmxlKGlzRW5hYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRW5hYmxlZCA/IFNUQVRVUy5WQUxJRCA6IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNhYmxlKGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpc0Rpc2FibGVkID8gU1RBVFVTLkRJU0FCTEVEIDogU1RBVFVTLlZBTElEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsaWNrKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5jbGljayk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5mb2N1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGJsdXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmJsdXIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdGUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdHVzICE9PSBTVEFUVVMuRElTQUJMRUQpIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy52YWxpZDtcclxuICAgICAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLnZhbGlkYXRvcnMubWFwKCh2YWxpZGF0b3IpID0+IHZhbGlkYXRvcih0aGlzKSkuZmlsdGVyKChpc0ludmFsaWQpID0+IGlzSW52YWxpZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFN0YXRlICE9PSB0aGlzLnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnZhbGlkID8gU1RBVFVTLlZBTElEIDogU1RBVFVTLklOVkFMSUQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvcnMubGVuZ3RoID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJoZWxwZXJzL2NvbnRyb2wuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0lBRzVDLFVBQU87SUFDUCxRQUFLO0lBQ0wsV0FBUTs7Ozs7Ozs7SUFJUixPQUFRLE9BQU87SUFDZixPQUFRLE9BQU87SUFDZixNQUFPLE1BQU07OztBQUdqQixNQUFNLE9BQU8saUJBQWlCOzs7O0lBZ0QxQixZQUFZLFVBQTJDO1FBOUN0QyxVQUFLLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV0QyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixXQUFNLEdBQVcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUU5QixXQUFNLEdBQWdDLEVBQUUsQ0FBQztRQUV6QyxlQUFVLEdBQXVCLEVBQUUsQ0FBQztRQUUzQixrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRS9DLGtCQUFhLEdBQXVCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFM0QsV0FBTSxHQUFXLElBQUksQ0FBQztRQUViLGtCQUFhLEdBQTRCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs7OztRQUtwRixrQkFBYSxHQUF1QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDOzs7Ozs7UUFPN0QsaUJBQVksR0FBaUMsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7Ozs7O1FBTXJFLDBCQUFxQixHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Ozs7UUFLeEYsa0JBQWEsR0FBdUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZ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QUFJLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkU7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztDQUNKOzs7Ozs7SUE5Tkcsa0NBQThDOzs7OztJQUU5Qyx3Q0FBMkI7Ozs7O0lBRTNCLG1DQUFzQzs7Ozs7SUFFdEMsbUNBQWlEOzs7OztJQUVqRCx1Q0FBNEM7Ozs7O0lBRTVDLDBDQUFnRTs7Ozs7SUFFaEUsMENBQW1FOzs7OztJQUVuRSxtQ0FBOEI7Ozs7O0lBRTlCLDBDQUEyRjs7Ozs7SUFLM0YsMENBQTZFOzs7Ozs7O0lBTzdFLHlDQUFxRjs7Ozs7O0lBTXJGLGtEQUF3Rzs7Ozs7SUFLeEcsMENBQXNGOzs7OztJQUt0RiwwQ0FBeUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICcuL3ZhbGlkYXRvcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBJc051bGxPckVtcHR5IH0gZnJvbSAnLi9oZWxwZXJzLmNsYXNzJztcclxuXHJcbmV4cG9ydCBlbnVtIFNUQVRVUyB7XHJcbiAgICBJTlZBTElELFxyXG4gICAgVkFMSUQsXHJcbiAgICBESVNBQkxFRFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlRXZlbnQge1xyXG4gICAgY2xpY2sgPSAnY2xpY2snLFxyXG4gICAgZm9jdXMgPSAnZm9jdXMnLFxyXG4gICAgYmx1ciA9ICdibHVyJ1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbnRyb2wge1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZXM6IFNldDxGaWxlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwcml2YXRlIGxpc3RWaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXR1czogU1RBVFVTID0gU1RBVFVTLlZBTElEO1xyXG5cclxuICAgIHByaXZhdGUgZXJyb3JzOiBBcnJheTx7W2tleTogc3RyaW5nXTogYW55fT4gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlZDogU3ViamVjdDxTVEFUVVM+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50c0NoYW5nZWQ6IFN1YmplY3Q8RmlsZUV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBhY2NlcHQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY2NlcHRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hY2NlcHQpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgc3RhdHVzIGBWQUxJRGAsIGBJTlZBTElEYCBvciBgRElTQUJMRURgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPFNUQVRVUz4gPSB0aGlzLnN0YXR1c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdGhlIHZhbHVlIG9mIHRoZSBjb250cm9sXHJcbiAgICAgKiBjaGFuZ2VzLlxyXG4gICAgICogSW5pdGlhbGx5IHJldHVybnMgbGFzdCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RmlsZT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqIHVzZWQgdG8gdHJpZ2dlciBsYXlvdXQgY2hhbmdlIGZvciBsaXN0IHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3RWaXNpYmlsaXR5Q2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmxpc3RWaXNpYmxlKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIGNoYW5nZWQgb24gYWNjZXB0IGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWNjZXB0Q2hhbmdlczogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5hY2NlcHRDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZW1pdCBhbiBldmVudCBldmVyeSB0aW1lIHVzZXIgcHJvZ3JhbW1hdGljYWxseSBhc2sgZm9yIGNlcnRhaW4gZXZlbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGV2ZW50c0NoYW5nZXM6IE9ic2VydmFibGU8RmlsZUV2ZW50PiA9IHRoaXMuZXZlbnRzQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm58QXJyYXk8VmFsaWRhdG9yRm4+KSB7XHJcbiAgICAgICAgdGhpcy5kZWZpbmVWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IGZ1bmN0aW9ucyB0aGF0IGRldGVybWluZXMgdGhlIHN5bmNocm9ub3VzIHZhbGlkaXR5IG9mIHRoaXMgY29udHJvbC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yczogVmFsaWRhdG9yRm58QXJyYXk8VmFsaWRhdG9yRm4+KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5kZWZpbmVWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnMpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRlZmluZVZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yRm58QXJyYXk8VmFsaWRhdG9yRm4+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFJc051bGxPckVtcHR5KHZhbGlkYXRvcnMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IEFycmF5LmlzQXJyYXkodmFsaWRhdG9ycykgPyBbLi4udmFsaWRhdG9yc10gOiBbdmFsaWRhdG9yc107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmFkZChmaWxlKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVtb3ZlRmlsZShmaWxlOiBGaWxlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5kZWxldGUoZmlsZSk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEZpbGVzKGZpbGVzOiBGaWxlTGlzdCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWRkTXVsdGlwbGVGaWxlcyhBcnJheS5mcm9tKGZpbGVzKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqIHVzZWQgdG8gcHJldmVudCB2YWx1ZUNoYW5nZXMgZW1pdCBtb3JlIHRpbWVzXHJcbiAgICAgKiB3aGVuIG11bHRpcGxlIGZpbGVzIGFyZSB1cGxvYWRlZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFkZE11bHRpcGxlRmlsZXMoZmlsZXM6IEFycmF5PEZpbGU+KTogdm9pZCB7XHJcbiAgICAgICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHRoaXMuZmlsZXMuYWRkKGZpbGUpKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPT09IDAgJiYgdGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVycm9yKCk6IEFycmF5PFZhbGlkYXRpb25FcnJvcnM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBudW1iZXIgb2YgdXBsb2FkZWQgZmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZXMuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHJldHVybiBsaXN0IG9mIEZpbGVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogQXJyYXk8RmlsZT4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRWYWx1ZShmaWxlczogQXJyYXk8RmlsZT4pOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxlcyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkTXVsdGlwbGVGaWxlcyhmaWxlcyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEZvcm1Db250cm9sLnNldFZhbHVlIHdhcyBwcm92aWRlZCB3aXRoIHdyb25nIGFyZ3VtZW50IHR5cGUsICR7ZmlsZXN9IHdhcyBwcm92aWRlZCBpbnN0ZWFkIEFycmF5PEZpbGU+YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHJlc2V0IHRoZSBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGVhcigpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpc0xpc3RWaXNpYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RWaXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRMaXN0VmlzaWJpbGl0eShpc1Zpc2libGU6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IGlzVmlzaWJsZTtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmlsaXR5Q2hhbmdlcy5uZXh0KHRoaXMubGlzdFZpc2libGUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGVuYWJsZShpc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpc0VuYWJsZWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMuc3RhdHVzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzYWJsZShpc0Rpc2FibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gaXNEaXNhYmxlZCA/IFNUQVRVUy5ESVNBQkxFRCA6IFNUQVRVUy5WQUxJRDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGljaygpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuY2xpY2spO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmb2N1cygpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuZm9jdXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBibHVyKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5ibHVyKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNwZWNpZmllcyB0aGUgdHlwZXMgb2YgZmlsZXMgdGhhdCB0aGUgc2VydmVyIGFjY2VwdHNcclxuICAgICAqXHJcbiAgICAgKiAjIyMgRXhhbXBsZVxyXG4gICAgICpcclxuICAgICAqIGBgYFxyXG4gICAgICogYWNjZXB0RmlsZXMoXCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCIpXHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgdmFsdWUsIHNlcGFyYXRlIHRoZSB2YWx1ZXMgd2l0aCBhIGNvbW1hIChlLmcuIGFjY2VwdEZpbGVzKFwiYXVkaW8vKix2aWRlby8qLGltYWdlLypcIikuXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWNjZXB0RmlsZXMoYWNjZXB0OiBzdHJpbmcpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFjY2VwdCA9IGFjY2VwdDtcclxuICAgICAgICB0aGlzLmFjY2VwdENoYW5nZWQubmV4dCh0aGlzLmFjY2VwdCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFjY2VwdEFsbCgpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFjY2VwdCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hY2NlcHRDaGFuZ2VkLm5leHQodGhpcy5hY2NlcHQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdGUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdHVzICE9PSBTVEFUVVMuRElTQUJMRUQpIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy52YWxpZDtcclxuICAgICAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLnZhbGlkYXRvcnMubWFwKCh2YWxpZGF0b3IpID0+IHZhbGlkYXRvcih0aGlzKSkuZmlsdGVyKChpc0ludmFsaWQpID0+IGlzSW52YWxpZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFN0YXRlICE9PSB0aGlzLnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnZhbGlkID8gU1RBVFVTLlZBTElEIDogU1RBVFVTLklOVkFMSUQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvcnMubGVuZ3RoID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -9,11 +9,13 @@ /**

export { FileUploadControl, FileUploadValidators, FileUploadTypes, FileUploadModule } from './public_api';
export { InsertAnimation as ɵd } from './animations/insert.animation';
export { ZoomAnimation as ɵc } from './animations/zoom.animation';
export { FileUploadAttributeComponent as ɵg } from './components/file-upload-attr.component';
export { FileUploadIconComponent as ɵf } from './components/file-upload-icon.component';
export { FileUploadListItemComponent as ɵe } from './components/file-upload-list-item.component';
export { InsertAnimation as ɵe } from './animations/insert.animation';
export { ZoomAnimation as ɵd } from './animations/zoom.animation';
export { FileUploadAbstract as ɵb } from './components/file-upload-abstract.component';
export { FileUploadAttributeComponent as ɵh } from './components/file-upload-attr.component';
export { FileUploadIconComponent as ɵg } from './components/file-upload-icon.component';
export { FileUploadListItemComponent as ɵf } from './components/file-upload-list-item.component';
export { FileUploadComponent as ɵa } from './components/file-upload.component';
export { SimpleFileUploadComponent as ɵk } from './components/simple-file-upload.component';
export { FileSizeValidator as ɵh, FilesAcceptValidator as ɵj, FilesLimitValidator as ɵi } from './directives/validators.directive';
export { FileUploadService as ɵb } from './services/file-upload.service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBsYWItbmd4LWZpbGUtdXBsb2FkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImlwbGFiLW5neC1maWxlLXVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkZBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsNEJBQTRCLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzFGLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ILE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcblxuZXhwb3J0IHtJbnNlcnRBbmltYXRpb24gYXMgybVkfSBmcm9tICcuL2FuaW1hdGlvbnMvaW5zZXJ0LmFuaW1hdGlvbic7XG5leHBvcnQge1pvb21BbmltYXRpb24gYXMgybVjfSBmcm9tICcuL2FuaW1hdGlvbnMvem9vbS5hbmltYXRpb24nO1xuZXhwb3J0IHtGaWxlVXBsb2FkQXR0cmlidXRlQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLWF0dHIuY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZVVwbG9hZEljb25Db21wb25lbnQgYXMgybVmfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkTGlzdEl0ZW1Db21wb25lbnQgYXMgybVlfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVVcGxvYWRDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7U2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudCBhcyDJtWt9IGZyb20gJy4vY29tcG9uZW50cy9zaW1wbGUtZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZVNpemVWYWxpZGF0b3IgYXMgybVoLEZpbGVzQWNjZXB0VmFsaWRhdG9yIGFzIMm1aixGaWxlc0xpbWl0VmFsaWRhdG9yIGFzIMm1aX0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMuZGlyZWN0aXZlJztcbmV4cG9ydCB7RmlsZVVwbG9hZFNlcnZpY2UgYXMgybVifSBmcm9tICcuL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UnOyJdfQ==
export { SimpleFileUploadComponent as ɵm } from './components/simple-file-upload.component';
export { FilesAcceptDirective as ɵl } from './directives/attribute.directive';
export { FileSizeValidator as ɵi, FilesAcceptValidator as ɵk, FilesLimitValidator as ɵj } from './directives/validators.directive';
export { FileUploadService as ɵc } from './services/file-upload.service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBsYWItbmd4LWZpbGUtdXBsb2FkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImlwbGFiLW5neC1maWxlLXVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkZBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFDLDRCQUE0QixJQUFJLEVBQUUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzNGLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDL0YsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDL0gsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0luc2VydEFuaW1hdGlvbiBhcyDJtWV9IGZyb20gJy4vYW5pbWF0aW9ucy9pbnNlcnQuYW5pbWF0aW9uJztcbmV4cG9ydCB7Wm9vbUFuaW1hdGlvbiBhcyDJtWR9IGZyb20gJy4vYW5pbWF0aW9ucy96b29tLmFuaW1hdGlvbic7XG5leHBvcnQge0ZpbGVVcGxvYWRBYnN0cmFjdCBhcyDJtWJ9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC1hYnN0cmFjdC5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkQXR0cmlidXRlQ29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLWF0dHIuY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZVVwbG9hZEljb25Db21wb25lbnQgYXMgybVnfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkTGlzdEl0ZW1Db21wb25lbnQgYXMgybVmfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVVcGxvYWRDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7U2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudCBhcyDJtW19IGZyb20gJy4vY29tcG9uZW50cy9zaW1wbGUtZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZXNBY2NlcHREaXJlY3RpdmUgYXMgybVsfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXR0cmlidXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQge0ZpbGVTaXplVmFsaWRhdG9yIGFzIMm1aSxGaWxlc0FjY2VwdFZhbGlkYXRvciBhcyDJtWssRmlsZXNMaW1pdFZhbGlkYXRvciBhcyDJtWp9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzLmRpcmVjdGl2ZSc7XG5leHBvcnQge0ZpbGVVcGxvYWRTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJzsiXX0=

@@ -5,2 +5,3 @@ /**

*/
import * as tslib_1 from "tslib";
import { Component, Input, ElementRef, HostListener, Renderer2, HostBinding, Inject, TemplateRef, ViewChild, ChangeDetectionStrategy, ContentChild, forwardRef, ChangeDetectorRef } from '@angular/core';

@@ -10,6 +11,6 @@ import { DOCUMENT } from '@angular/common';

import { FileUploadControl } from './../helpers/control.class';
import { IsNullOrEmpty } from './../helpers/helpers.class';
import { FileUploadService } from './../services/file-upload.service';
import { InsertAnimation } from './../animations/insert.animation';
import { ZoomAnimation } from './../animations/zoom.animation';
import { FileUploadAbstract } from './file-upload-abstract.component';
/** @type {?} */

@@ -19,16 +20,14 @@ export var DRAGOVER = 'dragover';

export var TOUCHED = 'ng-touched';
var FileUploadComponent = /** @class */ (function () {
var FileUploadComponent = /** @class */ (function (_super) {
tslib_1.__extends(FileUploadComponent, _super);
function FileUploadComponent(fileUploadService, hostElementRef, renderer, document, cdr) {
var _this = this;
this.fileUploadService = fileUploadService;
this.hostElementRef = hostElementRef;
this.renderer = renderer;
this.document = document;
this.cdr = cdr;
this.control = null;
this.templateRef = null;
this.listItem = null;
this.templateContext = {
$implicit: this.fileUploadService.isFileDragDropAvailable(),
isFileDragDropAvailable: this.fileUploadService.isFileDragDropAvailable()
var _this = _super.call(this, hostElementRef, renderer, cdr) || this;
_this.fileUploadService = fileUploadService;
_this.document = document;
_this.control = null;
_this.templateRef = null;
_this.listItem = null;
_this.templateContext = {
$implicit: _this.fileUploadService.isFileDragDropAvailable(),
isFileDragDropAvailable: _this.fileUploadService.isFileDragDropAvailable()
};

@@ -38,52 +37,12 @@ /**

*/
this.zoomText = 'static';
this.listVisible = false;
this.hooks = [];
this.subscriptions = [];
this.onChange = (/**
_this.zoomText = 'static';
_this.listVisible = false;
_this.onTouch = (/**
* @return {?}
*/
function () { });
this.onTouch = (/**
* @return {?}
*/
function () {
_this.renderer.addClass(_this.hostElementRef.nativeElement, TOUCHED);
});
return _this;
}
/**
* @return {?}
*/
FileUploadComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (IsNullOrEmpty(this.control)) {
this.control = new FileUploadControl();
}
this.setEvents();
this.checkAndMarkAsDisabled();
this.connectToForm();
};
/**
* @return {?}
*/
FileUploadComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.cdr.detach();
this.hooks.forEach((/**
* @param {?} hook
* @return {?}
*/
function (hook) { return hook(); }));
this.hooks.length = 0;
this.subscriptions.forEach((/**
* @param {?} subscription
* @return {?}
*/
function (subscription) { return subscription.unsubscribe(); }));
this.subscriptions.length = 0;
};
Object.defineProperty(FileUploadComponent.prototype, "hasFiles", {

@@ -110,7 +69,7 @@ get: /**

/**
* @private
* @protected
* @return {?}
*/
FileUploadComponent.prototype.setEvents = /**
* @private
* @protected
* @return {?}

@@ -120,2 +79,3 @@ */

var _this = this;
_super.prototype.setEvents.call(this);
['drag', 'dragstart', 'dragend', 'dragover', 'dragenter', 'dragleave', 'drop'].forEach((/**

@@ -154,7 +114,2 @@ * @param {?} eventName

}));
this.subscriptions.push(this.control.statusChanges.subscribe((/**
* @param {?} status
* @return {?}
*/
function (status) { return _this.checkAndMarkAsDisabled(); })));
this.subscriptions.push(this.control.valueChanges.subscribe((/**

@@ -170,27 +125,7 @@ * @param {?} files

function (status) { return _this.toggleListVisibility(); })));
this.subscriptions.push(this.control.eventsChanges.subscribe((/**
* @param {?} event
* @return {?}
*/
function (event) { return _this.triggerEvent(event); })));
};
/**
* @private
* @param {?} event
* @return {?}
*/
FileUploadComponent.prototype.triggerEvent = /**
* @private
* @param {?} event
* @return {?}
*/
function (event) {
if (typeof this.label.nativeElement[event] === 'function') {
this.label.nativeElement[event]();
}
};
/**
* @param {?} event
* @return {?}
*/
FileUploadComponent.prototype.onKeyDown = /**

@@ -208,20 +143,2 @@ * @param {?} event

* @private
* @return {?}
*/
FileUploadComponent.prototype.checkAndMarkAsDisabled = /**
* @private
* @return {?}
*/
function () {
if (this.control.disabled) {
this.renderer.addClass(this.hostElementRef.nativeElement, 'disabled');
this.renderer.setProperty(this.input.nativeElement, 'disabled', true);
}
else {
this.renderer.removeClass(this.hostElementRef.nativeElement, 'disabled');
this.renderer.setProperty(this.input.nativeElement, 'disabled', false);
}
};
/**
* @private
* @param {?} event

@@ -375,23 +292,2 @@ * @return {?}

/**
* ControlValueAccessor implementation
*/
/**
* ControlValueAccessor implementation
* @private
* @return {?}
*/
FileUploadComponent.prototype.connectToForm = /**
* ControlValueAccessor implementation
* @private
* @return {?}
*/
function () {
var _this = this;
this.subscriptions.push(this.control.valueChanges.subscribe((/**
* @param {?} v
* @return {?}
*/
function (v) { return _this.onChange(v); })));
};
/**
* model -> view changes

@@ -540,3 +436,3 @@ */

return FileUploadComponent;
}());
}(FileUploadAbstract));
export { FileUploadComponent };

@@ -567,17 +463,2 @@ if (false) {

*/
FileUploadComponent.prototype.hooks;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.subscriptions;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.onChange;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.onTouch;

@@ -590,19 +471,4 @@ /** @type {?} */

*/
FileUploadComponent.prototype.hostElementRef;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.renderer;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.document;
/**
* @type {?}
* @private
*/
FileUploadComponent.prototype.cdr;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFFTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFFVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFJekUsT0FBTyxFQUFFLGlCQUFpQixFQUFhLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRS9ELE1BQU0sS0FBTyxRQUFRLEdBQUcsVUFBVTs7QUFDbEMsTUFBTSxLQUFPLE9BQU8sR0FBRyxZQUFZO0FBRW5DO0lBZ0RJLDZCQUNXLGlCQUFvQyxFQUNuQyxjQUEwQixFQUMxQixRQUFtQixFQUNELFFBQVEsRUFDMUIsR0FBc0I7UUFMbEMsaUJBTUk7UUFMTyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFZO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDRCxhQUFRLEdBQVIsUUFBUSxDQUFBO1FB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QkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFO3dCQUNSLGFBQWE7d0JBQ2IsZUFBZTtxQkFDbEI7O2lCQUNKOzs7O2dCQXhCUSxpQkFBaUI7Z0JBcEJ0QixVQUFVO2dCQUVWLFNBQVM7Z0RBNkVKLE1BQU0sU0FBQyxRQUFRO2dCQXBFcEIsaUJBQWlCOzs7MEJBb0NoQixLQUFLOzhCQUdMLFlBQVksU0FBQyxhQUFhOzJCQUcxQixZQUFZLFNBQUMsTUFBTTt3QkFHbkIsU0FBUyxTQUFDLFVBQVU7d0JBR3BCLFNBQVMsU0FBQyxVQUFVOzJCQTBDcEIsV0FBVyxTQUFDLGlCQUFpQjs0QkFLN0IsV0FBVyxTQUFDLGtCQUFrQjt5QkE2RzlCLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0lBNkZwQywwQkFBQztDQUFBLEFBelJELElBeVJDO1NBdlFZLG1CQUFtQjs7O0lBRTVCLHNDQUN5Qzs7SUFFekMsMENBQzRDOztJQUU1Qyx1Q0FDeUM7O0lBRXpDLG9DQUMyQzs7SUFFM0Msb0NBQzJDOztJQUUzQyw4Q0FHRTs7Ozs7SUFHRix1Q0FBNEQ7O0lBQzVELDBDQUFvQzs7Ozs7SUFFcEMsb0NBQW9DOzs7OztJQUVwQyw0Q0FBZ0Q7Ozs7O0lBeUxoRCx1Q0FBc0Q7Ozs7O0lBVXRELHNDQUVFOztJQWxNRSxnREFBMkM7Ozs7O0lBQzNDLDZDQUFrQzs7Ozs7SUFDbEMsdUNBQTJCOzs7OztJQUMzQix1Q0FBa0M7Ozs7O0lBQ2xDLGtDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIEluamVjdCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRmlsZVVwbG9hZENvbnRyb2wsIEZpbGVFdmVudCB9IGZyb20gJy4vLi4vaGVscGVycy9jb250cm9sLmNsYXNzJztcclxuaW1wb3J0IHsgSXNOdWxsT3JFbXB0eSB9IGZyb20gJy4vLi4vaGVscGVycy9oZWxwZXJzLmNsYXNzJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLy4uL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnNlcnRBbmltYXRpb24gfSBmcm9tICcuLy4uL2FuaW1hdGlvbnMvaW5zZXJ0LmFuaW1hdGlvbic7XHJcbmltcG9ydCB7IFpvb21BbmltYXRpb24gfSBmcm9tICcuLy4uL2FuaW1hdGlvbnMvem9vbS5hbmltYXRpb24nO1xyXG5cclxuZXhwb3J0IGNvbnN0IERSQUdPVkVSID0gJ2RyYWdvdmVyJztcclxuZXhwb3J0IGNvbnN0IFRPVUNIRUQgPSAnbmctdG91Y2hlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBgZmlsZS11cGxvYWQ6bm90KFtzaW1wbGVdKWAsXHJcbiAgICB0ZW1wbGF0ZVVybDogYC4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWxgLFxyXG4gICAgc3R5bGVVcmxzOiBbYC4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3NgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRTZXJ2aWNlLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVVcGxvYWRDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICBab29tQW5pbWF0aW9uLFxyXG4gICAgICAgIEluc2VydEFuaW1hdGlvblxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb250cm9sOiBGaWxlVXBsb2FkQ29udHJvbCA9IG51bGw7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZCgncGxhY2Vob2xkZXInKVxyXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKCdpdGVtJylcclxuICAgIHB1YmxpYyBsaXN0SXRlbTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKVxyXG4gICAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2xhYmVsUmVmJylcclxuICAgIHB1YmxpYyBsYWJlbDogRWxlbWVudFJlZjxIVE1MTGFiZWxFbGVtZW50PjtcclxuXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVDb250ZXh0ID0ge1xyXG4gICAgICAgICRpbXBsaWNpdDogdGhpcy5maWxlVXBsb2FkU2VydmljZS5pc0ZpbGVEcmFnRHJvcEF2YWlsYWJsZSgpLFxyXG4gICAgICAgIGlzRmlsZURyYWdEcm9wQXZhaWxhYmxlOiB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmlzRmlsZURyYWdEcm9wQXZhaWxhYmxlKClcclxuICAgIH07XHJcblxyXG4gICAgLyoqIGFuaW1hdGlvbiBmaWVsZHMgKi9cclxuICAgIHB1YmxpYyB6b29tVGV4dDogJ3pvb21PdXQnIHwgJ3pvb21JbicgfCAnc3RhdGljJyA9ICdzdGF0aWMnO1xyXG4gICAgcHVibGljIGxpc3RWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBob29rczogQXJyYXk8RnVuY3Rpb24+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGhvc3RFbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50LFxyXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7fVxyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICBpZiAoSXNOdWxsT3JFbXB0eSh0aGlzLmNvbnRyb2wpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbCA9IG5ldyBGaWxlVXBsb2FkQ29udHJvbCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXRFdmVudHMoKTtcclxuICAgICAgICB0aGlzLmNoZWNrQW5kTWFya0FzRGlzYWJsZWQoKTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RUb0Zvcm0oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0YWNoKCk7XHJcbiAgICAgICAgdGhpcy5ob29rcy5mb3JFYWNoKChob29rKSA9PiBob29rKCkpO1xyXG4gICAgICAgIHRoaXMuaG9va3MubGVuZ3RoID0gMDtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtZmlsZXMnKVxyXG4gICAgcHVibGljIGdldCBoYXNGaWxlcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmlzTGlzdFZpc2libGUgJiYgdGhpcy5jb250cm9sLnNpemUgPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubmctaW52YWxpZCcpXHJcbiAgICBwdWJsaWMgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJiB0aGlzLmNvbnRyb2wuaW52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEV2ZW50cygpOiB2b2lkIHtcclxuICAgICAgICBbJ2RyYWcnLCAnZHJhZ3N0YXJ0JywgJ2RyYWdlbmQnLCAnZHJhZ292ZXInLCAnZHJhZ2VudGVyJywgJ2RyYWdsZWF2ZScsICdkcm9wJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9va3MucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsIGV2ZW50TmFtZSwgKGV2ZW50OiBhbnkpID0+IHRoaXMucHJldmVudERyYWdFdmVudHMoZXZlbnQpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBbJ2RyYWdvdmVyJywgJ2RyYWdlbnRlciddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhvb2tzLnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSwgKGV2ZW50OiBhbnkpID0+IHRoaXMub25EcmFnT3ZlcihldmVudCkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIFsnZHJhZ2xlYXZlJywgJ2RyYWdlbmQnLCAnZHJvcCddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhvb2tzLnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSwgKGV2ZW50OiBhbnkpID0+IHRoaXMub25EcmFnTGVhdmUoZXZlbnQpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChzdGF0dXMpID0+IHRoaXMuY2hlY2tBbmRNYXJrQXNEaXNhYmxlZCgpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoZmlsZXMpID0+IHRoaXMucmVuZGVyVmlldygpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wubGlzdFZpc2liaWxpdHlDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB0aGlzLnRvZ2dsZUxpc3RWaXNpYmlsaXR5KCkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5ldmVudHNDaGFuZ2VzLnN1YnNjcmliZSgoZXZlbnQ6IEZpbGVFdmVudCkgPT4gdGhpcy50cmlnZ2VyRXZlbnQoZXZlbnQpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0cmlnZ2VyRXZlbnQoZXZlbnQ6IEZpbGVFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5sYWJlbC5uYXRpdmVFbGVtZW50W2V2ZW50XSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICB0aGlzLmxhYmVsLm5hdGl2ZUVsZW1lbnRbZXZlbnRdKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgfHwgZXZlbnQua2V5Q29kZSA9PT0gMzIpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tBbmRNYXJrQXNEaXNhYmxlZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcmV2ZW50RHJhZ0V2ZW50cyhldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbmRlclZpZXcoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmxpc3RWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSB0aGlzLmNvbnRyb2wuaXNMaXN0VmlzaWJsZSAmJiB0aGlzLmNvbnRyb2wuc2l6ZSA+IDAgPyAnem9vbU91dCcgOiAnc3RhdGljJztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzaG93TGlzdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy56b29tVGV4dCAhPT0gJ3N0YXRpYycpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGlkZUxpc3QoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdG9nZ2xlTGlzdFZpc2liaWxpdHkoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IHRoaXMuY29udHJvbC5pc0xpc3RWaXNpYmxlICYmIHRoaXMuY29udHJvbC5zaXplID4gMDtcclxuICAgICAgICBpZiAodGhpcy5saXN0VmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xpc3QtdmlzaWJsZScpO1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UZXh0ID0gJ3N0YXRpYyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogb24gZmlsZSBvdmVyIGFkZCBjbGFzcyBuYW1lXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIERSQUdPVkVSKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG9uIG1vdXNlIG91dCByZW1vdmUgY2xhc3MgbmFtZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgRFJBR09WRVIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzO1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5hZGRGaWxlcyhmaWxlcyk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSAoZXZlbnQudGFyZ2V0KSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJiBpbnB1dC5maWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5hZGRGaWxlcyhpbnB1dC5maWxlcyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dEVsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFySW5wdXRFbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjb25uZWN0VG9Gb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodikgPT4gdGhpcy5vbkNoYW5nZSh2KSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgICAvKipcclxuICAgICAgKiBtb2RlbCAtPiB2aWV3IGNoYW5nZXNcclxuICAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKGZpbGVzOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZmlsZXMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZmlsZXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAodjogQXJyYXk8RmlsZT4pID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHJlZ2lzdGVyIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIG9uIFVJIGNoYW5nZVxyXG4gICAgICogdG8gdXBkYXRlIHZpZXcgLT4gbW9kZWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2OiBBcnJheTxGaWxlPikgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFRPVUNIRUQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuZGlzYWJsZShpc0Rpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgem9vbUFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5pc0xpc3RWaXNpYmxlICYmIHRoaXMuY29udHJvbC5zaXplID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dMaXN0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlTGlzdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ3N0YXRpYycgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ3pvb21PdXQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaGlkZS10ZXh0Jyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoaWRlLXRleHQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnem9vbUluJykge1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UZXh0ID0gJ3N0YXRpYyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhbmltYXRpb25MaXN0RmluaXNoZWQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJykge1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UZXh0ID0gJ3pvb21Jbic7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGlzdC12aXNpYmxlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldmVudC5mcm9tU3RhdGUgPT09ICd2b2lkJykge1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UZXh0ID0gJ3N0YXRpYyc7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGlzdC12aXNpYmxlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBRUwsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixZQUFZLEVBQ1osVUFBVSxFQUNWLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRXRFLE1BQU0sS0FBTyxRQUFRLEdBQUcsVUFBVTs7QUFDbEMsTUFBTSxLQUFPLE9BQU8sR0FBRyxZQUFZO0FBRW5DO0lBa0J5QywrQ0FBa0I7SUEwQnZELDZCQUNXLGlCQUFvQyxFQUMzQyxjQUEwQixFQUMxQixRQUFtQixFQUNPLFFBQVEsRUFDbEMsR0FBc0I7UUFMMUIsWUFPSSxrQkFBTSxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxTQUN2QztRQVBVLHVCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFHakIsY0FBUSxHQUFSLFFBQVEs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b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRTt3QkFDUixhQUFhO3dCQUNiLGVBQWU7cUJBQ2xCOztpQkFDSjs7OztnQkF6QlEsaUJBQWlCO2dCQWpCdEIsVUFBVTtnQkFFVixTQUFTO2dEQXVFSixNQUFNLFNBQUMsUUFBUTtnQkEvRHBCLGlCQUFpQjs7OzBCQW1DaEIsS0FBSzs4QkFHTCxZQUFZLFNBQUMsYUFBYTsyQkFHMUIsWUFBWSxTQUFDLE1BQU07d0JBR25CLFNBQVMsU0FBQyxVQUFVO3dCQUdwQixTQUFTLFNBQUMsVUFBVTsyQkFzQnBCLFdBQVcsU0FBQyxpQkFBaUI7NEJBSzdCLFdBQVcsU0FBQyxrQkFBa0I7eUJBc0Y5QixZQUFZLFNBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDOztJQWtGcEMsMEJBQUM7Q0FBQSxBQW5PRCxDQWtCeUMsa0JBQWtCLEdBaU4xRDtTQWpOWSxtQkFBbUI7OztJQUU1QixzQ0FDeUM7O0lBRXpDLDBDQUM0Qzs7SUFFNUMsdUNBQ3lDOztJQUV6QyxvQ0FDMkM7O0lBRTNDLG9DQUMyQzs7SUFFM0MsOENBR0U7Ozs7O0lBR0YsdUNBQTREOztJQUM1RCwwQ0FBb0M7Ozs7O0lBaUpwQyxzQ0FFRTs7SUFoSkUsZ0RBQTJDOzs7OztJQUczQyx1Q0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbmplY3QsXHJcbiAgICBUZW1wbGF0ZVJlZixcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29udGVudENoaWxkLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIENoYW5nZURldGVjdG9yUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuaW1wb3J0IHsgRmlsZVVwbG9hZENvbnRyb2wgfSBmcm9tICcuLy4uL2hlbHBlcnMvY29udHJvbC5jbGFzcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5zZXJ0QW5pbWF0aW9uIH0gZnJvbSAnLi8uLi9hbmltYXRpb25zL2luc2VydC5hbmltYXRpb24nO1xyXG5pbXBvcnQgeyBab29tQW5pbWF0aW9uIH0gZnJvbSAnLi8uLi9hbmltYXRpb25zL3pvb20uYW5pbWF0aW9uJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEFic3RyYWN0IH0gZnJvbSAnLi9maWxlLXVwbG9hZC1hYnN0cmFjdC5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERSQUdPVkVSID0gJ2RyYWdvdmVyJztcclxuZXhwb3J0IGNvbnN0IFRPVUNIRUQgPSAnbmctdG91Y2hlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBgZmlsZS11cGxvYWQ6bm90KFtzaW1wbGVdKWAsXHJcbiAgICB0ZW1wbGF0ZVVybDogYC4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWxgLFxyXG4gICAgc3R5bGVVcmxzOiBbYC4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3NgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRTZXJ2aWNlLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVVcGxvYWRDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICBab29tQW5pbWF0aW9uLFxyXG4gICAgICAgIEluc2VydEFuaW1hdGlvblxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBleHRlbmRzIEZpbGVVcGxvYWRBYnN0cmFjdCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNvbnRyb2w6IEZpbGVVcGxvYWRDb250cm9sID0gbnVsbDtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKCdwbGFjZWhvbGRlcicpXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ2l0ZW0nKVxyXG4gICAgcHVibGljIGxpc3RJdGVtOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXHJcbiAgICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbGFiZWxSZWYnKVxyXG4gICAgcHVibGljIGxhYmVsOiBFbGVtZW50UmVmPEhUTUxMYWJlbEVsZW1lbnQ+O1xyXG5cclxuICAgIHB1YmxpYyB0ZW1wbGF0ZUNvbnRleHQgPSB7XHJcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmlzRmlsZURyYWdEcm9wQXZhaWxhYmxlKCksXHJcbiAgICAgICAgaXNGaWxlRHJhZ0Ryb3BBdmFpbGFibGU6IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UuaXNGaWxlRHJhZ0Ryb3BBdmFpbGFibGUoKVxyXG4gICAgfTtcclxuXHJcbiAgICAvKiogYW5pbWF0aW9uIGZpZWxkcyAqL1xyXG4gICAgcHVibGljIHpvb21UZXh0OiAnem9vbU91dCcgfCAnem9vbUluJyB8ICdzdGF0aWMnID0gJ3N0YXRpYyc7XHJcbiAgICBwdWJsaWMgbGlzdFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlLFxyXG4gICAgICAgIGhvc3RFbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudCxcclxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihob3N0RWxlbWVudFJlZiwgcmVuZGVyZXIsIGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtZmlsZXMnKVxyXG4gICAgcHVibGljIGdldCBoYXNGaWxlcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmlzTGlzdFZpc2libGUgJiYgdGhpcy5jb250cm9sLnNpemUgPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubmctaW52YWxpZCcpXHJcbiAgICBwdWJsaWMgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJiB0aGlzLmNvbnRyb2wuaW52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0RXZlbnRzKCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLnNldEV2ZW50cygpO1xyXG4gICAgICAgIFsnZHJhZycsICdkcmFnc3RhcnQnLCAnZHJhZ2VuZCcsICdkcmFnb3ZlcicsICdkcmFnZW50ZXInLCAnZHJhZ2xlYXZlJywgJ2Ryb3AnXS5mb3JFYWNoKChldmVudE5hbWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ob29rcy5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgZXZlbnROYW1lLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5wcmV2ZW50RHJhZ0V2ZW50cyhldmVudCkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIFsnZHJhZ292ZXInLCAnZHJhZ2VudGVyJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9va3MucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkRyYWdPdmVyKGV2ZW50KSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgWydkcmFnbGVhdmUnLCAnZHJhZ2VuZCcsICdkcm9wJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9va3MucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkRyYWdMZWF2ZShldmVudCkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoZmlsZXMpID0+IHRoaXMucmVuZGVyVmlldygpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wubGlzdFZpc2liaWxpdHlDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB0aGlzLnRvZ2dsZUxpc3RWaXNpYmlsaXR5KCkpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzIHx8IGV2ZW50LmtleUNvZGUgPT09IDMyKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5jbGljaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByZXZlbnREcmFnRXZlbnRzKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVuZGVyVmlldygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMubGlzdFZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy56b29tVGV4dCA9IHRoaXMuY29udHJvbC5pc0xpc3RWaXNpYmxlICYmIHRoaXMuY29udHJvbC5zaXplID4gMCA/ICd6b29tT3V0JyA6ICdzdGF0aWMnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3dMaXN0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnpvb21UZXh0ICE9PSAnc3RhdGljJykge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoaWRlTGlzdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0b2dnbGVMaXN0VmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gdGhpcy5jb250cm9sLmlzTGlzdFZpc2libGUgJiYgdGhpcy5jb250cm9sLnNpemUgPiAwO1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGlzdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSAnc3RhdGljJztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBvbiBmaWxlIG92ZXIgYWRkIGNsYXNzIG5hbWVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgRFJBR09WRVIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogb24gbW91c2Ugb3V0IHJlbW92ZSBjbGFzcyBuYW1lXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBEUkFHT1ZFUik7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXHJcbiAgICBwdWJsaWMgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLmFkZEZpbGVzKGZpbGVzKTtcclxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IChldmVudC50YXJnZXQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmRpc2FibGVkICYmIGlucHV0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLmFkZEZpbGVzKGlucHV0LmZpbGVzKTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhcklucHV0RWwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2xlYXJJbnB1dEVsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgIC8qKlxyXG4gICAgICAqIG1vZGVsIC0+IHZpZXcgY2hhbmdlc1xyXG4gICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUoZmlsZXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChmaWxlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmaWxlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVnaXN0ZXIgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgb24gVUkgY2hhbmdlXHJcbiAgICAgKiB0byB1cGRhdGUgdmlldyAtPiBtb2RlbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IEFycmF5PEZpbGU+KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgVE9VQ0hFRCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKGlzRGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB6b29tQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmlzTGlzdFZpc2libGUgJiYgdGhpcy5jb250cm9sLnNpemUgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0xpc3QoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGVMaXN0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXZlbnQuZnJvbVN0YXRlID09PSAnc3RhdGljJyAmJiBldmVudC50b1N0YXRlID09PSAnem9vbU91dCcpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoaWRlLXRleHQnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hpZGUtdGV4dCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd6b29tSW4nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSAnc3RhdGljJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFuaW1hdGlvbkxpc3RGaW5pc2hlZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSAnem9vbUluJztcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsaXN0LXZpc2libGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ3ZvaWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVRleHQgPSAnc3RhdGljJztcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsaXN0LXZpc2libGUnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -5,59 +5,25 @@ /**

*/
import * as tslib_1 from "tslib";
import { Component, Input, ElementRef, Renderer2, HostBinding, TemplateRef, ViewChild, ChangeDetectionStrategy, ContentChild, forwardRef, ChangeDetectorRef } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { FileUploadControl } from './../helpers/control.class';
import { IsNullOrEmpty } from './../helpers/helpers.class';
import { FileUploadService } from './../services/file-upload.service';
import { TOUCHED } from './file-upload.component';
var SimpleFileUploadComponent = /** @class */ (function () {
import { FileUploadAbstract } from './file-upload-abstract.component';
var SimpleFileUploadComponent = /** @class */ (function (_super) {
tslib_1.__extends(SimpleFileUploadComponent, _super);
function SimpleFileUploadComponent(fileUploadService, hostElementRef, renderer, cdr) {
var _this = this;
this.fileUploadService = fileUploadService;
this.hostElementRef = hostElementRef;
this.renderer = renderer;
this.cdr = cdr;
this.control = null;
this.buttonRef = null;
this.placeholderRef = null;
this.subscriptions = [];
this.onChange = (/**
var _this = _super.call(this, hostElementRef, renderer, cdr) || this;
_this.fileUploadService = fileUploadService;
_this.control = null;
_this.buttonRef = null;
_this.placeholderRef = null;
_this.onTouch = (/**
* @return {?}
*/
function () { });
this.onTouch = (/**
* @return {?}
*/
function () {
_this.renderer.addClass(_this.hostElementRef.nativeElement, TOUCHED);
});
return _this;
}
/**
* @return {?}
*/
SimpleFileUploadComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (IsNullOrEmpty(this.control)) {
this.control = new FileUploadControl();
}
this.setEvents();
this.checkAndMarkAsDisabled();
this.connectToForm();
};
/**
* @return {?}
*/
SimpleFileUploadComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.cdr.detach();
this.subscriptions.forEach((/**
* @param {?} subscription
* @return {?}
*/
function (subscription) { return subscription.unsubscribe(); }));
this.subscriptions.length = 0;
};
Object.defineProperty(SimpleFileUploadComponent.prototype, "hasFiles", {

@@ -84,41 +50,2 @@ get: /**

/**
* @private
* @return {?}
*/
SimpleFileUploadComponent.prototype.setEvents = /**
* @private
* @return {?}
*/
function () {
var _this = this;
this.subscriptions.push(this.control.statusChanges.subscribe((/**
* @param {?} status
* @return {?}
*/
function (status) { return _this.checkAndMarkAsDisabled(); })));
this.subscriptions.push(this.control.eventsChanges.subscribe((/**
* @param {?} event
* @return {?}
*/
function (event) { return _this.triggerEvent(event); })));
};
/**
* @private
* @return {?}
*/
SimpleFileUploadComponent.prototype.checkAndMarkAsDisabled = /**
* @private
* @return {?}
*/
function () {
if (this.control.disabled) {
this.renderer.addClass(this.hostElementRef.nativeElement, 'disabled');
this.renderer.setProperty(this.input.nativeElement, 'disabled', true);
}
else {
this.renderer.removeClass(this.hostElementRef.nativeElement, 'disabled');
this.renderer.setProperty(this.input.nativeElement, 'disabled', false);
}
};
/**
* @param {?} event

@@ -152,23 +79,2 @@ * @return {?}

/**
* ControlValueAccessor implementation
*/
/**
* ControlValueAccessor implementation
* @private
* @return {?}
*/
SimpleFileUploadComponent.prototype.connectToForm = /**
* ControlValueAccessor implementation
* @private
* @return {?}
*/
function () {
var _this = this;
this.subscriptions.push(this.control.valueChanges.subscribe((/**
* @param {?} v
* @return {?}
*/
function (v) { return _this.onChange(v); })));
};
/**
* model -> view changes

@@ -233,20 +139,5 @@ */

/**
* @private
* @param {?} event
* @return {?}
*/
SimpleFileUploadComponent.prototype.triggerEvent = /**
* @private
* @param {?} event
* @return {?}
*/
function (event) {
if (typeof this.label.nativeElement[event] === 'function') {
this.label.nativeElement[event]();
}
};
/**
* @param {?} event
* @return {?}
*/
SimpleFileUploadComponent.prototype.onKeyDown = /**

@@ -298,3 +189,3 @@ * @param {?} event

return SimpleFileUploadComponent;
}());
}(FileUploadAbstract));
export { SimpleFileUploadComponent };

@@ -316,31 +207,6 @@ if (false) {

*/
SimpleFileUploadComponent.prototype.subscriptions;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.onChange;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.onTouch;
/** @type {?} */
SimpleFileUploadComponent.prototype.fileUploadService;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.hostElementRef;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.renderer;
/**
* @type {?}
* @private
*/
SimpleFileUploadComponent.prototype.cdr;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFVBQVUsRUFDVixTQUFTLEVBRVQsV0FBVyxFQUNYLFdBQVcsRUFDWCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxEO0lBaUNJLG1DQUNXLGlCQUFvQyxFQUNuQyxjQUEwQixFQUMxQixRQUFtQixFQUNuQixHQUFzQjtRQUpsQyxpQkFLSTtRQUpPLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQVk7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXBCM0IsWUFBTyxHQUFzQixJQUFJLENBQUM7UUFHbEMsY0FBUyxHQUFxQixJQUFJLENBQUM7UUFHbkMsbUJBQWMsR0FBcUIsSUFBSSxDQUFDO1FBUXZDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQXdGeEMsYUFBUTs7O1FBQTZCLGNBQU8sQ0FBQyxFQUFDO1FBVTlDLFlBQU87OztRQUFlO1lB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MkM7Ozs7O0lBRTNDLGtEQUFnRDs7Ozs7SUF3RmhELDZDQUFzRDs7Ozs7SUFVdEQsNENBRUU7O0lBakdFLHNEQUEyQzs7Ozs7SUFDM0MsbURBQWtDOzs7OztJQUNsQyw2Q0FBMkI7Ozs7O0lBQzNCLHdDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb250cm9sLCBGaWxlRXZlbnQgfSBmcm9tICcuLy4uL2hlbHBlcnMvY29udHJvbC5jbGFzcyc7XHJcbmltcG9ydCB7IElzTnVsbE9yRW1wdHkgfSBmcm9tICcuLy4uL2hlbHBlcnMvaGVscGVycy5jbGFzcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVE9VQ0hFRCB9IGZyb20gJy4vZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IGBmaWxlLXVwbG9hZFtzaW1wbGVdYCxcclxuICAgIHRlbXBsYXRlVXJsOiBgLi9zaW1wbGUtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWxgLFxyXG4gICAgc3R5bGVVcmxzOiBbYC4vc2ltcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzYF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBGaWxlVXBsb2FkU2VydmljZSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTaW1wbGVGaWxlVXBsb2FkQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9XHJcbiAgICBdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBsZUZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29udHJvbDogRmlsZVVwbG9hZENvbnRyb2wgPSBudWxsO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ2J1dHRvbicpXHJcbiAgICBwdWJsaWMgYnV0dG9uUmVmOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKCdwbGFjZWhvbGRlcicpXHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXJSZWY6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJylcclxuICAgIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdsYWJlbFJlZicpXHJcbiAgICBwdWJsaWMgbGFiZWw6IEVsZW1lbnRSZWY8SFRNTExhYmVsRWxlbWVudD47XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGhvc3RFbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICAgICkge31cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKElzTnVsbE9yRW1wdHkodGhpcy5jb250cm9sKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wgPSBuZXcgRmlsZVVwbG9hZENvbnRyb2woKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0RXZlbnRzKCk7XHJcbiAgICAgICAgdGhpcy5jaGVja0FuZE1hcmtBc0Rpc2FibGVkKCk7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0VG9Gb3JtKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGFjaCgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1maWxlcycpXHJcbiAgICBwdWJsaWMgZ2V0IGhhc0ZpbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaXNMaXN0VmlzaWJsZSAmJiB0aGlzLmNvbnRyb2wuc2l6ZSA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZy1pbnZhbGlkJylcclxuICAgIHB1YmxpYyBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5jb250cm9sLmRpc2FibGVkICYmIHRoaXMuY29udHJvbC5pbnZhbGlkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0RXZlbnRzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4gdGhpcy5jaGVja0FuZE1hcmtBc0Rpc2FibGVkKCkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5ldmVudHNDaGFuZ2VzLnN1YnNjcmliZSgoZXZlbnQ6IEZpbGVFdmVudCkgPT4gdGhpcy50cmlnZ2VyRXZlbnQoZXZlbnQpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0FuZE1hcmtBc0Rpc2FibGVkKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgdHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IChldmVudC50YXJnZXQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmRpc2FibGVkICYmIGlucHV0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKEFycmF5LmZyb20oaW5wdXQuZmlsZXMpKTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhcklucHV0RWwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2xlYXJJbnB1dEVsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNvbm5lY3RUb0Zvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2KSA9PiB0aGlzLm9uQ2hhbmdlKHYpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgIC8qKlxyXG4gICAgICAqIG1vZGVsIC0+IHZpZXcgY2hhbmdlc1xyXG4gICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUoZmlsZXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChmaWxlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmaWxlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh2OiBBcnJheTxGaWxlPikgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVnaXN0ZXIgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgb24gVUkgY2hhbmdlXHJcbiAgICAgKiB0byB1cGRhdGUgdmlldyAtPiBtb2RlbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IEFycmF5PEZpbGU+KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgVE9VQ0hFRCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKGlzRGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdHJpZ2dlckV2ZW50KGV2ZW50OiBGaWxlRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGFiZWwubmF0aXZlRWxlbWVudFtldmVudF0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5sYWJlbC5uYXRpdmVFbGVtZW50W2V2ZW50XSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzIHx8IGV2ZW50LmtleUNvZGUgPT09IDMyKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5jbGljaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFFTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxXQUFXLEVBQ1gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixZQUFZLEVBQ1osVUFBVSxFQUNWLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFO0lBYytDLHFEQUFrQjtJQWlCN0QsbUNBQ1csaUJBQW9DLEVBQzNDLGNBQTBCLEVBQzFCLFFBQW1CLEVBQ25CLEdBQXNCO1FBSjFCLFlBTUksa0JBQU0sY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsU0FDdkM7UUFOVSx1QkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBZnhDLGFBQU8sR0FBc0IsSUFBSSxDQUFDO1FBR2xDLGVBQVMsR0FBcUIsSUFBSSxDQUFDO1FBR25DLG9CQUFjLEdBQXFCLElBQUksQ0FBQztRQTJEdkMsYUFBTzs7O1FBQWU7WUFDMUIsS0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkUs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QWMrQyxrQkFBa0IsR0FzRmhFO1NBdEZZLHlCQUF5Qjs7O0lBRWxDLDRDQUN5Qzs7SUFFekMsOENBQzBDOztJQUUxQyxtREFDK0M7O0lBRS9DLDBDQUMyQzs7SUFFM0MsMENBQzJDOzs7OztJQXFEM0MsNENBRUU7O0lBcERFLHNEQUEyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgRmlsZVVwbG9hZENvbnRyb2wgfSBmcm9tICcuLy4uL2hlbHBlcnMvY29udHJvbC5jbGFzcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVE9VQ0hFRCB9IGZyb20gJy4vZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEFic3RyYWN0IH0gZnJvbSAnLi9maWxlLXVwbG9hZC1hYnN0cmFjdC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogYGZpbGUtdXBsb2FkW3NpbXBsZV1gLFxyXG4gICAgdGVtcGxhdGVVcmw6IGAuL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbGAsXHJcbiAgICBzdHlsZVVybHM6IFtgLi9zaW1wbGUtZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3NgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRTZXJ2aWNlLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNpbXBsZUZpbGVVcGxvYWRDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudCBleHRlbmRzIEZpbGVVcGxvYWRBYnN0cmFjdCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNvbnRyb2w6IEZpbGVVcGxvYWRDb250cm9sID0gbnVsbDtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKCdidXR0b24nKVxyXG4gICAgcHVibGljIGJ1dHRvblJlZjogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZCgncGxhY2Vob2xkZXInKVxyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyUmVmOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXHJcbiAgICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbGFiZWxSZWYnKVxyXG4gICAgcHVibGljIGxhYmVsOiBFbGVtZW50UmVmPEhUTUxMYWJlbEVsZW1lbnQ+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBmaWxlVXBsb2FkU2VydmljZTogRmlsZVVwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgaG9zdEVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihob3N0RWxlbWVudFJlZiwgcmVuZGVyZXIsIGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtZmlsZXMnKVxyXG4gICAgcHVibGljIGdldCBoYXNGaWxlcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmlzTGlzdFZpc2libGUgJiYgdGhpcy5jb250cm9sLnNpemUgPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubmctaW52YWxpZCcpXHJcbiAgICBwdWJsaWMgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJiB0aGlzLmNvbnRyb2wuaW52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IChldmVudC50YXJnZXQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmRpc2FibGVkICYmIGlucHV0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKEFycmF5LmZyb20oaW5wdXQuZmlsZXMpKTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhcklucHV0RWwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2xlYXJJbnB1dEVsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgIC8qKlxyXG4gICAgICAqIG1vZGVsIC0+IHZpZXcgY2hhbmdlc1xyXG4gICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUoZmlsZXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChmaWxlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmaWxlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVnaXN0ZXIgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgb24gVUkgY2hhbmdlXHJcbiAgICAgKiB0byB1cGRhdGUgdmlldyAtPiBtb2RlbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IEFycmF5PEZpbGU+KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgVE9VQ0hFRCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKGlzRGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgfHwgZXZlbnQua2V5Q29kZSA9PT0gMzIpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==

@@ -302,3 +302,3 @@ /**

*/
function () { return FilesLimitValidator; })),
function () { return FilesAcceptValidator; })),
multi: true

@@ -329,2 +329,2 @@ }],

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaXBsYWIvbmd4LWZpbGUtdXBsb2FkLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy92YWxpZGF0b3JzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBaUMsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBZ0IzRDtJQUFBO0lBNkRBLENBQUM7Ozs7O0lBL0JVLHVDQUFXOzs7O0lBQWxCLFVBQW1CLE9BQXNCO1FBQ3JDLElBQUksVUFBVSxJQUFJLE9BQU87ZUFDbEIsU0FBUyxJQUFJLE9BQU87ZUFDcEIsU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ25CO1NBQ0Y7SUFDTCxDQUFDOzs7OztJQUVNLG9DQUFROzs7O0lBQWYsVUFBZ0IsQ0FBa0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRU0scURBQXlCOzs7O0lBQWhDLFVBQWlDLEVBQWM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFTyw0Q0FBZ0I7Ozs7SUFBeEI7O1lBQ1EsT0FBTyxHQUFHLElBQUk7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUIs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QVU7Ozs0QkFBQyxjQUFNLE9BQUEsbUJBQW1CLEVBQW5CLENBQW1CLEVBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNkLENBQUM7b0JBQ0YsSUFBSSxFQUFFLEVBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFDO2lCQUNwRDs7O3lCQUdJLEtBQUs7O0lBMkJWLDJCQUFDO0NBQUEsQUF0Q0QsSUFzQ0M7U0E3Qlksb0JBQW9COzs7SUFFN0Isc0NBQ3NCOzs7OztJQUV0Qix5Q0FBK0I7Ozs7O0lBRS9CLHdDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4sIEZpbGVVcGxvYWRWYWxpZGF0b3JzIH0gZnJvbSAnLi8uLi9oZWxwZXJzL3ZhbGlkYXRvcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBJc051bGxPckVtcHR5IH0gZnJvbSAnLi8uLi9oZWxwZXJzL2hlbHBlcnMuY2xhc3MnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBIERpcmVjdGl2ZSB0aGF0IGFkZHMgdGhlIGBmaWxlc2l6ZWAgdmFsaWRhdG9yIHRvIGNvbnRyb2xzIG1hcmtlZCB3aXRoIHRoZVxyXG4gKiBgZmlsZXNpemVgIGF0dHJpYnV0ZS5cclxuICpcclxuICogIyMjIEV4YW1wbGVcclxuICpcclxuICogYGBgXHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIGZpbGVzaXplPVwiODMwMDAwXCI+PC9maWxlLXVwbG9hZD5cclxuICogPGZpbGUtdXBsb2FkIG5hbWU9XCJmaWxlc1wiIG5nTW9kZWwgW2ZpbGVzaXplXT1cIjgzMDAwMFwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIG1pblNpemU9XCIwXCIgbWF4PVwiNjIwMFwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogYFtmaWxlc2l6ZV1bZm9ybUNvbnRyb2xOYW1lXSxbZmlsZXNpemVdW2Zvcm1Db250cm9sXSxbZmlsZXNpemVdW25nTW9kZWxdLFxyXG4gICAgW21pbnNpemVdW2Zvcm1Db250cm9sTmFtZV0sW21pbnNpemVdW2Zvcm1Db250cm9sXSxbbWluc2l6ZV1bbmdNb2RlbF0sXHJcbiAgICBbbWF4c2l6ZV1bZm9ybUNvbnRyb2xOYW1lXSxbbWF4c2l6ZV1bZm9ybUNvbnRyb2xdLFttYXhzaXplXVtuZ01vZGVsXWAsXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlU2l6ZVZhbGlkYXRvciksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICdbYXR0ci5maWxlc2l6ZV0nOiAnZmlsZXNpemUgPyBmaWxlc2l6ZSA6IG51bGwnLFxyXG4gICAgICAgICdbYXR0ci5taW5zaXplXSc6ICdtaW5zaXplID8gbWluc2l6ZSA6IG51bGwnLFxyXG4gICAgICAgICdbYXR0ci5tYXhzaXplXSc6ICdtYXhzaXplID8gbWF4c2l6ZSA6IG51bGwnXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlU2l6ZVZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZpbGVzaXplOiBzdHJpbmd8bnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWluc2l6ZTogc3RyaW5nfG51bWJlcjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1heHNpemU6IHN0cmluZ3xudW1iZXI7XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3I6IFZhbGlkYXRvckZuO1xyXG5cclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2ZpbGVzaXplJyBpbiBjaGFuZ2VzIFxyXG4gICAgICAgICAgICB8fCAnbWF4c2l6ZScgaW4gY2hhbmdlcyBcclxuICAgICAgICAgICAgfHwgJ21pbnNpemUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgIHRoaXMuX2NyZWF0ZVZhbGlkYXRvcigpO1xyXG4gICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzfG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRvcihjKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjsgXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY3JlYXRlVmFsaWRhdG9yKCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBtYXhTaXplID0gbnVsbDtcclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkodGhpcy5tYXhzaXplKSkge1xyXG4gICAgICAgICAgICBtYXhTaXplID0gdHlwZW9mIHRoaXMubWF4c2l6ZSA9PT0gJ3N0cmluZycgPyBwYXJzZUludCh0aGlzLm1heHNpemUsIDEwKSA6IHRoaXMubWF4c2l6ZTtcclxuICAgICAgICB9IGVsc2UgaWYoIUlzTnVsbE9yRW1wdHkodGhpcy5maWxlc2l6ZSkpIHtcclxuICAgICAgICAgICAgbWF4U2l6ZSA9IHR5cGVvZiB0aGlzLmZpbGVzaXplID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHRoaXMuZmlsZXNpemUsIDEwKSA6IHRoaXMuZmlsZXNpemU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBtaW5TaXplID0gdHlwZW9mIHRoaXMubWluc2l6ZSA9PT0gJ3N0cmluZycgPyBwYXJzZUludCh0aGlzLm1pbnNpemUsIDEwKSA6IHRoaXMubWluc2l6ZTtcclxuXHJcbiAgICAgICAgdGhpcy52YWxpZGF0b3IgPSBGaWxlVXBsb2FkVmFsaWRhdG9ycy5zaXplUmFuZ2UoeyBtYXhTaXplLCBtaW5TaXplIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEEgRGlyZWN0aXZlIHRoYXQgYWRkcyB0aGUgYGZpbGVzbGltaXRgIHZhbGlkYXRvciB0byBjb250cm9scyBtYXJrZWQgd2l0aCB0aGVcclxuICogYGZpbGVzbGltaXRgIGF0dHJpYnV0ZS5cclxuICpcclxuICogIyMjIEV4YW1wbGVcclxuICpcclxuICogYGBgXHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIGZpbGVzbGltaXQ9XCIyXCI+PC9maWxlLXVwbG9hZD5cclxuICogPGZpbGUtdXBsb2FkIG5hbWU9XCJmaWxlc1wiIG5nTW9kZWwgW2ZpbGVzbGltaXRdPVwiMlwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tmaWxlc2xpbWl0XVtmb3JtQ29udHJvbE5hbWVdLFtmaWxlc2xpbWl0XVtmb3JtQ29udHJvbF0sW2ZpbGVzbGltaXRdW25nTW9kZWxdJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVzTGltaXRWYWxpZGF0b3IpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XSxcclxuICAgIGhvc3Q6IHsnW2F0dHIuZmlsZXNsaW1pdF0nOiAnZmlsZXNsaW1pdCA/IGZpbGVzbGltaXQgOiBudWxsJ31cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVzTGltaXRWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3IsIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlc2xpbWl0OiBzdHJpbmd8bnVtYmVyO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbjtcclxuXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCdmaWxlc2xpbWl0JyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLl9jcmVhdGVWYWxpZGF0b3IoKTtcclxuICAgICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnN8bnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZXNsaW1pdCAhPSBudWxsID8gdGhpcy52YWxpZGF0b3IoYykgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuOyBcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jcmVhdGVWYWxpZGF0b3IoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0b3IgPSBGaWxlVXBsb2FkVmFsaWRhdG9ycy5maWxlc0xpbWl0KHR5cGVvZiB0aGlzLmZpbGVzbGltaXQgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGhpcy5maWxlc2xpbWl0LCAxMCkgOiB0aGlzLmZpbGVzbGltaXQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEEgRGlyZWN0aXZlIHRoYXQgYWRkcyB0aGUgYGFjY2VwdGAgdmFsaWRhdG9yIHRvIGNvbnRyb2xzIG1hcmtlZCB3aXRoIHRoZVxyXG4gKiBgYWNjZXB0YCBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqICMjIyBFeGFtcGxlXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBhY2NlcHQ9XCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCI+PC9maWxlLXVwbG9hZD5cclxuICogPGZpbGUtdXBsb2FkIG5hbWU9XCJmaWxlc1wiIG5nTW9kZWwgW2FjY2VwdF09XCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCI+PC9maWxlLXVwbG9hZD5cclxuICogYGBgXHJcbiAqIFxyXG4gKiBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgdmFsdWUsIHNlcGFyYXRlIHRoZSB2YWx1ZXMgd2l0aCBhIGNvbW1hIChlLmcuIDxmaWxlLXVwbG9hZCBhY2NlcHQ9XCJhdWRpby8qLHZpZGVvLyosaW1hZ2UvKlwiPjwvZmlsZS11cGxvYWQ+LlxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1thY2NlcHRdW2Zvcm1Db250cm9sTmFtZV0sW2FjY2VwdF1bZm9ybUNvbnRyb2xdLFthY2NlcHRdW25nTW9kZWxdJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVzTGltaXRWYWxpZGF0b3IpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XSxcclxuICAgIGhvc3Q6IHsnW2F0dHIuYWNjZXB0XSc6ICdhY2NlcHQgPyBhY2NlcHQgOiBudWxsJ31cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVzQWNjZXB0VmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkNoYW5nZXMge1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYWNjZXB0OiBzdHJpbmc7XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3I6IFZhbGlkYXRvckZuO1xyXG5cclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2FjY2VwdCcgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgdGhpcy5fY3JlYXRlVmFsaWRhdG9yKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnN8bnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0ICE9IG51bGwgPyB0aGlzLnZhbGlkYXRvcihjKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY3JlYXRlVmFsaWRhdG9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yID0gRmlsZVVwbG9hZFZhbGlkYXRvcnMuYWNjZXB0KHRoaXMuYWNjZXB0LnNwbGl0KCcsJykpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaXBsYWIvbmd4LWZpbGUtdXBsb2FkLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy92YWxpZGF0b3JzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUErRCxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBaUMsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBaUIzRDtJQUFBO0lBNkRBLENBQUM7Ozs7O0lBL0JVLHVDQUFXOzs7O0lBQWxCLFVBQW1CLE9BQXNCO1FBQ3JDLElBQUksVUFBVSxJQUFJLE9BQU87ZUFDbEIsU0FBUyxJQUFJLE9BQU87ZUFDcEIsU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ25CO1NBQ0Y7SUFDTCxDQUFDOzs7OztJQUVNLG9DQUFROzs7O0lBQWYsVUFBZ0IsQ0FBa0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRU0scURBQXlCOzs7O0lBQWhDLFVBQWlDLEVBQWM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFTyw0Q0FBZ0I7Ozs7SUFBeEI7O1lBQ1EsT0FBTyxHQUFHLElBQUk7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUIs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QVU7Ozs0QkFBQyxjQUFNLE9BQUEsb0JBQW9CLEVBQXBCLENBQW9CLEVBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNkLENBQUM7b0JBQ0YsSUFBSSxFQUFFLEVBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFDO2lCQUNwRDs7O3lCQUdJLEtBQUs7O0lBMkJWLDJCQUFDO0NBQUEsQUF0Q0QsSUFzQ0M7U0E3Qlksb0JBQW9COzs7SUFFN0Isc0NBQ3NCOzs7OztJQUV0Qix5Q0FBK0I7Ozs7O0lBRS9CLHdDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgSG9zdCwgU2VsZiwgT3B0aW9uYWwsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgRmlsZVVwbG9hZFZhbGlkYXRvcnMgfSBmcm9tICcuLy4uL2hlbHBlcnMvdmFsaWRhdG9ycy5jbGFzcyc7XHJcbmltcG9ydCB7IElzTnVsbE9yRW1wdHkgfSBmcm9tICcuLy4uL2hlbHBlcnMvaGVscGVycy5jbGFzcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuXHJcblxyXG4vKipcclxuICogQSBEaXJlY3RpdmUgdGhhdCBhZGRzIHRoZSBgZmlsZXNpemVgIHZhbGlkYXRvciB0byBjb250cm9scyBtYXJrZWQgd2l0aCB0aGVcclxuICogYGZpbGVzaXplYCBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqICMjIyBFeGFtcGxlXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBmaWxlc2l6ZT1cIjgzMDAwMFwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIFtmaWxlc2l6ZV09XCI4MzAwMDBcIj48L2ZpbGUtdXBsb2FkPlxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBtaW5TaXplPVwiMFwiIG1heD1cIjYyMDBcIj48L2ZpbGUtdXBsb2FkPlxyXG4gKiBgYGBcclxuICpcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IGBbZmlsZXNpemVdW2Zvcm1Db250cm9sTmFtZV0sW2ZpbGVzaXplXVtmb3JtQ29udHJvbF0sW2ZpbGVzaXplXVtuZ01vZGVsXSxcclxuICAgIFttaW5zaXplXVtmb3JtQ29udHJvbE5hbWVdLFttaW5zaXplXVtmb3JtQ29udHJvbF0sW21pbnNpemVdW25nTW9kZWxdLFxyXG4gICAgW21heHNpemVdW2Zvcm1Db250cm9sTmFtZV0sW21heHNpemVdW2Zvcm1Db250cm9sXSxbbWF4c2l6ZV1bbmdNb2RlbF1gLFxyXG4gICAgcHJvdmlkZXJzOiBbe1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVNpemVWYWxpZGF0b3IpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XSxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICAnW2F0dHIuZmlsZXNpemVdJzogJ2ZpbGVzaXplID8gZmlsZXNpemUgOiBudWxsJyxcclxuICAgICAgICAnW2F0dHIubWluc2l6ZV0nOiAnbWluc2l6ZSA/IG1pbnNpemUgOiBudWxsJyxcclxuICAgICAgICAnW2F0dHIubWF4c2l6ZV0nOiAnbWF4c2l6ZSA/IG1heHNpemUgOiBudWxsJ1xyXG4gICAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVNpemVWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3IsIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlc2l6ZTogc3RyaW5nfG51bWJlcjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1pbnNpemU6IHN0cmluZ3xudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtYXhzaXplOiBzdHJpbmd8bnVtYmVyO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbjtcclxuXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCdmaWxlc2l6ZScgaW4gY2hhbmdlcyBcclxuICAgICAgICAgICAgfHwgJ21heHNpemUnIGluIGNoYW5nZXMgXHJcbiAgICAgICAgICAgIHx8ICdtaW5zaXplJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLl9jcmVhdGVWYWxpZGF0b3IoKTtcclxuICAgICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9yc3xudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0b3IoYyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47IFxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NyZWF0ZVZhbGlkYXRvcigpOiB2b2lkIHtcclxuICAgICAgICBsZXQgbWF4U2l6ZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKCFJc051bGxPckVtcHR5KHRoaXMubWF4c2l6ZSkpIHtcclxuICAgICAgICAgICAgbWF4U2l6ZSA9IHR5cGVvZiB0aGlzLm1heHNpemUgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGhpcy5tYXhzaXplLCAxMCkgOiB0aGlzLm1heHNpemU7XHJcbiAgICAgICAgfSBlbHNlIGlmKCFJc051bGxPckVtcHR5KHRoaXMuZmlsZXNpemUpKSB7XHJcbiAgICAgICAgICAgIG1heFNpemUgPSB0eXBlb2YgdGhpcy5maWxlc2l6ZSA9PT0gJ3N0cmluZycgPyBwYXJzZUludCh0aGlzLmZpbGVzaXplLCAxMCkgOiB0aGlzLmZpbGVzaXplO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbWluU2l6ZSA9IHR5cGVvZiB0aGlzLm1pbnNpemUgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGhpcy5taW5zaXplLCAxMCkgOiB0aGlzLm1pbnNpemU7XHJcblxyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yID0gRmlsZVVwbG9hZFZhbGlkYXRvcnMuc2l6ZVJhbmdlKHsgbWF4U2l6ZSwgbWluU2l6ZSB9KTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBBIERpcmVjdGl2ZSB0aGF0IGFkZHMgdGhlIGBmaWxlc2xpbWl0YCB2YWxpZGF0b3IgdG8gY29udHJvbHMgbWFya2VkIHdpdGggdGhlXHJcbiAqIGBmaWxlc2xpbWl0YCBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqICMjIyBFeGFtcGxlXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBmaWxlc2xpbWl0PVwiMlwiPjwvZmlsZS11cGxvYWQ+XHJcbiAqIDxmaWxlLXVwbG9hZCBuYW1lPVwiZmlsZXNcIiBuZ01vZGVsIFtmaWxlc2xpbWl0XT1cIjJcIj48L2ZpbGUtdXBsb2FkPlxyXG4gKiBgYGBcclxuICpcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZmlsZXNsaW1pdF1bZm9ybUNvbnRyb2xOYW1lXSxbZmlsZXNsaW1pdF1bZm9ybUNvbnRyb2xdLFtmaWxlc2xpbWl0XVtuZ01vZGVsXScsXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlc0xpbWl0VmFsaWRhdG9yKSxcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfV0sXHJcbiAgICBob3N0OiB7J1thdHRyLmZpbGVzbGltaXRdJzogJ2ZpbGVzbGltaXQgPyBmaWxlc2xpbWl0IDogbnVsbCd9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlc0xpbWl0VmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkNoYW5nZXMge1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZmlsZXNsaW1pdDogc3RyaW5nfG51bWJlcjtcclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRvcjogVmFsaWRhdG9yRm47XHJcblxyXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKCkgPT4gdm9pZDtcclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmICgnZmlsZXNsaW1pdCcgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgdGhpcy5fY3JlYXRlVmFsaWRhdG9yKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzfG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzbGltaXQgIT0gbnVsbCA/IHRoaXMudmFsaWRhdG9yKGMpIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjsgXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY3JlYXRlVmFsaWRhdG9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yID0gRmlsZVVwbG9hZFZhbGlkYXRvcnMuZmlsZXNMaW1pdCh0eXBlb2YgdGhpcy5maWxlc2xpbWl0ID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHRoaXMuZmlsZXNsaW1pdCwgMTApIDogdGhpcy5maWxlc2xpbWl0KTtcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEEgRGlyZWN0aXZlIHRoYXQgYWRkcyB0aGUgYGFjY2VwdGAgdmFsaWRhdG9yIHRvIGNvbnRyb2xzIG1hcmtlZCB3aXRoIHRoZVxyXG4gKiBgYWNjZXB0YCBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqICMjIyBFeGFtcGxlXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiA8ZmlsZS11cGxvYWQgbmFtZT1cImZpbGVzXCIgbmdNb2RlbCBhY2NlcHQ9XCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCI+PC9maWxlLXVwbG9hZD5cclxuICogPGZpbGUtdXBsb2FkIG5hbWU9XCJmaWxlc1wiIG5nTW9kZWwgW2FjY2VwdF09XCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCI+PC9maWxlLXVwbG9hZD5cclxuICogYGBgXHJcbiAqIFxyXG4gKiBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgdmFsdWUsIHNlcGFyYXRlIHRoZSB2YWx1ZXMgd2l0aCBhIGNvbW1hIChlLmcuIDxmaWxlLXVwbG9hZCBhY2NlcHQ9XCJhdWRpby8qLHZpZGVvLyosaW1hZ2UvKlwiPjwvZmlsZS11cGxvYWQ+LlxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1thY2NlcHRdW2Zvcm1Db250cm9sTmFtZV0sW2FjY2VwdF1bZm9ybUNvbnRyb2xdLFthY2NlcHRdW25nTW9kZWxdJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVzQWNjZXB0VmFsaWRhdG9yKSxcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfV0sXHJcbiAgICBob3N0OiB7J1thdHRyLmFjY2VwdF0nOiAnYWNjZXB0ID8gYWNjZXB0IDogbnVsbCd9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlc0FjY2VwdFZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGFjY2VwdDogc3RyaW5nO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbjtcclxuXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCdhY2NlcHQnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgIHRoaXMuX2NyZWF0ZVZhbGlkYXRvcigpO1xyXG4gICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzfG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjY2VwdCAhPSBudWxsID8gdGhpcy52YWxpZGF0b3IoYykgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NyZWF0ZVZhbGlkYXRvcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRvciA9IEZpbGVVcGxvYWRWYWxpZGF0b3JzLmFjY2VwdCh0aGlzLmFjY2VwdC5zcGxpdCgnLCcpKTtcclxuICAgIH1cclxufVxyXG4iXX0=

@@ -21,2 +21,3 @@ /**

import { FileSizeValidator, FilesLimitValidator, FilesAcceptValidator } from './directives/validators.directive';
import { FilesAcceptDirective } from './directives/attribute.directive';
export { FileUploadControl } from './helpers/control.class';

@@ -53,2 +54,3 @@ export { FileUploadValidators } from './helpers/validators.class';

FilesAcceptValidator,
FilesAcceptDirective,
SimpleFileUploadComponent

@@ -62,2 +64,3 @@ ],

FilesAcceptValidator,
FilesAcceptDirective,
SimpleFileUploadComponent

@@ -84,2 +87,2 @@ ],

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImZpbGUtdXBsb2FkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU9BLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFpQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RDtJQW1DSSwwQkFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQyxvRkFBb0Y7UUFDcEYsMkRBQTJEO0lBQy9ELENBQUM7Ozs7SUFFRCx3Q0FBYTs7O0lBQWIsY0FBaUIsQ0FBQzs7Z0JBeENyQixRQUFRLFNBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3FCQUNkO29CQUNELFlBQVksRUFBRTt3QkFDVixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUV2Qiw0QkFBNEI7d0JBRTVCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBRXBCLHlCQUF5QjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLG1CQUFtQjt3QkFDbkIsNEJBQTRCO3dCQUU1QixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUVwQix5QkFBeUI7cUJBQzVCO29CQUNELGVBQWUsRUFBRTt3QkFDYixtQkFBbUI7cUJBQ3RCO2lCQUNKOzs7O2dCQWhEa0IsUUFBUTs7SUF5RDNCLHVCQUFDO0NBQUEsQUF6Q0QsSUF5Q0M7U0FSWSxnQkFBZ0I7Ozs7OztJQUViLG9DQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIGwxMG5cclxuICpcclxuICogQnkgSXZhbiBQaW50YXIsIGh0dHA6Ly93d3cucGludGFyLWl2YW4uY29tXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZVxyXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3BJdmFuL2ZpbGUtdXBsb2FkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZFxyXG4gKi9cclxuaW1wb3J0IHsgTmdNb2R1bGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtbGlzdC1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLWljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEF0dHJpYnV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC1hdHRyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNpbXBsZUZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2ltcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBGaWxlU2l6ZVZhbGlkYXRvciwgRmlsZXNMaW1pdFZhbGlkYXRvciwgRmlsZXNBY2NlcHRWYWxpZGF0b3IgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy5kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0IHsgRmlsZVVwbG9hZENvbnRyb2wgfSBmcm9tICcuL2hlbHBlcnMvY29udHJvbC5jbGFzcyc7XHJcbmV4cG9ydCB7IEZpbGVVcGxvYWRWYWxpZGF0b3JzLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJy4vaGVscGVycy92YWxpZGF0b3JzLmNsYXNzJztcclxuZXhwb3J0IHsgRmlsZVVwbG9hZFR5cGVzIH0gZnJvbSAnLi9oZWxwZXJzL2ZpbGUtdHlwZXMuY2xhc3MnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICAgICAgRmlsZVVwbG9hZExpc3RJdGVtQ29tcG9uZW50LFxyXG4gICAgICAgIEZpbGVVcGxvYWRJY29uQ29tcG9uZW50LFxyXG5cclxuICAgICAgICBGaWxlVXBsb2FkQXR0cmlidXRlQ29tcG9uZW50LFxyXG5cclxuICAgICAgICBGaWxlU2l6ZVZhbGlkYXRvcixcclxuICAgICAgICBGaWxlc0xpbWl0VmFsaWRhdG9yLFxyXG4gICAgICAgIEZpbGVzQWNjZXB0VmFsaWRhdG9yLFxyXG5cclxuICAgICAgICBTaW1wbGVGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICAgICAgRmlsZVVwbG9hZEF0dHJpYnV0ZUNvbXBvbmVudCxcclxuXHJcbiAgICAgICAgRmlsZVNpemVWYWxpZGF0b3IsXHJcbiAgICAgICAgRmlsZXNMaW1pdFZhbGlkYXRvcixcclxuICAgICAgICBGaWxlc0FjY2VwdFZhbGlkYXRvcixcclxuXHJcbiAgICAgICAgU2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgICAgIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRNb2R1bGUge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgLy8gY29uc3QgZmlsZVVwbG9hZEVsZW1lbnQgPSBjcmVhdGVDdXN0b21FbGVtZW50KEZpbGVVcGxvYWRDb21wb25lbnQsIHsgaW5qZWN0b3IgfSk7XHJcbiAgICAgICAgLy8gY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdmaWxlLXVwbG9hZCcsIGZpbGVVcGxvYWRFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0RvQm9vdHN0cmFwKCkge31cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImZpbGUtdXBsb2FkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU9BLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFpQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RDtJQXFDSSwwQkFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQyxvRkFBb0Y7UUFDcEYsMkRBQTJEO0lBQy9ELENBQUM7Ozs7SUFFRCx3Q0FBYTs7O0lBQWIsY0FBaUIsQ0FBQzs7Z0JBMUNyQixRQUFRLFNBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3FCQUNkO29CQUNELFlBQVksRUFBRTt3QkFDVixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUV2Qiw0QkFBNEI7d0JBRTVCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFFcEIseUJBQXlCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsbUJBQW1CO3dCQUNuQiw0QkFBNEI7d0JBRTVCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFFcEIseUJBQXlCO3FCQUM1QjtvQkFDRCxlQUFlLEVBQUU7d0JBQ2IsbUJBQW1CO3FCQUN0QjtpQkFDSjs7OztnQkFuRGtCLFFBQVE7O0lBNEQzQix1QkFBQztDQUFBLEFBM0NELElBMkNDO1NBUlksZ0JBQWdCOzs7Ozs7SUFFYixvQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBsMTBuXHJcbiAqXHJcbiAqIEJ5IEl2YW4gUGludGFyLCBodHRwOi8vd3d3LnBpbnRhci1pdmFuLmNvbVxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcclxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wSXZhbi9maWxlLXVwbG9hZC9ibG9iL21hc3Rlci9SRUFETUUubWRcclxuICovXHJcbmltcG9ydCB7IE5nTW9kdWxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLWxpc3QtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC1pY29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRBdHRyaWJ1dGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtYXR0ci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaW1wbGVGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpbXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgRmlsZVNpemVWYWxpZGF0b3IsIEZpbGVzTGltaXRWYWxpZGF0b3IsIEZpbGVzQWNjZXB0VmFsaWRhdG9yIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmlsZXNBY2NlcHREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXR0cmlidXRlLmRpcmVjdGl2ZSc7XHJcblxyXG5leHBvcnQgeyBGaWxlVXBsb2FkQ29udHJvbCB9IGZyb20gJy4vaGVscGVycy9jb250cm9sLmNsYXNzJztcclxuZXhwb3J0IHsgRmlsZVVwbG9hZFZhbGlkYXRvcnMsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnLi9oZWxwZXJzL3ZhbGlkYXRvcnMuY2xhc3MnO1xyXG5leHBvcnQgeyBGaWxlVXBsb2FkVHlwZXMgfSBmcm9tICcuL2hlbHBlcnMvZmlsZS10eXBlcy5jbGFzcyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgICAgICBGaWxlVXBsb2FkTGlzdEl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgRmlsZVVwbG9hZEljb25Db21wb25lbnQsXHJcblxyXG4gICAgICAgIEZpbGVVcGxvYWRBdHRyaWJ1dGVDb21wb25lbnQsXHJcblxyXG4gICAgICAgIEZpbGVTaXplVmFsaWRhdG9yLFxyXG4gICAgICAgIEZpbGVzTGltaXRWYWxpZGF0b3IsXHJcbiAgICAgICAgRmlsZXNBY2NlcHRWYWxpZGF0b3IsXHJcbiAgICAgICAgRmlsZXNBY2NlcHREaXJlY3RpdmUsXHJcblxyXG4gICAgICAgIFNpbXBsZUZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgICAgICBGaWxlVXBsb2FkQXR0cmlidXRlQ29tcG9uZW50LFxyXG5cclxuICAgICAgICBGaWxlU2l6ZVZhbGlkYXRvcixcclxuICAgICAgICBGaWxlc0xpbWl0VmFsaWRhdG9yLFxyXG4gICAgICAgIEZpbGVzQWNjZXB0VmFsaWRhdG9yLFxyXG4gICAgICAgIEZpbGVzQWNjZXB0RGlyZWN0aXZlLFxyXG5cclxuICAgICAgICBTaW1wbGVGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZW50cnlDb21wb25lbnRzOiBbXHJcbiAgICAgICAgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZE1vZHVsZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICAvLyBjb25zdCBmaWxlVXBsb2FkRWxlbWVudCA9IGNyZWF0ZUN1c3RvbUVsZW1lbnQoRmlsZVVwbG9hZENvbXBvbmVudCwgeyBpbmplY3RvciB9KTtcclxuICAgICAgICAvLyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2ZpbGUtdXBsb2FkJywgZmlsZVVwbG9hZEVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nRG9Cb290c3RyYXAoKSB7fVxyXG59XHJcbiJdfQ==

@@ -34,2 +34,4 @@ /**

this.eventsChanged = new Subject();
this.accept = null;
this.acceptChanged = new BehaviorSubject(this.accept);
/**

@@ -51,2 +53,6 @@ * track status `VALID`, `INVALID` or `DISABLED`

/**
* track changed on accept attribute
*/
this.acceptChanges = this.acceptChanged.asObservable();
/**
* emit an event every time user programmatically ask for certain event

@@ -396,2 +402,66 @@ */

/**
* specifies the types of files that the server accepts
*
* ### Example
*
* ```
* acceptFiles("file_extension|audio/*|video/*|image/*|media_type")
* ```
*
* To specify more than one value, separate the values with a comma (e.g. acceptFiles("audio/*,video/*,image/*").
*
*/
/**
* specifies the types of files that the server accepts
*
* ### Example
*
* ```
* acceptFiles("file_extension|audio/*|video/*|image/*|media_type")
* ```
*
* To specify more than one value, separate the values with a comma (e.g. acceptFiles("audio/*,video/*,image/*").
*
* @template THIS
* @this {THIS}
* @param {?} accept
* @return {THIS}
*/
FileUploadControl.prototype.acceptFiles = /**
* specifies the types of files that the server accepts
*
* ### Example
*
* ```
* acceptFiles("file_extension|audio/*|video/*|image/*|media_type")
* ```
*
* To specify more than one value, separate the values with a comma (e.g. acceptFiles("audio/*,video/*,image/*").
*
* @template THIS
* @this {THIS}
* @param {?} accept
* @return {THIS}
*/
function (accept) {
(/** @type {?} */ (this)).accept = accept;
(/** @type {?} */ (this)).acceptChanged.next((/** @type {?} */ (this)).accept);
return (/** @type {?} */ (this));
};
/**
* @template THIS
* @this {THIS}
* @return {THIS}
*/
FileUploadControl.prototype.acceptAll = /**
* @template THIS
* @this {THIS}
* @return {THIS}
*/
function () {
(/** @type {?} */ (this)).accept = null;
(/** @type {?} */ (this)).acceptChanged.next((/** @type {?} */ (this)).accept);
return (/** @type {?} */ (this));
};
/**
* @private

@@ -466,2 +536,12 @@ * @return {?}

/**
* @type {?}
* @private
*/
FileUploadControl.prototype.accept;
/**
* @type {?}
* @private
*/
FileUploadControl.prototype.acceptChanged;
/**
* track status `VALID`, `INVALID` or `DISABLED`

@@ -485,2 +565,7 @@ * @type {?}

/**
* track changed on accept attribute
* @type {?}
*/
FileUploadControl.prototype.acceptChanges;
/**
* emit an event every time user programmatically ask for certain event

@@ -491,2 +576,2 @@ * @type {?}

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJoZWxwZXJzL2NvbnRyb2wuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztJQUc1QyxVQUFPO0lBQ1AsUUFBSztJQUNMLFdBQVE7Ozs7Ozs7O0lBSVIsT0FBUSxPQUFPO0lBQ2YsT0FBUSxPQUFPO0lBQ2YsTUFBTyxNQUFNOzs7QUFHakI7SUF1Q0ksMkJBQVksVUFBMkM7UUFyQy9DLFVBQUssR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTdCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLFdBQU0sR0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTlCLFdBQU0sR0FBZ0MsRUFBRSxDQUFDO1FBRXpDLGVBQVUsR0FBdUIsRUFBRSxDQUFDO1FBRXBDLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBdUIsSUFBSSxPQUFPLEVBQUUsQ0FBQzs7OztRQUtuRCxrQkFBYSxHQUF1QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDOzs7Ozs7UUFPN0QsaUJBQVksR0FBaUMsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7Ozs7O1FBTXJFLDBCQUFxQixHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Ozs7UUFLeEYsa0JBQWEsR0FBMEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUdyRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHOzs7Ozs7OztJQUNJLHlDQUFhOzs7Ozs7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QUFPLENBQUMsQ0FBQzthQUN2RTtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBQ0wsd0JBQUM7QUFBRCxDQUFDLEFBL0xELElBK0xDOzs7Ozs7O0lBN0xHLGtDQUFxQzs7Ozs7SUFFckMsd0NBQTJCOzs7OztJQUUzQixtQ0FBc0M7Ozs7O0lBRXRDLG1DQUFpRDs7Ozs7SUFFakQsdUNBQTRDOzs7OztJQUU1QywwQ0FBdUQ7Ozs7O0lBRXZELDBDQUEwRDs7Ozs7SUFLMUQsMENBQTZFOzs7Ozs7O0lBTzdFLHlDQUFxRjs7Ozs7O0lBTXJGLGtEQUF3Rzs7Ozs7SUFLeEcsMENBQXlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRvckZuLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi92YWxpZGF0b3JzLmNsYXNzJztcclxuaW1wb3J0IHsgSXNOdWxsT3JFbXB0eSB9IGZyb20gJy4vaGVscGVycy5jbGFzcyc7XHJcblxyXG5leHBvcnQgZW51bSBTVEFUVVMge1xyXG4gICAgSU5WQUxJRCxcclxuICAgIFZBTElELFxyXG4gICAgRElTQUJMRURcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmlsZUV2ZW50IHtcclxuICAgIGNsaWNrID0gJ2NsaWNrJyxcclxuICAgIGZvY3VzID0gJ2ZvY3VzJyxcclxuICAgIGJsdXIgPSAnYmx1cidcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb250cm9sIHtcclxuXHJcbiAgICBwcml2YXRlIGZpbGVzOiBTZXQ8RmlsZT4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBsaXN0VmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0dXM6IFNUQVRVUyA9IFNUQVRVUy5WQUxJRDtcclxuXHJcbiAgICBwcml2YXRlIGVycm9yczogQXJyYXk8e1trZXk6IHN0cmluZ106IGFueX0+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3JzOiBBcnJheTxWYWxpZGF0b3JGbj4gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXR1c0NoYW5nZWQ6IFN1YmplY3Q8U1RBVFVTPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBldmVudHNDaGFuZ2VkOiBTdWJqZWN0PEZpbGVFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgc3RhdHVzIGBWQUxJRGAsIGBJTlZBTElEYCBvciBgRElTQUJMRURgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPFNUQVRVUz4gPSB0aGlzLnN0YXR1c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdGhlIHZhbHVlIG9mIHRoZSBjb250cm9sXHJcbiAgICAgKiBjaGFuZ2VzLlxyXG4gICAgICogSW5pdGlhbGx5IHJldHVybnMgbGFzdCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RmlsZT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqIHVzZWQgdG8gdHJpZ2dlciBsYXlvdXQgY2hhbmdlIGZvciBsaXN0IHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3RWaXNpYmlsaXR5Q2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmxpc3RWaXNpYmxlKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGVtaXQgYW4gZXZlbnQgZXZlcnkgdGltZSB1c2VyIHByb2dyYW1tYXRpY2FsbHkgYXNrIGZvciBjZXJ0YWluIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBldmVudHNDaGFuZ2VzOiBPYnNlcnZhYmxlPEZpbGVFdmVudD4gPSB0aGlzLmV2ZW50c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IodmFsaWRhdG9ycz86IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPikge1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCBmdW5jdGlvbnMgdGhhdCBkZXRlcm1pbmVzIHRoZSBzeW5jaHJvbm91cyB2YWxpZGl0eSBvZiB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3JzKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZWZpbmVWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPik6IHZvaWQge1xyXG4gICAgICAgIGlmICghSXNOdWxsT3JFbXB0eSh2YWxpZGF0b3JzKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSBBcnJheS5pc0FycmF5KHZhbGlkYXRvcnMpID8gWy4uLnZhbGlkYXRvcnNdIDogW3ZhbGlkYXRvcnNdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZShmaWxlOiBGaWxlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5hZGQoZmlsZSk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuZGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGaWxlcyhmaWxlczogRmlsZUxpc3QpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFkZE11bHRpcGxlRmlsZXMoQXJyYXkuZnJvbShmaWxlcykpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKiB1c2VkIHRvIHByZXZlbnQgdmFsdWVDaGFuZ2VzIGVtaXQgbW9yZSB0aW1lc1xyXG4gICAgICogd2hlbiBtdWx0aXBsZSBmaWxlcyBhcmUgdXBsb2FkZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhZGRNdWx0aXBsZUZpbGVzKGZpbGVzOiBBcnJheTxGaWxlPik6IHZvaWQge1xyXG4gICAgICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB0aGlzLmZpbGVzLmFkZChmaWxlKSk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID09PSAwICYmIHRoaXMuc3RhdHVzICE9PSBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRFcnJvcigpOiBBcnJheTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbnVtYmVyIG9mIHVwbG9hZGVkIGZpbGVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gbGlzdCBvZiBGaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEFycmF5PEZpbGU+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUoZmlsZXM6IEFycmF5PEZpbGU+KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZE11bHRpcGxlRmlsZXMoZmlsZXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBGb3JtQ29udHJvbC5zZXRWYWx1ZSB3YXMgcHJvdmlkZWQgd2l0aCB3cm9uZyBhcmd1bWVudCB0eXBlLCAke2ZpbGVzfSB3YXMgcHJvdmlkZWQgaW5zdGVhZCBBcnJheTxGaWxlPmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXNldCB0aGUgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xlYXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNMaXN0VmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saXN0VmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TGlzdFZpc2liaWxpdHkoaXNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2libGUgPSBpc1Zpc2libGU7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJpbGl0eUNoYW5nZXMubmV4dCh0aGlzLmxpc3RWaXNpYmxlKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlbmFibGUoaXNFbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gaXNFbmFibGVkID8gU1RBVFVTLlZBTElEIDogU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2FibGUoaXNEaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRGlzYWJsZWQgPyBTVEFUVVMuRElTQUJMRUQgOiBTVEFUVVMuVkFMSUQ7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMuc3RhdHVzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xpY2soKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmNsaWNrKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9jdXMoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmZvY3VzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYmx1cigpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuYmx1cik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRCkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnZhbGlkO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMudmFsaWRhdG9ycy5tYXAoKHZhbGlkYXRvcikgPT4gdmFsaWRhdG9yKHRoaXMpKS5maWx0ZXIoKGlzSW52YWxpZCkgPT4gaXNJbnZhbGlkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50U3RhdGUgIT09IHRoaXMudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMudmFsaWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuSU5WQUxJRCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycy5sZW5ndGggPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJoZWxwZXJzL2NvbnRyb2wuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztJQUc1QyxVQUFPO0lBQ1AsUUFBSztJQUNMLFdBQVE7Ozs7Ozs7O0lBSVIsT0FBUSxPQUFPO0lBQ2YsT0FBUSxPQUFPO0lBQ2YsTUFBTyxNQUFNOzs7QUFHakI7SUFnREksMkJBQVksVUFBMkM7UUE5Q3RDLFVBQUssR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXRDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLFdBQU0sR0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTlCLFdBQU0sR0FBZ0MsRUFBRSxDQUFDO1FBRXpDLGVBQVUsR0FBdUIsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBdUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzRCxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBRWIsa0JBQWEsR0FBNEIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDOzs7O1FBS3BGLGtCQUFhLEdBQXVCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7Ozs7OztRQU83RCxpQkFBWSxHQUFpQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs7Ozs7UUFNckUsMEJBQXFCLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzs7OztRQUt4RixrQkFBYSxHQUF1QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDOzs7O1FB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QXFGOzs7Ozs7SUFNckYsa0RBQXdHOzs7OztJQUt4RywwQ0FBc0Y7Ozs7O0lBS3RGLDBDQUF5RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4vdmFsaWRhdG9ycy5jbGFzcyc7XHJcbmltcG9ydCB7IElzTnVsbE9yRW1wdHkgfSBmcm9tICcuL2hlbHBlcnMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGVudW0gU1RBVFVTIHtcclxuICAgIElOVkFMSUQsXHJcbiAgICBWQUxJRCxcclxuICAgIERJU0FCTEVEXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVFdmVudCB7XHJcbiAgICBjbGljayA9ICdjbGljaycsXHJcbiAgICBmb2N1cyA9ICdmb2N1cycsXHJcbiAgICBibHVyID0gJ2JsdXInXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbCB7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlczogU2V0PEZpbGU+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHByaXZhdGUgbGlzdFZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdHVzOiBTVEFUVVMgPSBTVEFUVVMuVkFMSUQ7XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvcnM6IEFycmF5PHtba2V5OiBzdHJpbmddOiBhbnl9PiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNDaGFuZ2VkOiBTdWJqZWN0PFNUQVRVUz4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRzQ2hhbmdlZDogU3ViamVjdDxGaWxlRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwcml2YXRlIGFjY2VwdDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2VwdENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmFjY2VwdCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBzdGF0dXMgYFZBTElEYCwgYElOVkFMSURgIG9yIGBESVNBQkxFRGBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8U1RBVFVTPiA9IHRoaXMuc3RhdHVzQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGVtaXQgYW4gZXZlbnQgZXZlcnkgdGltZSB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2xcclxuICAgICAqIGNoYW5nZXMuXHJcbiAgICAgKiBJbml0aWFsbHkgcmV0dXJucyBsYXN0IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGaWxlPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byB0cmlnZ2VyIGxheW91dCBjaGFuZ2UgZm9yIGxpc3QgdmlzaWJpbGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdFZpc2liaWxpdHlDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubGlzdFZpc2libGUpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgY2hhbmdlZCBvbiBhY2NlcHQgYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBhY2NlcHRDaGFuZ2VzOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmFjY2VwdENoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdXNlciBwcm9ncmFtbWF0aWNhbGx5IGFzayBmb3IgY2VydGFpbiBldmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzQ2hhbmdlczogT2JzZXJ2YWJsZTxGaWxlRXZlbnQ+ID0gdGhpcy5ldmVudHNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pIHtcclxuICAgICAgICB0aGlzLmRlZmluZVZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzZXQgZnVuY3Rpb25zIHRoYXQgZGV0ZXJtaW5lcyB0aGUgc3luY2hyb25vdXMgdmFsaWRpdHkgb2YgdGhpcyBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmRlZmluZVZhbGlkYXRvcnMobmV3VmFsaWRhdG9ycyk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkodmFsaWRhdG9ycykpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzKSA/IFsuLi52YWxpZGF0b3JzXSA6IFt2YWxpZGF0b3JzXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuYWRkKGZpbGUpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKEFycmF5LmZyb20oZmlsZXMpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byBwcmV2ZW50IHZhbHVlQ2hhbmdlcyBlbWl0IG1vcmUgdGltZXNcclxuICAgICAqIHdoZW4gbXVsdGlwbGUgZmlsZXMgYXJlIHVwbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYWRkTXVsdGlwbGVGaWxlcyhmaWxlczogQXJyYXk8RmlsZT4pOiB2b2lkIHtcclxuICAgICAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4gdGhpcy5maWxlcy5hZGQoZmlsZSkpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnN0YXR1cyAhPT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RXJyb3IoKTogQXJyYXk8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG51bWJlciBvZiB1cGxvYWRlZCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmV0dXJuIGxpc3Qgb2YgRmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBBcnJheTxGaWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFZhbHVlKGZpbGVzOiBBcnJheTxGaWxlPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKGZpbGVzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgRm9ybUNvbnRyb2wuc2V0VmFsdWUgd2FzIHByb3ZpZGVkIHdpdGggd3JvbmcgYXJndW1lbnQgdHlwZSwgJHtmaWxlc30gd2FzIHByb3ZpZGVkIGluc3RlYWQgQXJyYXk8RmlsZT5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVzZXQgdGhlIGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsZWFyKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzTGlzdFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdFZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldExpc3RWaXNpYmlsaXR5KGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gaXNWaXNpYmxlO1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2liaWxpdHlDaGFuZ2VzLm5leHQodGhpcy5saXN0VmlzaWJsZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZW5hYmxlKGlzRW5hYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRW5hYmxlZCA/IFNUQVRVUy5WQUxJRCA6IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNhYmxlKGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpc0Rpc2FibGVkID8gU1RBVFVTLkRJU0FCTEVEIDogU1RBVFVTLlZBTElEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsaWNrKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5jbGljayk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5mb2N1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGJsdXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmJsdXIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3BlY2lmaWVzIHRoZSB0eXBlcyBvZiBmaWxlcyB0aGF0IHRoZSBzZXJ2ZXIgYWNjZXB0c1xyXG4gICAgICpcclxuICAgICAqICMjIyBFeGFtcGxlXHJcbiAgICAgKlxyXG4gICAgICogYGBgXHJcbiAgICAgKiBhY2NlcHRGaWxlcyhcImZpbGVfZXh0ZW5zaW9ufGF1ZGlvLyp8dmlkZW8vKnxpbWFnZS8qfG1lZGlhX3R5cGVcIilcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIFRvIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgc2VwYXJhdGUgdGhlIHZhbHVlcyB3aXRoIGEgY29tbWEgKGUuZy4gYWNjZXB0RmlsZXMoXCJhdWRpby8qLHZpZGVvLyosaW1hZ2UvKlwiKS5cclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY2NlcHRGaWxlcyhhY2NlcHQ6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWNjZXB0ID0gYWNjZXB0O1xyXG4gICAgICAgIHRoaXMuYWNjZXB0Q2hhbmdlZC5uZXh0KHRoaXMuYWNjZXB0KTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWNjZXB0QWxsKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWNjZXB0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmFjY2VwdENoYW5nZWQubmV4dCh0aGlzLmFjY2VwdCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRCkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnZhbGlkO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMudmFsaWRhdG9ycy5tYXAoKHZhbGlkYXRvcikgPT4gdmFsaWRhdG9yKHRoaXMpKS5maWx0ZXIoKGlzSW52YWxpZCkgPT4gaXNJbnZhbGlkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50U3RhdGUgIT09IHRoaXMudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMudmFsaWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuSU5WQUxJRCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycy5sZW5ndGggPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=

@@ -9,11 +9,13 @@ /**

export { FileUploadControl, FileUploadValidators, FileUploadTypes, FileUploadModule } from './public_api';
export { InsertAnimation as ɵd } from './animations/insert.animation';
export { ZoomAnimation as ɵc } from './animations/zoom.animation';
export { FileUploadAttributeComponent as ɵg } from './components/file-upload-attr.component';
export { FileUploadIconComponent as ɵf } from './components/file-upload-icon.component';
export { FileUploadListItemComponent as ɵe } from './components/file-upload-list-item.component';
export { InsertAnimation as ɵe } from './animations/insert.animation';
export { ZoomAnimation as ɵd } from './animations/zoom.animation';
export { FileUploadAbstract as ɵb } from './components/file-upload-abstract.component';
export { FileUploadAttributeComponent as ɵh } from './components/file-upload-attr.component';
export { FileUploadIconComponent as ɵg } from './components/file-upload-icon.component';
export { FileUploadListItemComponent as ɵf } from './components/file-upload-list-item.component';
export { FileUploadComponent as ɵa } from './components/file-upload.component';
export { SimpleFileUploadComponent as ɵk } from './components/simple-file-upload.component';
export { FileSizeValidator as ɵh, FilesAcceptValidator as ɵj, FilesLimitValidator as ɵi } from './directives/validators.directive';
export { FileUploadService as ɵb } from './services/file-upload.service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBsYWItbmd4LWZpbGUtdXBsb2FkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImlwbGFiLW5neC1maWxlLXVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkZBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsNEJBQTRCLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzFGLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ILE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcblxuZXhwb3J0IHtJbnNlcnRBbmltYXRpb24gYXMgybVkfSBmcm9tICcuL2FuaW1hdGlvbnMvaW5zZXJ0LmFuaW1hdGlvbic7XG5leHBvcnQge1pvb21BbmltYXRpb24gYXMgybVjfSBmcm9tICcuL2FuaW1hdGlvbnMvem9vbS5hbmltYXRpb24nO1xuZXhwb3J0IHtGaWxlVXBsb2FkQXR0cmlidXRlQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLWF0dHIuY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZVVwbG9hZEljb25Db21wb25lbnQgYXMgybVmfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkTGlzdEl0ZW1Db21wb25lbnQgYXMgybVlfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVVcGxvYWRDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7U2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudCBhcyDJtWt9IGZyb20gJy4vY29tcG9uZW50cy9zaW1wbGUtZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZVNpemVWYWxpZGF0b3IgYXMgybVoLEZpbGVzQWNjZXB0VmFsaWRhdG9yIGFzIMm1aixGaWxlc0xpbWl0VmFsaWRhdG9yIGFzIMm1aX0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMuZGlyZWN0aXZlJztcbmV4cG9ydCB7RmlsZVVwbG9hZFNlcnZpY2UgYXMgybVifSBmcm9tICcuL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UnOyJdfQ==
export { SimpleFileUploadComponent as ɵm } from './components/simple-file-upload.component';
export { FilesAcceptDirective as ɵl } from './directives/attribute.directive';
export { FileSizeValidator as ɵi, FilesAcceptValidator as ɵk, FilesLimitValidator as ɵj } from './directives/validators.directive';
export { FileUploadService as ɵc } from './services/file-upload.service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBsYWItbmd4LWZpbGUtdXBsb2FkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlwbGFiL25neC1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImlwbGFiLW5neC1maWxlLXVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkZBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFDLDRCQUE0QixJQUFJLEVBQUUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzNGLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDL0YsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDL0gsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0luc2VydEFuaW1hdGlvbiBhcyDJtWV9IGZyb20gJy4vYW5pbWF0aW9ucy9pbnNlcnQuYW5pbWF0aW9uJztcbmV4cG9ydCB7Wm9vbUFuaW1hdGlvbiBhcyDJtWR9IGZyb20gJy4vYW5pbWF0aW9ucy96b29tLmFuaW1hdGlvbic7XG5leHBvcnQge0ZpbGVVcGxvYWRBYnN0cmFjdCBhcyDJtWJ9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC1hYnN0cmFjdC5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkQXR0cmlidXRlQ29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkLWF0dHIuY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZVVwbG9hZEljb25Db21wb25lbnQgYXMgybVnfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkTGlzdEl0ZW1Db21wb25lbnQgYXMgybVmfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVVcGxvYWRDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7U2ltcGxlRmlsZVVwbG9hZENvbXBvbmVudCBhcyDJtW19IGZyb20gJy4vY29tcG9uZW50cy9zaW1wbGUtZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZXNBY2NlcHREaXJlY3RpdmUgYXMgybVsfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXR0cmlidXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQge0ZpbGVTaXplVmFsaWRhdG9yIGFzIMm1aSxGaWxlc0FjY2VwdFZhbGlkYXRvciBhcyDJtWssRmlsZXNMaW1pdFZhbGlkYXRvciBhcyDJtWp9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzLmRpcmVjdGl2ZSc7XG5leHBvcnQge0ZpbGVVcGxvYWRTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJzsiXX0=

@@ -14,3 +14,3 @@ import { BehaviorSubject, Observable } from 'rxjs';

export declare class FileUploadControl {
private files;
private readonly files;
private listVisible;

@@ -20,4 +20,6 @@ private status;

private validators;
private statusChanged;
private eventsChanged;
private readonly statusChanged;
private readonly eventsChanged;
private accept;
private readonly acceptChanged;
/**

@@ -39,2 +41,6 @@ * track status `VALID`, `INVALID` or `DISABLED`

/**
* track changed on accept attribute
*/
readonly acceptChanges: Observable<string>;
/**
* emit an event every time user programmatically ask for certain event

@@ -82,3 +88,17 @@ */

blur(): this;
/**
* specifies the types of files that the server accepts
*
* ### Example
*
* ```
* acceptFiles("file_extension|audio/*|video/*|image/*|media_type")
* ```
*
* To specify more than one value, separate the values with a comma (e.g. acceptFiles("audio/*,video/*,image/*").
*
*/
acceptFiles(accept: string): this;
acceptAll(): this;
private validate;
}

@@ -5,10 +5,12 @@ /**

export * from './public_api';
export { InsertAnimation as ɵd } from './animations/insert.animation';
export { ZoomAnimation as ɵc } from './animations/zoom.animation';
export { FileUploadAttributeComponent as ɵg } from './components/file-upload-attr.component';
export { FileUploadIconComponent as ɵf } from './components/file-upload-icon.component';
export { FileUploadListItemComponent as ɵe } from './components/file-upload-list-item.component';
export { InsertAnimation as ɵe } from './animations/insert.animation';
export { ZoomAnimation as ɵd } from './animations/zoom.animation';
export { FileUploadAbstract as ɵb } from './components/file-upload-abstract.component';
export { FileUploadAttributeComponent as ɵh } from './components/file-upload-attr.component';
export { FileUploadIconComponent as ɵg } from './components/file-upload-icon.component';
export { FileUploadListItemComponent as ɵf } from './components/file-upload-list-item.component';
export { FileUploadComponent as ɵa } from './components/file-upload.component';
export { SimpleFileUploadComponent as ɵk } from './components/simple-file-upload.component';
export { FileSizeValidator as ɵh, FilesAcceptValidator as ɵj, FilesLimitValidator as ɵi } from './directives/validators.directive';
export { FileUploadService as ɵb } from './services/file-upload.service';
export { SimpleFileUploadComponent as ɵm } from './components/simple-file-upload.component';
export { FilesAcceptDirective as ɵl } from './directives/attribute.directive';
export { FileSizeValidator as ɵi, FilesAcceptValidator as ɵk, FilesLimitValidator as ɵj } from './directives/validators.directive';
export { FileUploadService as ɵc } from './services/file-upload.service';

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"FileUploadModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":23,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":26,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":27,"character":8}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"}],"entryComponents":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":58,"character":34}]}],"ngDoBootstrap":[{"__symbolic":"method"}]}},"FileUploadControl":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ValidatorFn"}]}],"setValidators":[{"__symbolic":"method"}],"defineValidators":[{"__symbolic":"method"}],"addFile":[{"__symbolic":"method"}],"removeFile":[{"__symbolic":"method"}],"addFiles":[{"__symbolic":"method"}],"addMultipleFiles":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"setListVisibility":[{"__symbolic":"method"}],"enable":[{"__symbolic":"method"}],"disable":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"blur":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}]}},"FileUploadValidators":{"__symbolic":"class","members":{},"statics":{"fileSize":{"__symbolic":"function","parameters":["maxSize"],"value":{"__symbolic":"error","message":"Lambda not supported","line":55,"character":15,"module":"./helpers/validators.class"}},"sizeRange":{"__symbolic":"function","parameters":["minSize","maxSize"],"value":{"__symbolic":"error","message":"Lambda not supported","line":73,"character":15,"module":"./helpers/validators.class"}},"filesLimit":{"__symbolic":"function","parameters":["numFiles"],"value":{"__symbolic":"error","message":"Lambda not supported","line":91,"character":15,"module":"./helpers/validators.class"}},"accept":{"__symbolic":"function","parameters":["allowedFileTypes"],"value":{"__symbolic":"error","message":"Lambda not supported","line":118,"character":15,"module":"./helpers/validators.class"}}}},"ValidationErrors":{"__symbolic":"interface"},"ValidatorFn":{"__symbolic":"interface"},"FileUploadTypes":{"aac":"audio/aac","abw":"application/x-abiword","arc":"application/octet-stream","avi":"video/x-msvideo","azw":"application/vnd.amazon.ebook","bin":"application/octet-stream","bmp":"image/bmp","bz":"application/x-bzip","bz2":"application/x-bzip2","csh":"application/x-csh","css":"text/css","csv":"text/csv","doc":"application/msword","docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","eot":"application/vnd.ms-fontobject","epub":"application/epub+zip","es":"application/ecmascript","gif":"image/gif","html":"text/html","ico":"image/x-icon","ics":"text/calendar","jar":"application/java-archive","jpg":"image/jpeg","js":"application/javascript","json":"application/json","midi":"audio/midi","mpeg":"video/mpeg","mpkg":"application/vnd.apple.installer+xml","odp":"application/vnd.oasis.opendocument.presentation","ods":"application/vnd.oasis.opendocument.spreadsheet","odt":"application/vnd.oasis.opendocument.text","oga":"audio/ogg","ogv":"video/ogg","ogx":"application/ogg","otf":"font/otf","png":"image/png","pdf":"application/pdf","ppt":"application/vnd.ms-powerpoint","pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation","rar":"application/vnd.openxmlformats-officedocument.presentationml.presentation","rtf":"application/rtf","sh":"application/x-sh","svg":"image/svg+xml","swf":"application/x-shockwave-flash","tar":"application/x-tar","tiff":"image/tiff","ts":"application/typescript","ttf":"font/ttf","vsd":"application/vnd.visio","wav":"audio/wav","weba":"audio/webm","webm":"video/webm","webp":"image/webp","woff":"font/woff","woff2":"font/woff2","xhtml":"application/xhtml+xml","xls":"application/vnd.ms-excel","xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xml":"application/xml","xul":"application/vnd.mozilla.xul+xml","zip":"application/zip"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"file-upload:not([simple])","providers":[{"__symbolic":"reference","name":"ɵb"},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":38,"character":21},"useExisting":{"__symbolic":"reference","name":"ɵa"},"multi":true}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":43,"character":21},"member":"OnPush"},"animations":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"}],"template":"<label #labelRef class=\"upload-input\" tabindex=\"0\" (keydown)=\"onKeyDown($event)\" [@zoomAnimation]=\"zoomText\" (@zoomAnimation.done)=\"zoomAnimationDone($event)\">\r\n\r\n <ng-container *ngTemplateOutlet=\"templateRef ? templateRef : defaultTemplate; context: templateContext\"></ng-container>\r\n\r\n <ng-template #defaultTemplate let-isFileDragDropAvailable=\"isFileDragDropAvailable\">\r\n <div class=\"icon\">\r\n <svg viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\r\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\r\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\r\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\r\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\r\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\r\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\r\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\r\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z\"/>\r\n </g>\r\n </svg>\r\n </div>\r\n \r\n <div class=\"upload-text\">\r\n <ng-container *ngIf=\"isFileDragDropAvailable; else isNotDragDropAvailable\">\r\n <b>Drag and drop</b> files<br> or click here\r\n </ng-container>\r\n <ng-template #isNotDragDropAvailable>\r\n <b>Click here</b> to<br> choose a files\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n\r\n <input #inputRef type=\"file\" class=\"files-input\" tabindex=\"-1\" multiple (change)=\"onInputChange($event)\">\r\n</label>\r\n\r\n<div class=\"upload-list\" *ngIf=\"(control.listVisibilityChanges | async) && control.size > 0 && listVisible\" [@insertAnimation]=\"control.size\" (@insertAnimation.done)=\"animationListFinished($event)\">\r\n <ng-template ngFor let-file let-i=\"index\" [ngForOf]=\"control.valueChanges | async\">\r\n <ng-container *ngTemplateOutlet=\"listItem ? listItem : defaultItemTemplate; context: { $implicit: file, file: file, index: i, control: control }\"></ng-container>\r\n </ng-template>\r\n \r\n <ng-template #defaultItemTemplate let-i=\"index\" let-file=\"file\" let-control=\"control\">\r\n <file-upload-list-item [index]=\"i\" [file]=\"file\" [control]=\"control\"></file-upload-list-item>\r\n </ng-template>\r\n</div>","styles":[":host,:host>*{box-sizing:border-box}:host{overflow:hidden;display:block;background:#fafafa;padding:20px 66px 20px 20px;min-height:140px;outline:#92b0b3 dashed 1px;outline-offset:-10px;position:relative}:host(.dragover){outline-width:2px}:host(.disabled){opacity:.5;cursor:no-drop}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;float:left}.icon svg{fill:#909293}.upload-input:after{clear:both;content:\"\\0A0\";display:block;height:0;line-height:0;visibility:hidden;zoom:1}.upload-input{cursor:pointer;display:inline-block;color:#646464;position:absolute;top:50%;left:50%;margin:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);outline:0}:host(.disabled) .upload-input{cursor:not-allowed}:host(.list-visible) .upload-input{top:20px;left:100%;margin-left:-20px;-webkit-transform:translate(-100%,0);transform:translate(-100%,0);text-align:center}.upload-text{overflow:hidden;width:auto;position:relative;padding-left:20px}:host(.hide-text) .upload-input{opacity:0}:host(.list-visible) .upload-text{display:none}:host(.dragover:not(.disabled)) .upload-input,:host(:not(.disabled)) .upload-input:focus,:host(:not(.disabled)) .upload-input:hover{color:#80a9d2}:host(.dragover:not(.disabled)) .icon svg,:host(:not(.disabled)) .upload-input:focus svg,:host(:not(.disabled)) .upload-input:hover svg{fill:#80a9d2}file-upload-list-item{padding:10px 0 0}file-upload-list-item:first-child{padding:0}"]}]}],"members":{"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":5}}]}],"templateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":54,"character":5},"arguments":["placeholder"]}]}],"listItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":57,"character":5},"arguments":["item"]}]}],"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":60,"character":5},"arguments":["inputRef"]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":63,"character":5},"arguments":["labelRef"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":83,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":83,"character":16}]}],null],"parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":81,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":82,"character":26},null,{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":84,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"hasFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":105,"character":5},"arguments":["class.has-files"]}]}],"isInvalid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":110,"character":5},"arguments":["class.ng-invalid"]}]}],"setEvents":[{"__symbolic":"method"}],"triggerEvent":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method"}],"checkAndMarkAsDisabled":[{"__symbolic":"method"}],"preventDragEvents":[{"__symbolic":"method"}],"renderView":[{"__symbolic":"method"}],"showList":[{"__symbolic":"method"}],"hideList":[{"__symbolic":"method"}],"toggleListVisibility":[{"__symbolic":"method"}],"onDragOver":[{"__symbolic":"method"}],"onDragLeave":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":219,"character":5},"arguments":["drop",["$event"]]}]}],"onInputChange":[{"__symbolic":"method"}],"clearInputEl":[{"__symbolic":"method"}],"connectToForm":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"zoomAnimationDone":[{"__symbolic":"method"}],"animationListFinished":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":8,"character":34}]}],"isFileDragDropAvailable":[{"__symbolic":"method"}],"calculateSize":[{"__symbolic":"method"}],"getFileType":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":4,"character":0},"arguments":["zoomAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":5,"character":4},"arguments":["static => zoomOut",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":6,"character":8},"arguments":[250,{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":6,"character":21},"arguments":[{"transform":"translate(-50%, -50%) scale(2, 2)","opacity":0}]}]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":8,"character":4},"arguments":["static => zoomIn",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":9,"character":8},"arguments":[":self",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":10,"character":12},"arguments":[{"transform":"translate(-50%, -50%) scale(.2, .2)","opacity":0,"top":"50%","left":"50%","margin":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"stagger","line":11,"character":12},"arguments":[50,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":12,"character":16},"arguments":[250,{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":12,"character":29},"arguments":[{"transform":"translate(-50%, -50%) scale(1, 1)","opacity":1}]}]}]]}]]}]]}]]},"ɵd":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":4,"character":0},"arguments":["insertAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":5,"character":4},"arguments":["* => *",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":6,"character":8},"arguments":[":leave",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"stagger","line":7,"character":12},"arguments":[30,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":8,"character":16},"arguments":[".3s",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":8,"character":31},"arguments":[{"opacity":0}]}]}]]}],{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":11,"character":8},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":12,"character":12},"arguments":[{"opacity":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"stagger","line":13,"character":12},"arguments":[30,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":14,"character":16},"arguments":[".3s",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":14,"character":31},"arguments":[{"opacity":1}]}]}]]}],{"optional":true}]}]]}]]},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"file-upload-list-item","template":"\n <file-upload-icon [file]=\"file\"></file-upload-icon>\n <div class=\"file-info\">\n <span class=\"file-name\">{{ file.name }}</span> ({{ calculateSize( file.size ) }})\n </div>\n <div class=\"file-buttons\">\n <span class=\"remove-btn\" (click)=\"removeFile(file)\">\n <svg viewBox=\"0 0 96 96\">\n <g>\n <path d=\"M40.5,66.8V39.3c0-0.4-0.1-0.7-0.4-0.9S39.6,38,39.3,38h-2.5c-0.4,0-0.7,0.1-0.9,0.4\n s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4h2.5c0.4,0,0.7-0.1,0.9-0.4S40.5,67.1,40.5,66.8z M50.5,66.8V39.3\n c0-0.4-0.1-0.7-0.4-0.9S49.6,38,49.3,38h-2.5c-0.4,0-0.7,0.1-0.9,0.4s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4\n h2.5c0.4,0,0.7-0.1,0.9-0.4S50.5,67.1,50.5,66.8z M60.5,66.8V39.3c0-0.4-0.1-0.7-0.4-0.9S59.6,38,59.3,38h-2.5\n c-0.4,0-0.7,0.1-0.9,0.4s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4h2.5c0.4,0,0.7-0.1,0.9-0.4\n S60.5,67.1,60.5,66.8z M39.3,28h17.5l-1.9-4.6c-0.2-0.2-0.4-0.4-0.7-0.4H41.8c-0.3,0.1-0.5,0.2-0.7,0.4L39.3,28z M75.5,29.3v2.5\n c0,0.4-0.1,0.7-0.4,0.9S74.6,33,74.3,33h-3.8v37c0,2.2-0.6,4-1.8,5.6S66,78,64.3,78H31.8c-1.7,0-3.2-0.8-4.4-2.3s-1.8-3.4-1.8-5.5\n V33h-3.8c-0.4,0-0.7-0.1-0.9-0.4s-0.4-0.5-0.4-0.9v-2.5c0-0.4,0.1-0.7,0.4-0.9s0.5-0.4,0.9-0.4h12.1l2.7-6.5c0.4-1,1.1-1.8,2.1-2.5\n s2-1,3.1-1h12.5c1,0,2.1,0.3,3.1,1s1.7,1.5,2.1,2.5l2.7,6.5h12.1c0.4,0,0.7,0.1,0.9,0.4S75.5,28.9,75.5,29.3z\"/>\n </g>\n </svg> Remove</span>\n </div>\n ","styles":[":host{display:block;font-size:14px;color:#646464}:host:after{clear:both;content:\"\\0A0\";display:block;height:0;line-height:0;visibility:hidden;zoom:1}file-upload-icon{float:left;width:30px;height:36px;margin:0 10px 0 0}.file-info{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.remove-btn{font-size:12px;cursor:pointer}.remove-btn svg{display:inline-block;vertical-align:-20%;height:18px;width:18px}"]}]}],"members":{"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"removeFile":[{"__symbolic":"method"}],"calculateSize":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"file-upload-icon","template":"\r\n\r\n<ng-container [ngSwitch]=\"true\">\r\n\r\n <svg *ngSwitchDefault viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase=\"isIcon('image')\" viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M65.1,58.7v10.7H30.9V63l6.4-6.4l4.3,4.3L54.4,48L65.1,58.7z M37.3,52.3c-1.8,0-3.3-0.6-4.6-1.9c-1.3-1.2-1.9-2.8-1.9-4.6\r\n c0-1.8,0.6-3.3,1.9-4.6c1.3-1.2,2.8-1.9,4.6-1.9s3.3,0.6,4.6,1.9c1.3,1.3,1.9,2.8,1.9,4.6c0,1.8-0.6,3.3-1.9,4.6\r\n C40.6,51.7,39.1,52.3,37.3,52.3z\"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase=\"isIcon('audio')\" viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M43,46.5c0.4,0.2,0.7,0.5,0.7,1v18.2c0,0.5-0.2,0.8-0.7,1c-0.2,0-0.3,0.1-0.4,0.1c-0.3,0-0.5-0.1-0.8-0.3l-5.6-5.6h-4.4\r\n c-0.3,0-0.6-0.1-0.8-0.3c-0.2-0.2-0.3-0.5-0.3-0.8v-6.4c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3h4.4l5.6-5.6\r\n C42.2,46.4,42.6,46.3,43,46.5z M57,69.5c0.7,0,1.3-0.3,1.7-0.8c2.9-3.5,4.3-7.6,4.3-12.2s-1.4-8.6-4.3-12.2\r\n c-0.4-0.5-0.8-0.7-1.4-0.8c-0.6-0.1-1.1,0.1-1.6,0.5c-0.5,0.4-0.7,0.9-0.8,1.5c-0.1,0.6,0.1,1.1,0.5,1.6c2.2,2.7,3.3,5.9,3.3,9.4\r\n c0,3.5-1.1,6.7-3.3,9.4c-0.4,0.5-0.5,1-0.5,1.6c0.1,0.6,0.3,1.1,0.8,1.4C56.1,69.4,56.5,69.5,57,69.5z M49.9,64.6\r\n c0.6,0,1.1-0.2,1.6-0.7c1.9-2.1,2.9-4.5,2.9-7.3s-1-5.3-2.9-7.3c-0.4-0.4-0.9-0.6-1.5-0.7c-0.6,0-1.1,0.2-1.5,0.6s-0.6,0.9-0.7,1.5\r\n c0,0.6,0.2,1.1,0.6,1.6c1.2,1.3,1.7,2.7,1.7,4.4c0,1.7-0.6,3.1-1.7,4.4c-0.4,0.4-0.6,1-0.6,1.6c0,0.6,0.2,1.1,0.7,1.5\r\n C48.9,64.4,49.4,64.6,49.9,64.6z\"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase=\"isIcon('text')\" viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M35.1,44.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3h23.6c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.5,0.3,0.8v2.1\r\n c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3c-0.2-0.2-0.3-0.5-0.3-0.8V44.8z M59.8,52.3\r\n c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.5,0.3,0.8v2.1c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3\r\n c-0.2-0.2-0.3-0.5-0.3-0.8v-2.1c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3H59.8z M59.8,60.9c0.3,0,0.6,0.1,0.8,0.3\r\n c0.2,0.2,0.3,0.5,0.3,0.8v2.1c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3\r\n c-0.2-0.2-0.3-0.5-0.3-0.8v-2.1c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3H59.8z\"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase=\"isIcon('video')\" viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M48,43.7c1.2,0,2.2,0.4,3,1.3c0.8,0.8,1.3,1.9,1.3,3v12.9c0,1.2-0.4,2.2-1.3,3c-0.8,0.8-1.9,1.3-3,1.3H35.1c-1.2,0-2.2-0.4-3-1.3\r\n c-0.8-0.8-1.3-1.9-1.3-3V48c0-1.2,0.4-2.2,1.3-3c0.8-0.8,1.9-1.3,3-1.3H48z M64.5,43.8c0.4,0.2,0.7,0.5,0.7,1v19.3\r\n c0,0.5-0.2,0.8-0.7,1c-0.2,0-0.3,0.1-0.4,0.1c-0.3,0-0.6-0.1-0.8-0.3l-8.9-8.9v-3l8.9-8.9c0.2-0.2,0.5-0.3,0.8-0.3\r\n C64.2,43.7,64.3,43.7,64.5,43.8z\"/>\r\n </g>\r\n </svg>\r\n\r\n</ng-container>","styles":[":host{display:block;border:1px solid #eaeaea;border-radius:4px}:host svg{fill:#909293}"]}]}],"members":{"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"isIcon":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"[file-drop-zone]","template":"\n <ng-content></ng-content>\n <div #overlay class=\"overlay\" *ngIf=\"fileUploadService.isFileDragDropAvailable()\">\n\n <div class=\"upload-input\">\n <ng-container *ngTemplateOutlet=\"templateRef ? templateRef : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div class=\"icon\">\n <svg viewBox=\"0 0 96 96\">\n <g>\n <path d=\"M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z\"/>\n </g>\n </svg>\n </div>\n \n <div class=\"upload-text\">\n <b>Drop</b> it here\n </div>\n </ng-template>\n </div>\n </div>\n ","providers":[{"__symbolic":"reference","name":"ɵb"}],"styles":[":host{position:relative;display:block}:host .overlay{display:none;background:rgba(255,255,255,.8);outline:#92b0b3 dashed 2px;outline-offset:-10px;position:absolute;top:0;left:0;right:0;bottom:0}:host(.dragover:not(.disabled)) .overlay{display:block}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;margin:0 auto 10px}:host /deep/ .icon svg{fill:#80a9d2}.upload-input{pointer-events:none;cursor:pointer;display:inline-block;color:#80a9d2;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.15s ease-in-out}"]}]}],"members":{"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":5}}]}],"overlay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":67,"character":5},"arguments":["overlay"]}]}],"templateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":70,"character":5},"arguments":["placeholder"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":81,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":81,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":79,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":80,"character":26},null]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"hasFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":104,"character":5},"arguments":["class.has-files"]}]}],"isInvalid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":109,"character":5},"arguments":["class.ng-invalid"]}]}],"setEvents":[{"__symbolic":"method"}],"checkAndMarkAsDisabled":[{"__symbolic":"method"}],"preventDragEvents":[{"__symbolic":"method"}],"onDragOver":[{"__symbolic":"method"}],"onDragLeave":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":175,"character":5},"arguments":["drop",["$event"]]}]}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":19,"character":1},"arguments":[{"selector":"[filesize][formControlName],[filesize][formControl],[filesize][ngModel],\n [minsize][formControlName],[minsize][formControl],[minsize][ngModel],\n [maxsize][formControlName],[maxsize][formControl],[maxsize][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":24,"character":17},"useExisting":{"__symbolic":"reference","name":"ɵh"},"multi":true}],"host":{"[attr.filesize]":"filesize ? filesize : null","[attr.minsize]":"minsize ? minsize : null","[attr.maxsize]":"maxsize ? maxsize : null","$quoted$":["[attr.filesize]","[attr.minsize]","[attr.maxsize]"]}}]}],"members":{"filesize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"minsize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"maxsize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":5}}]}],"ngOnChanges":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"_createValidator":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":95,"character":1},"arguments":[{"selector":"[fileslimit][formControlName],[fileslimit][formControl],[fileslimit][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":98,"character":17},"useExisting":{"__symbolic":"reference","name":"ɵi"},"multi":true}],"host":{"[attr.fileslimit]":"fileslimit ? fileslimit : null","$quoted$":["[attr.fileslimit]"]}}]}],"members":{"fileslimit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":106,"character":5}}]}],"ngOnChanges":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"_createValidator":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":150,"character":1},"arguments":[{"selector":"[accept][formControlName],[accept][formControl],[accept][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":153,"character":17},"useExisting":{"__symbolic":"reference","name":"ɵi"},"multi":true}],"host":{"[attr.accept]":"accept ? accept : null","$quoted$":["[attr.accept]"]}}]}],"members":{"accept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":161,"character":5}}]}],"ngOnChanges":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"_createValidator":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"file-upload[simple]","providers":[{"__symbolic":"reference","name":"ɵb"},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":30,"character":21},"useExisting":{"__symbolic":"reference","name":"ɵk"},"multi":true}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":35,"character":21},"member":"OnPush"},"template":"<div class=\"upload-text\">\r\n <ng-template [ngIf]=\"control.valueChanges | async\">\r\n <ng-container *ngTemplateOutlet=\"placeholderRef ? placeholderRef : defaultPlaceholderTemplate; context: { $implicit: control.value[0], control: control, file: control.value[0] }\"></ng-container>\r\n </ng-template>\r\n \r\n <ng-template #defaultPlaceholderTemplate let-file>\r\n <span *ngIf=\"file; else emptyList\" class=\"file-name\">{{ file.name }}</span>\r\n\r\n <ng-template #emptyList>\r\n Select a file...\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n\r\n<label #labelRef class=\"upload-button\" tabindex=\"0\" (keydown)=\"onKeyDown($event)\">\r\n <ng-container *ngTemplateOutlet=\"buttonRef ? buttonRef : defaultButtonTemplate; context: { control: control }\"></ng-container>\r\n\r\n <ng-template #defaultButtonTemplate>\r\n <div class=\"button\">\r\n <div class=\"icon\">\r\n <svg viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\r\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\r\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\r\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\r\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\r\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\r\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\r\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\r\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z\"/>\r\n </g>\r\n </svg>\r\n </div>\r\n \r\n <span class=\"button-text\">Browse</span>\r\n </div>\r\n </ng-template>\r\n\r\n <input #inputRef type=\"file\" class=\"files-input\" tabindex=\"-1\" (change)=\"onInputChange($event)\">\r\n</label>","styles":[":host,:host>*{box-sizing:border-box}:host{display:flex;line-height:1.5;color:#555;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:inset 0 4px 7px rgba(0,0,0,.05)}:host(.disabled){opacity:.5}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:24px;width:24px;display:inline-block}.icon svg{fill:#555}.upload-button{cursor:pointer;display:block;padding:2px 4px;background-color:#eee;border-left:1px solid #ddd;border-radius:0 4px 4px 0;min-width:100px;color:#555;margin:0;position:relative;outline:0}.upload-text{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;padding:5px 10px;font-size:14px;height:30px}.button-text{vertical-align:middle;padding-left:10px}:host(.disabled) .upload-button{cursor:not-allowed}:host(:not(.disabled)) .upload-button:focus,:host(:not(.disabled)) .upload-button:hover{color:#80a9d2}:host(:not(.disabled)) .upload-button:focus svg,:host(:not(.disabled)) .upload-button:hover svg{fill:#80a9d2}"]}]}],"members":{"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"buttonRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":42,"character":5},"arguments":["button"]}]}],"placeholderRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":45,"character":5},"arguments":["placeholder"]}]}],"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":48,"character":5},"arguments":["inputRef"]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":51,"character":5},"arguments":["labelRef"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":58,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":59,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":60,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"hasFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":79,"character":5},"arguments":["class.has-files"]}]}],"isInvalid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":84,"character":5},"arguments":["class.ng-invalid"]}]}],"setEvents":[{"__symbolic":"method"}],"checkAndMarkAsDisabled":[{"__symbolic":"method"}],"onInputChange":[{"__symbolic":"method"}],"clearInputEl":[{"__symbolic":"method"}],"connectToForm":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"triggerEvent":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method"}]}}},"origins":{"FileUploadModule":"./file-upload.module","FileUploadControl":"./helpers/control.class","FileUploadValidators":"./helpers/validators.class","ValidationErrors":"./helpers/validators.class","ValidatorFn":"./helpers/validators.class","FileUploadTypes":"./helpers/file-types.class","ɵa":"./components/file-upload.component","ɵb":"./services/file-upload.service","ɵc":"./animations/zoom.animation","ɵd":"./animations/insert.animation","ɵe":"./components/file-upload-list-item.component","ɵf":"./components/file-upload-icon.component","ɵg":"./components/file-upload-attr.component","ɵh":"./directives/validators.directive","ɵi":"./directives/validators.directive","ɵj":"./directives/validators.directive","ɵk":"./components/simple-file-upload.component"},"importAs":"@iplab/ngx-file-upload"}
{"__symbolic":"module","version":4,"metadata":{"FileUploadModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":24,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":26,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":27,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":28,"character":8}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"}],"entryComponents":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":61,"character":34}]}],"ngDoBootstrap":[{"__symbolic":"method"}]}},"FileUploadControl":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ValidatorFn"}]}],"setValidators":[{"__symbolic":"method"}],"defineValidators":[{"__symbolic":"method"}],"addFile":[{"__symbolic":"method"}],"removeFile":[{"__symbolic":"method"}],"addFiles":[{"__symbolic":"method"}],"addMultipleFiles":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"setListVisibility":[{"__symbolic":"method"}],"enable":[{"__symbolic":"method"}],"disable":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"blur":[{"__symbolic":"method"}],"acceptFiles":[{"__symbolic":"method"}],"acceptAll":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}]}},"FileUploadValidators":{"__symbolic":"class","members":{},"statics":{"fileSize":{"__symbolic":"function","parameters":["maxSize"],"value":{"__symbolic":"error","message":"Lambda not supported","line":55,"character":15,"module":"./helpers/validators.class"}},"sizeRange":{"__symbolic":"function","parameters":["minSize","maxSize"],"value":{"__symbolic":"error","message":"Lambda not supported","line":73,"character":15,"module":"./helpers/validators.class"}},"filesLimit":{"__symbolic":"function","parameters":["numFiles"],"value":{"__symbolic":"error","message":"Lambda not supported","line":91,"character":15,"module":"./helpers/validators.class"}},"accept":{"__symbolic":"function","parameters":["allowedFileTypes"],"value":{"__symbolic":"error","message":"Lambda not supported","line":118,"character":15,"module":"./helpers/validators.class"}}}},"ValidationErrors":{"__symbolic":"interface"},"ValidatorFn":{"__symbolic":"interface"},"FileUploadTypes":{"aac":"audio/aac","abw":"application/x-abiword","arc":"application/octet-stream","avi":"video/x-msvideo","azw":"application/vnd.amazon.ebook","bin":"application/octet-stream","bmp":"image/bmp","bz":"application/x-bzip","bz2":"application/x-bzip2","csh":"application/x-csh","css":"text/css","csv":"text/csv","doc":"application/msword","docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","eot":"application/vnd.ms-fontobject","epub":"application/epub+zip","es":"application/ecmascript","gif":"image/gif","html":"text/html","ico":"image/x-icon","ics":"text/calendar","jar":"application/java-archive","jpg":"image/jpeg","js":"application/javascript","json":"application/json","midi":"audio/midi","mpeg":"video/mpeg","mpkg":"application/vnd.apple.installer+xml","odp":"application/vnd.oasis.opendocument.presentation","ods":"application/vnd.oasis.opendocument.spreadsheet","odt":"application/vnd.oasis.opendocument.text","oga":"audio/ogg","ogv":"video/ogg","ogx":"application/ogg","otf":"font/otf","png":"image/png","pdf":"application/pdf","ppt":"application/vnd.ms-powerpoint","pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation","rar":"application/vnd.openxmlformats-officedocument.presentationml.presentation","rtf":"application/rtf","sh":"application/x-sh","svg":"image/svg+xml","swf":"application/x-shockwave-flash","tar":"application/x-tar","tiff":"image/tiff","ts":"application/typescript","ttf":"font/ttf","vsd":"application/vnd.visio","wav":"audio/wav","weba":"audio/webm","webm":"video/webm","webp":"image/webp","woff":"font/woff","woff2":"font/woff2","xhtml":"application/xhtml+xml","xls":"application/vnd.ms-excel","xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xml":"application/xml","xul":"application/vnd.mozilla.xul+xml","zip":"application/zip"},"ɵa":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":29,"character":1},"arguments":[{"selector":"file-upload:not([simple])","providers":[{"__symbolic":"reference","name":"ɵc"},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":36,"character":21},"useExisting":{"__symbolic":"reference","name":"ɵa"},"multi":true}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":41,"character":21},"member":"OnPush"},"animations":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}],"template":"<label #labelRef class=\"upload-input\" tabindex=\"0\" (keydown)=\"onKeyDown($event)\" [@zoomAnimation]=\"zoomText\" (@zoomAnimation.done)=\"zoomAnimationDone($event)\">\r\n\r\n <ng-container *ngTemplateOutlet=\"templateRef ? templateRef : defaultTemplate; context: templateContext\"></ng-container>\r\n\r\n <ng-template #defaultTemplate let-isFileDragDropAvailable=\"isFileDragDropAvailable\">\r\n <div class=\"icon\">\r\n <svg viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\r\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\r\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\r\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\r\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\r\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\r\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\r\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\r\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z\"/>\r\n </g>\r\n </svg>\r\n </div>\r\n \r\n <div class=\"upload-text\">\r\n <ng-container *ngIf=\"isFileDragDropAvailable; else isNotDragDropAvailable\">\r\n <b>Drag and drop</b> files<br> or click here\r\n </ng-container>\r\n <ng-template #isNotDragDropAvailable>\r\n <b>Click here</b> to<br> choose a files\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n\r\n <input #inputRef type=\"file\" class=\"files-input\" tabindex=\"-1\" multiple (change)=\"onInputChange($event)\">\r\n</label>\r\n\r\n<div class=\"upload-list\" *ngIf=\"(control.listVisibilityChanges | async) && control.size > 0 && listVisible\" [@insertAnimation]=\"control.size\" (@insertAnimation.done)=\"animationListFinished($event)\">\r\n <ng-template ngFor let-file let-i=\"index\" [ngForOf]=\"control.valueChanges | async\">\r\n <ng-container *ngTemplateOutlet=\"listItem ? listItem : defaultItemTemplate; context: { $implicit: file, file: file, index: i, control: control }\"></ng-container>\r\n </ng-template>\r\n \r\n <ng-template #defaultItemTemplate let-i=\"index\" let-file=\"file\" let-control=\"control\">\r\n <file-upload-list-item [index]=\"i\" [file]=\"file\" [control]=\"control\"></file-upload-list-item>\r\n </ng-template>\r\n</div>","styles":[":host,:host>*{box-sizing:border-box}:host{overflow:hidden;display:block;background:#fafafa;padding:20px 66px 20px 20px;min-height:140px;outline:#92b0b3 dashed 1px;outline-offset:-10px;position:relative}:host(.dragover){outline-width:2px}:host(.disabled){opacity:.5;cursor:no-drop}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;float:left}.icon svg{fill:#909293}.upload-input:after{clear:both;content:\"\\0A0\";display:block;height:0;line-height:0;visibility:hidden;zoom:1}.upload-input{cursor:pointer;display:inline-block;color:#646464;position:absolute;top:50%;left:50%;margin:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);outline:0}:host(.disabled) .upload-input{cursor:not-allowed}:host(.list-visible) .upload-input{top:20px;left:100%;margin-left:-20px;-webkit-transform:translate(-100%,0);transform:translate(-100%,0);text-align:center}.upload-text{overflow:hidden;width:auto;position:relative;padding-left:20px}:host(.hide-text) .upload-input{opacity:0}:host(.list-visible) .upload-text{display:none}:host(.dragover:not(.disabled)) .upload-input,:host(:not(.disabled)) .upload-input:focus,:host(:not(.disabled)) .upload-input:hover{color:#80a9d2}:host(.dragover:not(.disabled)) .icon svg,:host(:not(.disabled)) .upload-input:focus svg,:host(:not(.disabled)) .upload-input:hover svg{fill:#80a9d2}file-upload-list-item{padding:10px 0 0}file-upload-list-item:first-child{padding:0}"]}]}],"members":{"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":5}}]}],"templateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":52,"character":5},"arguments":["placeholder"]}]}],"listItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":55,"character":5},"arguments":["item"]}]}],"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":58,"character":5},"arguments":["inputRef"]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":61,"character":5},"arguments":["labelRef"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":77,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":77,"character":16}]}],null],"parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":75,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":76,"character":18},null,{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":78,"character":13}]}],"hasFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":83,"character":5},"arguments":["class.has-files"]}]}],"isInvalid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":88,"character":5},"arguments":["class.ng-invalid"]}]}],"setEvents":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method"}],"preventDragEvents":[{"__symbolic":"method"}],"renderView":[{"__symbolic":"method"}],"showList":[{"__symbolic":"method"}],"hideList":[{"__symbolic":"method"}],"toggleListVisibility":[{"__symbolic":"method"}],"onDragOver":[{"__symbolic":"method"}],"onDragLeave":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":174,"character":5},"arguments":["drop",["$event"]]}]}],"onInputChange":[{"__symbolic":"method"}],"clearInputEl":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"zoomAnimationDone":[{"__symbolic":"method"}],"animationListFinished":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":22,"character":43},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":23,"character":37},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":24,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setEvents":[{"__symbolic":"method"}],"triggerEvent":[{"__symbolic":"method"}],"updateAcceptAttr":[{"__symbolic":"method"}],"checkAndMarkAsDisabled":[{"__symbolic":"method"}],"connectToForm":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":8,"character":34}]}],"isFileDragDropAvailable":[{"__symbolic":"method"}],"calculateSize":[{"__symbolic":"method"}],"getFileType":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":4,"character":0},"arguments":["zoomAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":5,"character":4},"arguments":["static => zoomOut",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":6,"character":8},"arguments":[250,{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":6,"character":21},"arguments":[{"transform":"translate(-50%, -50%) scale(2, 2)","opacity":0}]}]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":8,"character":4},"arguments":["static => zoomIn",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":9,"character":8},"arguments":[":self",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":10,"character":12},"arguments":[{"transform":"translate(-50%, -50%) scale(.2, .2)","opacity":0,"top":"50%","left":"50%","margin":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"stagger","line":11,"character":12},"arguments":[50,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":12,"character":16},"arguments":[250,{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":12,"character":29},"arguments":[{"transform":"translate(-50%, -50%) scale(1, 1)","opacity":1}]}]}]]}]]}]]}]]},"ɵe":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":4,"character":0},"arguments":["insertAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":5,"character":4},"arguments":["* => *",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":6,"character":8},"arguments":[":leave",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"stagger","line":7,"character":12},"arguments":[30,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":8,"character":16},"arguments":[".3s",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":8,"character":31},"arguments":[{"opacity":0}]}]}]]}],{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":11,"character":8},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":12,"character":12},"arguments":[{"opacity":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"stagger","line":13,"character":12},"arguments":[30,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":14,"character":16},"arguments":[".3s",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":14,"character":31},"arguments":[{"opacity":1}]}]}]]}],{"optional":true}]}]]}]]},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"file-upload-list-item","template":"\n <file-upload-icon [file]=\"file\"></file-upload-icon>\n <div class=\"file-info\">\n <span class=\"file-name\">{{ file.name }}</span> ({{ calculateSize( file.size ) }})\n </div>\n <div class=\"file-buttons\">\n <span class=\"remove-btn\" (click)=\"removeFile(file)\">\n <svg viewBox=\"0 0 96 96\">\n <g>\n <path d=\"M40.5,66.8V39.3c0-0.4-0.1-0.7-0.4-0.9S39.6,38,39.3,38h-2.5c-0.4,0-0.7,0.1-0.9,0.4\n s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4h2.5c0.4,0,0.7-0.1,0.9-0.4S40.5,67.1,40.5,66.8z M50.5,66.8V39.3\n c0-0.4-0.1-0.7-0.4-0.9S49.6,38,49.3,38h-2.5c-0.4,0-0.7,0.1-0.9,0.4s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4\n h2.5c0.4,0,0.7-0.1,0.9-0.4S50.5,67.1,50.5,66.8z M60.5,66.8V39.3c0-0.4-0.1-0.7-0.4-0.9S59.6,38,59.3,38h-2.5\n c-0.4,0-0.7,0.1-0.9,0.4s-0.4,0.5-0.4,0.9v27.5c0,0.4,0.1,0.7,0.4,0.9s0.5,0.4,0.9,0.4h2.5c0.4,0,0.7-0.1,0.9-0.4\n S60.5,67.1,60.5,66.8z M39.3,28h17.5l-1.9-4.6c-0.2-0.2-0.4-0.4-0.7-0.4H41.8c-0.3,0.1-0.5,0.2-0.7,0.4L39.3,28z M75.5,29.3v2.5\n c0,0.4-0.1,0.7-0.4,0.9S74.6,33,74.3,33h-3.8v37c0,2.2-0.6,4-1.8,5.6S66,78,64.3,78H31.8c-1.7,0-3.2-0.8-4.4-2.3s-1.8-3.4-1.8-5.5\n V33h-3.8c-0.4,0-0.7-0.1-0.9-0.4s-0.4-0.5-0.4-0.9v-2.5c0-0.4,0.1-0.7,0.4-0.9s0.5-0.4,0.9-0.4h12.1l2.7-6.5c0.4-1,1.1-1.8,2.1-2.5\n s2-1,3.1-1h12.5c1,0,2.1,0.3,3.1,1s1.7,1.5,2.1,2.5l2.7,6.5h12.1c0.4,0,0.7,0.1,0.9,0.4S75.5,28.9,75.5,29.3z\"/>\n </g>\n </svg> Remove</span>\n </div>\n ","styles":[":host{display:block;font-size:14px;color:#646464}:host:after{clear:both;content:\"\\0A0\";display:block;height:0;line-height:0;visibility:hidden;zoom:1}file-upload-icon{float:left;width:30px;height:36px;margin:0 10px 0 0}.file-info{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.remove-btn{font-size:12px;cursor:pointer}.remove-btn svg{display:inline-block;vertical-align:-20%;height:18px;width:18px}"]}]}],"members":{"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"removeFile":[{"__symbolic":"method"}],"calculateSize":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"file-upload-icon","template":"\r\n\r\n<ng-container [ngSwitch]=\"true\">\r\n\r\n <svg *ngSwitchDefault viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase=\"isIcon('image')\" viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M65.1,58.7v10.7H30.9V63l6.4-6.4l4.3,4.3L54.4,48L65.1,58.7z M37.3,52.3c-1.8,0-3.3-0.6-4.6-1.9c-1.3-1.2-1.9-2.8-1.9-4.6\r\n c0-1.8,0.6-3.3,1.9-4.6c1.3-1.2,2.8-1.9,4.6-1.9s3.3,0.6,4.6,1.9c1.3,1.3,1.9,2.8,1.9,4.6c0,1.8-0.6,3.3-1.9,4.6\r\n C40.6,51.7,39.1,52.3,37.3,52.3z\"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase=\"isIcon('audio')\" viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M43,46.5c0.4,0.2,0.7,0.5,0.7,1v18.2c0,0.5-0.2,0.8-0.7,1c-0.2,0-0.3,0.1-0.4,0.1c-0.3,0-0.5-0.1-0.8-0.3l-5.6-5.6h-4.4\r\n c-0.3,0-0.6-0.1-0.8-0.3c-0.2-0.2-0.3-0.5-0.3-0.8v-6.4c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3h4.4l5.6-5.6\r\n C42.2,46.4,42.6,46.3,43,46.5z M57,69.5c0.7,0,1.3-0.3,1.7-0.8c2.9-3.5,4.3-7.6,4.3-12.2s-1.4-8.6-4.3-12.2\r\n c-0.4-0.5-0.8-0.7-1.4-0.8c-0.6-0.1-1.1,0.1-1.6,0.5c-0.5,0.4-0.7,0.9-0.8,1.5c-0.1,0.6,0.1,1.1,0.5,1.6c2.2,2.7,3.3,5.9,3.3,9.4\r\n c0,3.5-1.1,6.7-3.3,9.4c-0.4,0.5-0.5,1-0.5,1.6c0.1,0.6,0.3,1.1,0.8,1.4C56.1,69.4,56.5,69.5,57,69.5z M49.9,64.6\r\n c0.6,0,1.1-0.2,1.6-0.7c1.9-2.1,2.9-4.5,2.9-7.3s-1-5.3-2.9-7.3c-0.4-0.4-0.9-0.6-1.5-0.7c-0.6,0-1.1,0.2-1.5,0.6s-0.6,0.9-0.7,1.5\r\n c0,0.6,0.2,1.1,0.6,1.6c1.2,1.3,1.7,2.7,1.7,4.4c0,1.7-0.6,3.1-1.7,4.4c-0.4,0.4-0.6,1-0.6,1.6c0,0.6,0.2,1.1,0.7,1.5\r\n C48.9,64.4,49.4,64.6,49.9,64.6z\"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase=\"isIcon('text')\" viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M35.1,44.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3h23.6c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.5,0.3,0.8v2.1\r\n c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3c-0.2-0.2-0.3-0.5-0.3-0.8V44.8z M59.8,52.3\r\n c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.5,0.3,0.8v2.1c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3\r\n c-0.2-0.2-0.3-0.5-0.3-0.8v-2.1c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3H59.8z M59.8,60.9c0.3,0,0.6,0.1,0.8,0.3\r\n c0.2,0.2,0.3,0.5,0.3,0.8v2.1c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3H36.2c-0.3,0-0.6-0.1-0.8-0.3\r\n c-0.2-0.2-0.3-0.5-0.3-0.8v-2.1c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3H59.8z\"/>\r\n </g>\r\n </svg>\r\n\r\n <svg *ngSwitchCase=\"isIcon('video')\" viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M71.4,30.7c0.6,0.6,1.2,1.5,1.6,2.5c0.4,1.1,0.7,2.1,0.7,2.9v38.6c0,0.9-0.3,1.7-0.9,2.3\r\n S71.4,78,70.5,78h-45c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V21.2c0-0.9,0.3-1.7,0.9-2.3c0.6-0.6,1.4-0.9,2.3-0.9h30\r\n c0.9,0,1.9,0.2,2.9,0.7c1.1,0.4,1.9,1,2.5,1.6L71.4,30.7z M56.6,22.6v12.6h12.6c-0.2-0.6-0.5-1.1-0.7-1.4L57.9,23.3\r\n C57.7,23,57.2,22.8,56.6,22.6z M69.4,73.7V39.4H55.5c-0.9,0-1.7-0.3-2.3-0.9c-0.6-0.6-0.9-1.4-0.9-2.3V22.3H26.6v51.4H69.4z\r\n M48,43.7c1.2,0,2.2,0.4,3,1.3c0.8,0.8,1.3,1.9,1.3,3v12.9c0,1.2-0.4,2.2-1.3,3c-0.8,0.8-1.9,1.3-3,1.3H35.1c-1.2,0-2.2-0.4-3-1.3\r\n c-0.8-0.8-1.3-1.9-1.3-3V48c0-1.2,0.4-2.2,1.3-3c0.8-0.8,1.9-1.3,3-1.3H48z M64.5,43.8c0.4,0.2,0.7,0.5,0.7,1v19.3\r\n c0,0.5-0.2,0.8-0.7,1c-0.2,0-0.3,0.1-0.4,0.1c-0.3,0-0.6-0.1-0.8-0.3l-8.9-8.9v-3l8.9-8.9c0.2-0.2,0.5-0.3,0.8-0.3\r\n C64.2,43.7,64.3,43.7,64.5,43.8z\"/>\r\n </g>\r\n </svg>\r\n\r\n</ng-container>","styles":[":host{display:block;border:1px solid #eaeaea;border-radius:4px}:host svg{fill:#909293}"]}]}],"members":{"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"isIcon":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"[file-drop-zone]","template":"\n <ng-content></ng-content>\n <div #overlay class=\"overlay\" *ngIf=\"fileUploadService.isFileDragDropAvailable()\">\n\n <div class=\"upload-input\">\n <ng-container *ngTemplateOutlet=\"templateRef ? templateRef : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div class=\"icon\">\n <svg viewBox=\"0 0 96 96\">\n <g>\n <path d=\"M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z\"/>\n </g>\n </svg>\n </div>\n \n <div class=\"upload-text\">\n <b>Drop</b> it here\n </div>\n </ng-template>\n </div>\n </div>\n ","providers":[{"__symbolic":"reference","name":"ɵc"}],"styles":[":host{position:relative;display:block}:host .overlay{display:none;background:rgba(255,255,255,.8);outline:#92b0b3 dashed 2px;outline-offset:-10px;position:absolute;top:0;left:0;right:0;bottom:0}:host(.dragover:not(.disabled)) .overlay{display:block}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;margin:0 auto 10px}:host /deep/ .icon svg{fill:#80a9d2}.upload-input{pointer-events:none;cursor:pointer;display:inline-block;color:#80a9d2;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.15s ease-in-out}"]}]}],"members":{"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":5}}]}],"overlay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":67,"character":5},"arguments":["overlay"]}]}],"templateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":70,"character":5},"arguments":["placeholder"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":81,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":81,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":79,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":80,"character":26},null]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"hasFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":104,"character":5},"arguments":["class.has-files"]}]}],"isInvalid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":109,"character":5},"arguments":["class.ng-invalid"]}]}],"setEvents":[{"__symbolic":"method"}],"checkAndMarkAsDisabled":[{"__symbolic":"method"}],"preventDragEvents":[{"__symbolic":"method"}],"onDragOver":[{"__symbolic":"method"}],"onDragLeave":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":175,"character":5},"arguments":["drop",["$event"]]}]}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":20,"character":1},"arguments":[{"selector":"[filesize][formControlName],[filesize][formControl],[filesize][ngModel],\n [minsize][formControlName],[minsize][formControl],[minsize][ngModel],\n [maxsize][formControlName],[maxsize][formControl],[maxsize][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":25,"character":17},"useExisting":{"__symbolic":"reference","name":"ɵi"},"multi":true}],"host":{"[attr.filesize]":"filesize ? filesize : null","[attr.minsize]":"minsize ? minsize : null","[attr.maxsize]":"maxsize ? maxsize : null","$quoted$":["[attr.filesize]","[attr.minsize]","[attr.maxsize]"]}}]}],"members":{"filesize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5}}]}],"minsize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"maxsize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"ngOnChanges":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"_createValidator":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":96,"character":1},"arguments":[{"selector":"[fileslimit][formControlName],[fileslimit][formControl],[fileslimit][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":99,"character":17},"useExisting":{"__symbolic":"reference","name":"ɵj"},"multi":true}],"host":{"[attr.fileslimit]":"fileslimit ? fileslimit : null","$quoted$":["[attr.fileslimit]"]}}]}],"members":{"fileslimit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":5}}]}],"ngOnChanges":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"_createValidator":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":150,"character":1},"arguments":[{"selector":"[accept][formControlName],[accept][formControl],[accept][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":153,"character":17},"useExisting":{"__symbolic":"reference","name":"ɵk"},"multi":true}],"host":{"[attr.accept]":"accept ? accept : null","$quoted$":["[attr.accept]"]}}]}],"members":{"accept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":161,"character":5}}]}],"ngOnChanges":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"_createValidator":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"file-upload[accept]"}]}],"members":{"accept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":13,"character":17}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":13,"character":29}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":13,"character":37}}]],"parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"setAccept":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"file-upload[simple]","providers":[{"__symbolic":"reference","name":"ɵc"},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":28,"character":21},"useExisting":{"__symbolic":"reference","name":"ɵm"},"multi":true}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":33,"character":21},"member":"OnPush"},"template":"<div class=\"upload-text\">\r\n <ng-template [ngIf]=\"control.valueChanges | async\">\r\n <ng-container *ngTemplateOutlet=\"placeholderRef ? placeholderRef : defaultPlaceholderTemplate; context: { $implicit: control.value[0], control: control, file: control.value[0] }\"></ng-container>\r\n </ng-template>\r\n \r\n <ng-template #defaultPlaceholderTemplate let-file>\r\n <span *ngIf=\"file; else emptyList\" class=\"file-name\">{{ file.name }}</span>\r\n\r\n <ng-template #emptyList>\r\n Select a file...\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n\r\n<label #labelRef class=\"upload-button\" tabindex=\"0\" (keydown)=\"onKeyDown($event)\">\r\n <ng-container *ngTemplateOutlet=\"buttonRef ? buttonRef : defaultButtonTemplate; context: { control: control }\"></ng-container>\r\n\r\n <ng-template #defaultButtonTemplate>\r\n <div class=\"button\">\r\n <div class=\"icon\">\r\n <svg viewBox=\"0 0 96 96\">\r\n <g>\r\n <path d=\"M62.8,68.1c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6s-1.1,0.2-1.5,0.6\r\n c-0.4,0.4-0.6,0.9-0.6,1.5c0,0.6,0.2,1.1,0.6,1.5c0.4,0.4,0.9,0.6,1.5,0.6s1.1-0.2,1.5-0.6S62.8,68.7,62.8,68.1z M71.3,68.1\r\n c0-0.6-0.2-1.1-0.6-1.5c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.5,0.6C67.2,67,67,67.5,67,68.1c0,0.6,0.2,1.1,0.6,1.5\r\n s0.9,0.6,1.5,0.6c0.6,0,1.1-0.2,1.5-0.6C71.1,69.2,71.3,68.7,71.3,68.1z M75.5,60.7v10.6c0,0.9-0.3,1.6-0.9,2.2\r\n c-0.6,0.6-1.4,0.9-2.2,0.9H23.7c-0.9,0-1.6-0.3-2.2-0.9c-0.6-0.6-0.9-1.4-0.9-2.2V60.7c0-0.9,0.3-1.6,0.9-2.2\r\n c0.6-0.6,1.4-0.9,2.2-0.9h14.1c0.5,1.2,1.2,2.2,2.3,3c1.1,0.8,2.3,1.2,3.7,1.2h8.5c1.3,0,2.6-0.4,3.7-1.2c1.1-0.8,1.9-1.8,2.3-3\r\n h14.1c0.9,0,1.6,0.3,2.2,0.9C75.2,59.1,75.5,59.8,75.5,60.7z M64.8,39.3c-0.4,0.9-1,1.3-2,1.3h-8.5v14.8c0,0.6-0.2,1.1-0.6,1.5\r\n c-0.4,0.4-0.9,0.6-1.5,0.6h-8.5c-0.6,0-1.1-0.2-1.5-0.6c-0.4-0.4-0.6-0.9-0.6-1.5V40.6h-8.5c-0.9,0-1.6-0.4-2-1.3\r\n c-0.4-0.9-0.2-1.6,0.5-2.3l14.8-14.8c0.4-0.4,0.9-0.6,1.5-0.6s1.1,0.2,1.5,0.6L64.3,37C65,37.7,65.1,38.4,64.8,39.3z\"/>\r\n </g>\r\n </svg>\r\n </div>\r\n \r\n <span class=\"button-text\">Browse</span>\r\n </div>\r\n </ng-template>\r\n\r\n <input #inputRef type=\"file\" class=\"files-input\" tabindex=\"-1\" (change)=\"onInputChange($event)\">\r\n</label>","styles":[":host,:host>*{box-sizing:border-box}:host{display:flex;line-height:1.5;color:#555;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:inset 0 4px 7px rgba(0,0,0,.05)}:host(.disabled){opacity:.5}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:24px;width:24px;display:inline-block}.icon svg{fill:#555}.upload-button{cursor:pointer;display:block;padding:2px 4px;background-color:#eee;border-left:1px solid #ddd;border-radius:0 4px 4px 0;min-width:100px;color:#555;margin:0;position:relative;outline:0}.upload-text{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;padding:5px 10px;font-size:14px;height:30px}.button-text{vertical-align:middle;padding-left:10px}:host(.disabled) .upload-button{cursor:not-allowed}:host(:not(.disabled)) .upload-button:focus,:host(:not(.disabled)) .upload-button:hover{color:#80a9d2}:host(:not(.disabled)) .upload-button:focus svg,:host(:not(.disabled)) .upload-button:hover svg{fill:#80a9d2}"]}]}],"members":{"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5}}]}],"buttonRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":40,"character":5},"arguments":["button"]}]}],"placeholderRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":43,"character":5},"arguments":["placeholder"]}]}],"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":46,"character":5},"arguments":["inputRef"]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":49,"character":5},"arguments":["labelRef"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":54,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":55,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":56,"character":13}]}],"hasFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":61,"character":5},"arguments":["class.has-files"]}]}],"isInvalid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":66,"character":5},"arguments":["class.ng-invalid"]}]}],"onInputChange":[{"__symbolic":"method"}],"clearInputEl":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method"}]}}},"origins":{"FileUploadModule":"./file-upload.module","FileUploadControl":"./helpers/control.class","FileUploadValidators":"./helpers/validators.class","ValidationErrors":"./helpers/validators.class","ValidatorFn":"./helpers/validators.class","FileUploadTypes":"./helpers/file-types.class","ɵa":"./components/file-upload.component","ɵb":"./components/file-upload-abstract.component","ɵc":"./services/file-upload.service","ɵd":"./animations/zoom.animation","ɵe":"./animations/insert.animation","ɵf":"./components/file-upload-list-item.component","ɵg":"./components/file-upload-icon.component","ɵh":"./components/file-upload-attr.component","ɵi":"./directives/validators.directive","ɵj":"./directives/validators.directive","ɵk":"./directives/validators.directive","ɵl":"./directives/attribute.directive","ɵm":"./components/simple-file-upload.component"},"importAs":"@iplab/ngx-file-upload"}

@@ -6,3 +6,3 @@ {

"bugs": "https://github.com/pIvan/file-upload/issues",
"version": "1.2.1",
"version": "1.2.2",
"author": "Ivan Pintar",

@@ -9,0 +9,0 @@ "license": "MIT",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc