@iplab/ngx-file-upload
Advanced tools
Comparing version 3.1.0 to 3.1.1
@@ -73,9 +73,2 @@ import { BehaviorSubject, Subject } from 'rxjs'; | ||
addFile(file) { | ||
/** | ||
* if multiple is disabled and one file exists | ||
* clear it and reupload a new one | ||
*/ | ||
if (!this.multipleEnabled && this.files.size === 1) { | ||
this.files.clear(); | ||
} | ||
return this.addMultipleFiles([file]); | ||
@@ -233,3 +226,14 @@ } | ||
addMultipleFiles(files) { | ||
if (!this.multipleEnabled && !IsNullOrEmpty(files)) { | ||
if (IsNullOrEmpty(files)) { | ||
this.validate(); | ||
return this; | ||
} | ||
if (!this.multipleEnabled) { | ||
/** | ||
* if multiple is disabled and one file exists | ||
* clear it and reupload a new one | ||
*/ | ||
if (this.files.size === 1) { | ||
this.files.clear(); | ||
} | ||
// add only one file | ||
@@ -286,2 +290,2 @@ this.files.add(files[0]); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9pcGxhYi9uZ3gtZmlsZS11cGxvYWQvc3JjLyIsInNvdXJjZXMiOlsibGliL2hlbHBlcnMvY29udHJvbC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNkLHlDQUFPLENBQUE7SUFDUCxxQ0FBSyxDQUFBO0lBQ0wsMkNBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxNQUFNLEtBQU4sTUFBTSxRQUlqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZiwwQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFrRTFCLFlBQVksYUFBK0MsRUFBRSxVQUE2QztRQWhFekYsVUFBSyxHQUFjLElBQUksR0FBRyxFQUFFLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsV0FBTSxHQUFXLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFOUIsV0FBTSxHQUFrQyxFQUFFLENBQUM7UUFFM0MsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFFcEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFdkIsb0JBQWUsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXRGLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBdUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVsRCxtQkFBYyxHQUFvQyxJQUFJLE9B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LElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2RTtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdG9ycy5jbGFzcyc7XHJcbmltcG9ydCB7IElzTnVsbE9yRW1wdHkgfSBmcm9tICcuL2hlbHBlcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBJRmlsZVVwbG9hZENvbnRyb2xDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9jb250cm9sLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgZW51bSBTVEFUVVMge1xyXG4gICAgSU5WQUxJRCxcclxuICAgIFZBTElELFxyXG4gICAgRElTQUJMRURcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmlsZUV2ZW50IHtcclxuICAgIGNsaWNrID0gJ2NsaWNrJyxcclxuICAgIGZvY3VzID0gJ2ZvY3VzJyxcclxuICAgIGJsdXIgPSAnYmx1cidcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb250cm9sIHtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVzOiBTZXQ8RmlsZT4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBsaXN0VmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0dXM6IFNUQVRVUyA9IFNUQVRVUy5WQUxJRDtcclxuXHJcbiAgICBwcml2YXRlIGVycm9yczogQXJyYXk8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgbXVsdGlwbGVFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG11bHRpcGxlQ2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLm11bHRpcGxlRW5hYmxlZCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNDaGFuZ2VkOiBTdWJqZWN0PFNUQVRVUz4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRzQ2hhbmdlZDogU3ViamVjdDxGaWxlRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpc2NhcmRlZFZhbHVlOiBTdWJqZWN0PEFycmF5PFZhbGlkYXRpb25FcnJvcj4+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwcml2YXRlIGFjY2VwdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSBkaXNjYXJkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY2NlcHRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hY2NlcHQpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgc3RhdHVzIGBWQUxJRGAsIGBJTlZBTElEYCBvciBgRElTQUJMRURgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPFNUQVRVUz4gPSB0aGlzLnN0YXR1c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdGhlIHZhbHVlIG9mIHRoZSBjb250cm9sXHJcbiAgICAgKiBjaGFuZ2VzLlxyXG4gICAgICogSW5pdGlhbGx5IHJldHVybnMgbGFzdCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RmlsZT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqIHVzZWQgdG8gdHJpZ2dlciBsYXlvdXQgY2hhbmdlIGZvciBsaXN0IHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3RWaXNpYmlsaXR5Q2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmxpc3RWaXNpYmxlKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIGNoYW5nZWQgb24gYWNjZXB0IGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWNjZXB0Q2hhbmdlczogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5hY2NlcHRDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZW1pdCBhbiBldmVudCBldmVyeSB0aW1lIHVzZXIgcHJvZ3JhbW1hdGljYWxseSBhc2sgZm9yIGNlcnRhaW4gZXZlbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGV2ZW50c0NoYW5nZXM6IE9ic2VydmFibGU8RmlsZUV2ZW50PiA9IHRoaXMuZXZlbnRzQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIGNoYW5nZWQgb24gbXVsdGlwbGUgYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBtdWx0aXBsZUNoYW5nZXM6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLm11bHRpcGxlQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIHdoaWNoIGZpbGVzIHdlcmUgZGlzY2FyZGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBkaXNjYXJkZWRWYWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8QXJyYXk8VmFsaWRhdGlvbkVycm9yPj4gPSB0aGlzLmRpc2NhcmRlZFZhbHVlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZ3VyYXRpb24/OiBJRmlsZVVwbG9hZENvbnRyb2xDb25maWd1cmF0aW9uLCB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm4gfCBBcnJheTxWYWxpZGF0b3JGbj4pIHtcclxuICAgICAgICB0aGlzLmluaXRpYWxTdGF0ZShjb25maWd1cmF0aW9uKTtcclxuICAgICAgICB0aGlzLmRlZmluZVZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzZXQgZnVuY3Rpb25zIHRoYXQgZGV0ZXJtaW5lcyB0aGUgc3luY2hyb25vdXMgdmFsaWRpdHkgb2YgdGhpcyBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JGbiB8IEFycmF5PFZhbGlkYXRvckZuPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3JzKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIGlmIG11bHRpcGxlIGlzIGRpc2FibGVkIGFuZCBvbmUgZmlsZSBleGlzdHNcclxuICAgICAgICAgKiBjbGVhciBpdCBhbmQgcmV1cGxvYWQgYSBuZXcgb25lXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlRW5hYmxlZCAmJiB0aGlzLmZpbGVzLnNpemUgPT09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRNdWx0aXBsZUZpbGVzKFtmaWxlXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogdGhpcyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkTXVsdGlwbGVGaWxlcyhBcnJheS5mcm9tKGZpbGVzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID09PSAwICYmIHRoaXMuc3RhdHVzICE9PSBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRFcnJvcigpOiBBcnJheTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbnVtYmVyIG9mIHVwbG9hZGVkIGZpbGVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gbGlzdCBvZiBGaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEFycmF5PEZpbGU+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUoZmlsZXM6IEFycmF5PEZpbGU+KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZE11bHRpcGxlRmlsZXMoZmlsZXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBGb3JtQ29udHJvbC5zZXRWYWx1ZSB3YXMgcHJvdmlkZWQgd2l0aCB3cm9uZyBhcmd1bWVudCB0eXBlLCAke2ZpbGVzfSB3YXMgcHJvdmlkZWQgaW5zdGVhZCBBcnJheTxGaWxlPmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXNldCB0aGUgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xlYXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNMaXN0VmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saXN0VmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TGlzdFZpc2liaWxpdHkoaXNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2libGUgPSBpc1Zpc2libGU7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJpbGl0eUNoYW5nZXMubmV4dCh0aGlzLmxpc3RWaXNpYmxlKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlbmFibGUoaXNFbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gaXNFbmFibGVkID8gU1RBVFVTLlZBTElEIDogU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2FibGUoaXNEaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRGlzYWJsZWQgPyBTVEFUVVMuRElTQUJMRUQgOiBTVEFUVVMuVkFMSUQ7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMuc3RhdHVzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xpY2soKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmNsaWNrKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9jdXMoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmZvY3VzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYmx1cigpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuYmx1cik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzcGVjaWZpZXMgdGhlIHR5cGVzIG9mIGZpbGVzIHRoYXQgdGhlIHNlcnZlciBhY2NlcHRzXHJcbiAgICAgKlxyXG4gICAgICogIyMjIEV4YW1wbGVcclxuICAgICAqXHJcbiAgICAgKiBgYGBcclxuICAgICAqIGFjY2VwdEZpbGVzKFwiZmlsZV9leHRlbnNpb258YXVkaW8vKnx2aWRlby8qfGltYWdlLyp8bWVkaWFfdHlwZVwiKVxyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogVG8gc3BlY2lmeSBtb3JlIHRoYW4gb25lIHZhbHVlLCBzZXBhcmF0ZSB0aGUgdmFsdWVzIHdpdGggYSBjb21tYSAoZS5nLiBhY2NlcHRGaWxlcyhcImF1ZGlvLyosdmlkZW8vKixpbWFnZS8qXCIpLlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjY2VwdEZpbGVzKGFjY2VwdDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hY2NlcHQgPSBhY2NlcHQ7XHJcbiAgICAgICAgdGhpcy5hY2NlcHRDaGFuZ2VkLm5leHQodGhpcy5hY2NlcHQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhY2NlcHRBbGwoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hY2NlcHQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYWNjZXB0Q2hhbmdlZC5uZXh0KHRoaXMuYWNjZXB0KTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzTXVsdGlwbGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbGVFbmFibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtdWx0aXBsZShpc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZUVuYWJsZWQgPSBpc0VuYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZUNoYW5nZWQubmV4dCh0aGlzLm11bHRpcGxlRW5hYmxlZCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2NhcmRJbnZhbGlkKGRpc2NhcmQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5kaXNjYXJkID0gZGlzY2FyZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRpYWxTdGF0ZShjb25maWd1cmF0aW9uOiBJRmlsZVVwbG9hZENvbnRyb2xDb25maWd1cmF0aW9uID0ge30pOiB2b2lkIHtcclxuICAgICAgICBpZiAoSXNOdWxsT3JFbXB0eShjb25maWd1cmF0aW9uKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRvZ2dsZXMgZGlzY2FyZCBvZiBhbGwgaW52YWxpZCBmaWxlc1xyXG4gICAgICAgICAqIGl0IGRlcGVuZHMgdG8gYWNjZXB0LCBsaW1pdCwgc2l6ZSBvbmNlIGEgZmlsZVxyXG4gICAgICAgICAqIGRyb3BwZWQgb3Igc2VsZWN0ZWQgaXQgd2lsbCBiZSBkaXNjYXJkZWQgaWYgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY29uc3RyYWludFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGlzY2FyZCA9IGNvbmZpZ3VyYXRpb24uZGlzY2FyZEludmFsaWQgfHwgdGhpcy5kaXNjYXJkO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gISFjb25maWd1cmF0aW9uLmRpc2FibGVkID8gU1RBVFVTLkRJU0FCTEVEIDogdGhpcy5zdGF0dXM7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZUVuYWJsZWQgPSBjb25maWd1cmF0aW9uLm11bHRpcGxlIHx8IHRoaXMubXVsdGlwbGVFbmFibGVkO1xyXG5cclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkoY29uZmlndXJhdGlvbi5saXN0VmlzaWJsZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRMaXN0VmlzaWJpbGl0eShjb25maWd1cmF0aW9uLmxpc3RWaXNpYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFJc051bGxPckVtcHR5KGNvbmZpZ3VyYXRpb24uYWNjZXB0KSkge1xyXG4gICAgICAgICAgICB0aGlzLmFjY2VwdEZpbGVzKGNvbmZpZ3VyYXRpb24uYWNjZXB0LmpvaW4oJywnKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbiB8IEFycmF5PFZhbGlkYXRvckZuPik6IHZvaWQge1xyXG4gICAgICAgIGlmICghSXNOdWxsT3JFbXB0eSh2YWxpZGF0b3JzKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSBBcnJheS5pc0FycmF5KHZhbGlkYXRvcnMpID8gWy4uLnZhbGlkYXRvcnNdIDogW3ZhbGlkYXRvcnNdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byBwcmV2ZW50IHZhbHVlQ2hhbmdlcyBlbWl0IG1vcmUgdGltZXNcclxuICAgICAqIHdoZW4gbXVsdGlwbGUgZmlsZXMgYXJlIHVwbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYWRkTXVsdGlwbGVGaWxlcyhmaWxlczogQXJyYXk8RmlsZT4pOiB0aGlzIHtcclxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVFbmFibGVkICYmICFJc051bGxPckVtcHR5KGZpbGVzKSkge1xyXG4gICAgICAgICAgICAvLyBhZGQgb25seSBvbmUgZmlsZVxyXG4gICAgICAgICAgICB0aGlzLmZpbGVzLmFkZChmaWxlc1swXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHRoaXMuZmlsZXMuYWRkKGZpbGUpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRpc2NhcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5hbmFseXplVG9EaXNjYXJkKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG1ldGhvZCB1c2VkIHRvIGRpc2NhcmQgaW52YWxpZCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFuYWx5emVUb0Rpc2NhcmQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlZEZpbGVzOiBBcnJheTxWYWxpZGF0aW9uRXJyb3I+ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMudmFsaWRhdG9ycy5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gdmFsaWRhdG9yKHRoaXMpO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIChlcnJvcltPYmplY3Qua2V5cyhlcnJvcilbMF1dKS5mb3JFYWNoKGZpbGVFcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVFcnJvci5maWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZWRGaWxlcy5wdXNoKGZpbGVFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMuZGVsZXRlKGZpbGVFcnJvci5maWxlKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ycy5wdXNoKGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZGVsZXRlZEZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2NhcmRlZFZhbHVlLm5leHQoZGVsZXRlZEZpbGVzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRCkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnZhbGlkO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMudmFsaWRhdG9ycy5tYXAoKHZhbGlkYXRvcikgPT4gdmFsaWRhdG9yKHRoaXMpKS5maWx0ZXIoKGlzSW52YWxpZCkgPT4gaXNJbnZhbGlkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50U3RhdGUgIT09IHRoaXMudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMudmFsaWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuSU5WQUxJRCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycy5sZW5ndGggPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9pcGxhYi9uZ3gtZmlsZS11cGxvYWQvc3JjLyIsInNvdXJjZXMiOlsibGliL2hlbHBlcnMvY29udHJvbC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNkLHlDQUFPLENBQUE7SUFDUCxxQ0FBSyxDQUFBO0lBQ0wsMkNBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxNQUFNLEtBQU4sTUFBTSxRQUlqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZiwwQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFrRTFCLFlBQVksYUFBK0MsRUFBRSxVQUE2QztRQWhFekYsVUFBSyxHQUFjLElBQUksR0FBRyxFQUFFLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsV0FBTSxHQUFXLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFOUIsV0FBTSxHQUFrQyxFQUFFLENBQUM7UUFFM0MsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFFcEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFdkIsb0JBQWUsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXRGLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBdUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVsRCxtQkFBYyxHQUFvQyxJQUFJLE9B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RTtnQkFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0o7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi92YWxpZGF0b3JzLmNsYXNzJztcclxuaW1wb3J0IHsgSXNOdWxsT3JFbXB0eSB9IGZyb20gJy4vaGVscGVycy5jbGFzcyc7XHJcbmltcG9ydCB7IElGaWxlVXBsb2FkQ29udHJvbENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2NvbnRyb2wuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBlbnVtIFNUQVRVUyB7XHJcbiAgICBJTlZBTElELFxyXG4gICAgVkFMSUQsXHJcbiAgICBESVNBQkxFRFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlRXZlbnQge1xyXG4gICAgY2xpY2sgPSAnY2xpY2snLFxyXG4gICAgZm9jdXMgPSAnZm9jdXMnLFxyXG4gICAgYmx1ciA9ICdibHVyJ1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbnRyb2wge1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZXM6IFNldDxGaWxlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwcml2YXRlIGxpc3RWaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXR1czogU1RBVFVTID0gU1RBVFVTLlZBTElEO1xyXG5cclxuICAgIHByaXZhdGUgZXJyb3JzOiBBcnJheTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBtdWx0aXBsZUVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlwbGVDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubXVsdGlwbGVFbmFibGVkKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c0NoYW5nZWQ6IFN1YmplY3Q8U1RBVFVTPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudHNDaGFuZ2VkOiBTdWJqZWN0PEZpbGVFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzY2FyZGVkVmFsdWU6IFN1YmplY3Q8QXJyYXk8VmFsaWRhdGlvbkVycm9yPj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgYWNjZXB0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBwcml2YXRlIGRpc2NhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2VwdENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmFjY2VwdCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBzdGF0dXMgYFZBTElEYCwgYElOVkFMSURgIG9yIGBESVNBQkxFRGBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8U1RBVFVTPiA9IHRoaXMuc3RhdHVzQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGVtaXQgYW4gZXZlbnQgZXZlcnkgdGltZSB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2xcclxuICAgICAqIGNoYW5nZXMuXHJcbiAgICAgKiBJbml0aWFsbHkgcmV0dXJucyBsYXN0IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGaWxlPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byB0cmlnZ2VyIGxheW91dCBjaGFuZ2UgZm9yIGxpc3QgdmlzaWJpbGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdFZpc2liaWxpdHlDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubGlzdFZpc2libGUpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgY2hhbmdlZCBvbiBhY2NlcHQgYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBhY2NlcHRDaGFuZ2VzOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmFjY2VwdENoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdXNlciBwcm9ncmFtbWF0aWNhbGx5IGFzayBmb3IgY2VydGFpbiBldmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzQ2hhbmdlczogT2JzZXJ2YWJsZTxGaWxlRXZlbnQ+ID0gdGhpcy5ldmVudHNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgY2hhbmdlZCBvbiBtdWx0aXBsZSBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IG11bHRpcGxlQ2hhbmdlczogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubXVsdGlwbGVDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgd2hpY2ggZmlsZXMgd2VyZSBkaXNjYXJkZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc2NhcmRlZFZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxBcnJheTxWYWxpZGF0aW9uRXJyb3I+PiA9IHRoaXMuZGlzY2FyZGVkVmFsdWUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvbj86IElGaWxlVXBsb2FkQ29udHJvbENvbmZpZ3VyYXRpb24sIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbiB8IEFycmF5PFZhbGlkYXRvckZuPikge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbFN0YXRlKGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCBmdW5jdGlvbnMgdGhhdCBkZXRlcm1pbmVzIHRoZSBzeW5jaHJvbm91cyB2YWxpZGl0eSBvZiB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgQXJyYXk8VmFsaWRhdG9yRm4+KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5kZWZpbmVWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnMpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZShmaWxlOiBGaWxlKTogdGhpcyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkTXVsdGlwbGVGaWxlcyhbZmlsZV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlcy5kZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEZpbGVzKGZpbGVzOiBGaWxlTGlzdCk6IHRoaXMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZE11bHRpcGxlRmlsZXMoQXJyYXkuZnJvbShmaWxlcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnN0YXR1cyAhPT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RXJyb3IoKTogQXJyYXk8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG51bWJlciBvZiB1cGxvYWRlZCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmV0dXJuIGxpc3Qgb2YgRmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBBcnJheTxGaWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFZhbHVlKGZpbGVzOiBBcnJheTxGaWxlPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKGZpbGVzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgRm9ybUNvbnRyb2wuc2V0VmFsdWUgd2FzIHByb3ZpZGVkIHdpdGggd3JvbmcgYXJndW1lbnQgdHlwZSwgJHtmaWxlc30gd2FzIHByb3ZpZGVkIGluc3RlYWQgQXJyYXk8RmlsZT5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVzZXQgdGhlIGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsZWFyKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzTGlzdFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdFZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldExpc3RWaXNpYmlsaXR5KGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gaXNWaXNpYmxlO1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2liaWxpdHlDaGFuZ2VzLm5leHQodGhpcy5saXN0VmlzaWJsZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZW5hYmxlKGlzRW5hYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRW5hYmxlZCA/IFNUQVRVUy5WQUxJRCA6IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNhYmxlKGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpc0Rpc2FibGVkID8gU1RBVFVTLkRJU0FCTEVEIDogU1RBVFVTLlZBTElEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsaWNrKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5jbGljayk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5mb2N1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGJsdXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmJsdXIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3BlY2lmaWVzIHRoZSB0eXBlcyBvZiBmaWxlcyB0aGF0IHRoZSBzZXJ2ZXIgYWNjZXB0c1xyXG4gICAgICpcclxuICAgICAqICMjIyBFeGFtcGxlXHJcbiAgICAgKlxyXG4gICAgICogYGBgXHJcbiAgICAgKiBhY2NlcHRGaWxlcyhcImZpbGVfZXh0ZW5zaW9ufGF1ZGlvLyp8dmlkZW8vKnxpbWFnZS8qfG1lZGlhX3R5cGVcIilcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIFRvIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgc2VwYXJhdGUgdGhlIHZhbHVlcyB3aXRoIGEgY29tbWEgKGUuZy4gYWNjZXB0RmlsZXMoXCJhdWRpby8qLHZpZGVvLyosaW1hZ2UvKlwiKS5cclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY2NlcHRGaWxlcyhhY2NlcHQ6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWNjZXB0ID0gYWNjZXB0O1xyXG4gICAgICAgIHRoaXMuYWNjZXB0Q2hhbmdlZC5uZXh0KHRoaXMuYWNjZXB0KTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWNjZXB0QWxsKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWNjZXB0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmFjY2VwdENoYW5nZWQubmV4dCh0aGlzLmFjY2VwdCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpc011bHRpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlRW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbXVsdGlwbGUoaXNFbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVFbmFibGVkID0gaXNFbmFibGVkO1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVDaGFuZ2VkLm5leHQodGhpcy5tdWx0aXBsZUVuYWJsZWQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNjYXJkSW52YWxpZChkaXNjYXJkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZGlzY2FyZCA9IGRpc2NhcmQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsU3RhdGUoY29uZmlndXJhdGlvbjogSUZpbGVVcGxvYWRDb250cm9sQ29uZmlndXJhdGlvbiA9IHt9KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKElzTnVsbE9yRW1wdHkoY29uZmlndXJhdGlvbikpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUb2dnbGVzIGRpc2NhcmQgb2YgYWxsIGludmFsaWQgZmlsZXNcclxuICAgICAgICAgKiBpdCBkZXBlbmRzIHRvIGFjY2VwdCwgbGltaXQsIHNpemUgb25jZSBhIGZpbGVcclxuICAgICAgICAgKiBkcm9wcGVkIG9yIHNlbGVjdGVkIGl0IHdpbGwgYmUgZGlzY2FyZGVkIGlmIGRvZXMgbm90IHNhdGlzZnkgdGhlIGNvbnN0cmFpbnRcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRpc2NhcmQgPSBjb25maWd1cmF0aW9uLmRpc2NhcmRJbnZhbGlkIHx8IHRoaXMuZGlzY2FyZDtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9ICEhY29uZmlndXJhdGlvbi5kaXNhYmxlZCA/IFNUQVRVUy5ESVNBQkxFRCA6IHRoaXMuc3RhdHVzO1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVFbmFibGVkID0gY29uZmlndXJhdGlvbi5tdWx0aXBsZSB8fCB0aGlzLm11bHRpcGxlRW5hYmxlZDtcclxuXHJcbiAgICAgICAgaWYgKCFJc051bGxPckVtcHR5KGNvbmZpZ3VyYXRpb24ubGlzdFZpc2libGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TGlzdFZpc2liaWxpdHkoY29uZmlndXJhdGlvbi5saXN0VmlzaWJsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghSXNOdWxsT3JFbXB0eShjb25maWd1cmF0aW9uLmFjY2VwdCkpIHtcclxuICAgICAgICAgICAgdGhpcy5hY2NlcHRGaWxlcyhjb25maWd1cmF0aW9uLmFjY2VwdC5qb2luKCcsJykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRlZmluZVZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBBcnJheTxWYWxpZGF0b3JGbj4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkodmFsaWRhdG9ycykpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzKSA/IFsuLi52YWxpZGF0b3JzXSA6IFt2YWxpZGF0b3JzXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqIHVzZWQgdG8gcHJldmVudCB2YWx1ZUNoYW5nZXMgZW1pdCBtb3JlIHRpbWVzXHJcbiAgICAgKiB3aGVuIG11bHRpcGxlIGZpbGVzIGFyZSB1cGxvYWRlZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFkZE11bHRpcGxlRmlsZXMoZmlsZXM6IEFycmF5PEZpbGU+KTogdGhpcyB7XHJcbiAgICAgICAgaWYgKElzTnVsbE9yRW1wdHkoZmlsZXMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVFbmFibGVkKSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBpZiBtdWx0aXBsZSBpcyBkaXNhYmxlZCBhbmQgb25lIGZpbGUgZXhpc3RzXHJcbiAgICAgICAgICAgICAqIGNsZWFyIGl0IGFuZCByZXVwbG9hZCBhIG5ldyBvbmVcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGVzLnNpemUgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBhZGQgb25seSBvbmUgZmlsZVxyXG4gICAgICAgICAgICB0aGlzLmZpbGVzLmFkZChmaWxlc1swXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHRoaXMuZmlsZXMuYWRkKGZpbGUpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRpc2NhcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5hbmFseXplVG9EaXNjYXJkKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG1ldGhvZCB1c2VkIHRvIGRpc2NhcmQgaW52YWxpZCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFuYWx5emVUb0Rpc2NhcmQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlZEZpbGVzOiBBcnJheTxWYWxpZGF0aW9uRXJyb3I+ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMudmFsaWRhdG9ycy5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gdmFsaWRhdG9yKHRoaXMpO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIChlcnJvcltPYmplY3Qua2V5cyhlcnJvcilbMF1dKS5mb3JFYWNoKGZpbGVFcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVFcnJvci5maWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZWRGaWxlcy5wdXNoKGZpbGVFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMuZGVsZXRlKGZpbGVFcnJvci5maWxlKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ycy5wdXNoKGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZGVsZXRlZEZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2NhcmRlZFZhbHVlLm5leHQoZGVsZXRlZEZpbGVzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRCkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnZhbGlkO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMudmFsaWRhdG9ycy5tYXAoKHZhbGlkYXRvcikgPT4gdmFsaWRhdG9yKHRoaXMpKS5maWx0ZXIoKGlzSW52YWxpZCkgPT4gaXNJbnZhbGlkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50U3RhdGUgIT09IHRoaXMudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMudmFsaWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuSU5WQUxJRCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycy5sZW5ndGggPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= |
@@ -6,3 +6,3 @@ { | ||
"bugs": "https://github.com/pIvan/file-upload/issues", | ||
"version": "3.1.0", | ||
"version": "3.1.1", | ||
"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 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
Sorry, the diff of this file is not supported yet
1284414
8737