ng2-file-upload 1.1.4-2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/bundles/ng2-file-upload.umd.js +1994 -1036
  2. package/bundles/ng2-file-upload.umd.js.map +1 -1
  3. package/bundles/ng2-file-upload.umd.min.js +2 -1
  4. package/bundles/ng2-file-upload.umd.min.js.map +1 -0
  5. package/esm2015/file-upload/file-drop.directive.js +139 -0
  6. package/esm2015/file-upload/file-item.class.js +268 -0
  7. package/esm2015/file-upload/file-like-object.class.js +60 -0
  8. package/esm2015/file-upload/file-select.directive.js +73 -0
  9. package/esm2015/file-upload/file-type.class.js +194 -0
  10. package/esm2015/file-upload/file-upload.module.js +18 -0
  11. package/esm2015/file-upload/file-uploader.class.js +845 -0
  12. package/esm2015/index.js +11 -0
  13. package/esm2015/ng2-file-upload.js +9 -0
  14. package/esm5/file-upload/file-drop.directive.js +171 -0
  15. package/esm5/file-upload/file-item.class.js +347 -0
  16. package/esm5/file-upload/file-like-object.class.js +67 -0
  17. package/esm5/file-upload/file-select.directive.js +84 -0
  18. package/esm5/file-upload/file-type.class.js +206 -0
  19. package/esm5/file-upload/file-upload.module.js +22 -0
  20. package/esm5/file-upload/file-uploader.class.js +1132 -0
  21. package/esm5/index.js +11 -0
  22. package/esm5/ng2-file-upload.js +9 -0
  23. package/fesm2015/ng2-file-upload.js +1599 -0
  24. package/fesm2015/ng2-file-upload.js.map +1 -0
  25. package/fesm5/ng2-file-upload.js +2020 -0
  26. package/fesm5/ng2-file-upload.js.map +1 -0
  27. package/file-upload/file-drop.directive.d.ts +6 -6
  28. package/file-upload/file-item.class.d.ts +3 -3
  29. package/file-upload/file-like-object.class.d.ts +1 -0
  30. package/file-upload/file-select.directive.d.ts +3 -2
  31. package/file-upload/file-type.class.d.ts +2 -1
  32. package/file-upload/file-uploader.class.d.ts +32 -24
  33. package/index.d.ts +2 -0
  34. package/ng2-file-upload.d.ts +4 -4
  35. package/ng2-file-upload.metadata.json +1 -1
  36. package/package.json +16 -25
  37. package/CHANGELOG.md +0 -91
  38. package/README.md +0 -64
  39. package/file-upload/file-drop.directive.js +0 -89
  40. package/file-upload/file-drop.directive.metadata.json +0 -1
  41. package/file-upload/file-item.class.js +0 -126
  42. package/file-upload/file-like-object.class.js +0 -27
  43. package/file-upload/file-select.directive.js +0 -40
  44. package/file-upload/file-select.directive.metadata.json +0 -1
  45. package/file-upload/file-type.class.js +0 -162
  46. package/file-upload/file-upload.module.js +0 -20
  47. package/file-upload/file-upload.module.metadata.json +0 -1
  48. package/file-upload/file-uploader.class.js +0 -398
  49. package/index.js +0 -9
  50. package/index.metadata.json +0 -1
  51. package/ng2-file-upload.js +0 -9
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Directive, EventEmitter, ElementRef, HostListener, Input, Output } from '@angular/core';
6
+ import { FileUploader } from './file-uploader.class';
7
+ export class FileDropDirective {
8
+ /**
9
+ * @param {?} element
10
+ */
11
+ constructor(element) {
12
+ this.fileOver = new EventEmitter();
13
+ this.onFileDrop = new EventEmitter();
14
+ this.element = element;
15
+ }
16
+ /**
17
+ * @return {?}
18
+ */
19
+ getOptions() {
20
+ return this.uploader.options;
21
+ }
22
+ /**
23
+ * @return {?}
24
+ */
25
+ getFilters() {
26
+ return {};
27
+ }
28
+ /**
29
+ * @param {?} event
30
+ * @return {?}
31
+ */
32
+ onDrop(event) {
33
+ /** @type {?} */
34
+ let transfer = this._getTransfer(event);
35
+ if (!transfer) {
36
+ return;
37
+ }
38
+ /** @type {?} */
39
+ let options = this.getOptions();
40
+ /** @type {?} */
41
+ let filters = this.getFilters();
42
+ this._preventAndStop(event);
43
+ this.uploader.addToQueue(transfer.files, options, filters);
44
+ this.fileOver.emit(false);
45
+ this.onFileDrop.emit(transfer.files);
46
+ }
47
+ /**
48
+ * @param {?} event
49
+ * @return {?}
50
+ */
51
+ onDragOver(event) {
52
+ /** @type {?} */
53
+ let transfer = this._getTransfer(event);
54
+ if (!this._haveFiles(transfer.types)) {
55
+ return;
56
+ }
57
+ transfer.dropEffect = 'copy';
58
+ this._preventAndStop(event);
59
+ this.fileOver.emit(true);
60
+ }
61
+ /**
62
+ * @param {?} event
63
+ * @return {?}
64
+ */
65
+ onDragLeave(event) {
66
+ if (((/** @type {?} */ (this))).element) {
67
+ if (event.currentTarget === ((/** @type {?} */ (this))).element[0]) {
68
+ return;
69
+ }
70
+ }
71
+ this._preventAndStop(event);
72
+ this.fileOver.emit(false);
73
+ }
74
+ /**
75
+ * @protected
76
+ * @param {?} event
77
+ * @return {?}
78
+ */
79
+ _getTransfer(event) {
80
+ return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;
81
+ }
82
+ /**
83
+ * @protected
84
+ * @param {?} event
85
+ * @return {?}
86
+ */
87
+ _preventAndStop(event) {
88
+ event.preventDefault();
89
+ event.stopPropagation();
90
+ }
91
+ /**
92
+ * @protected
93
+ * @param {?} types
94
+ * @return {?}
95
+ */
96
+ _haveFiles(types) {
97
+ if (!types) {
98
+ return false;
99
+ }
100
+ if (types.indexOf) {
101
+ return types.indexOf('Files') !== -1;
102
+ }
103
+ else if (types.contains) {
104
+ return types.contains('Files');
105
+ }
106
+ else {
107
+ return false;
108
+ }
109
+ }
110
+ }
111
+ FileDropDirective.decorators = [
112
+ { type: Directive, args: [{ selector: '[ng2FileDrop]' },] }
113
+ ];
114
+ /** @nocollapse */
115
+ FileDropDirective.ctorParameters = () => [
116
+ { type: ElementRef }
117
+ ];
118
+ FileDropDirective.propDecorators = {
119
+ uploader: [{ type: Input }],
120
+ fileOver: [{ type: Output }],
121
+ onFileDrop: [{ type: Output }],
122
+ onDrop: [{ type: HostListener, args: ['drop', ['$event'],] }],
123
+ onDragOver: [{ type: HostListener, args: ['dragover', ['$event'],] }],
124
+ onDragLeave: [{ type: HostListener, args: ['dragleave', ['$event'],] }]
125
+ };
126
+ if (false) {
127
+ /** @type {?} */
128
+ FileDropDirective.prototype.uploader;
129
+ /** @type {?} */
130
+ FileDropDirective.prototype.fileOver;
131
+ /** @type {?} */
132
+ FileDropDirective.prototype.onFileDrop;
133
+ /**
134
+ * @type {?}
135
+ * @protected
136
+ */
137
+ FileDropDirective.prototype.element;
138
+ }
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nMi1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImZpbGUtdXBsb2FkL2ZpbGUtZHJvcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLHVCQUF1QixDQUFDO0FBRzFFLE1BQU0sT0FBTyxpQkFBaUI7Ozs7SUFPNUIsWUFBbUIsT0FBbUI7UUFMckIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUs3RSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDOzs7O0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQzs7OztJQUVNLFVBQVU7UUFDZixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Ozs7O0lBR00sTUFBTSxDQUFDLEtBQVU7O1lBQ2xCLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTztTQUNSOztZQUVHLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFOztZQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7OztJQUdNLFVBQVUsQ0FBQyxLQUFVOztZQUN0QixRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLE9BQU87U0FDUjtRQUVELFFBQVEsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFHTSxXQUFXLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsbUJBQUEsSUFBSSxFQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDekIsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsbUJBQUEsSUFBSSxFQUFPLENBQUMsQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFFLEVBQUU7Z0JBQ3RELE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7Ozs7SUFFUyxZQUFZLENBQUMsS0FBVTtRQUMvQixPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsY0FBYztJQUNuRyxDQUFDOzs7Ozs7SUFFUyxlQUFlLENBQUMsS0FBVTtRQUNsQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7OztJQUVTLFVBQVUsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN0QzthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOzs7WUFoRkYsU0FBUyxTQUFDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRTs7OztZQUpOLFVBQVU7Ozt1QkFNekMsS0FBSzt1QkFDTCxNQUFNO3lCQUNOLE1BQU07cUJBZ0JOLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBRSxRQUFRLENBQUU7eUJBZWpDLFlBQVksU0FBQyxVQUFVLEVBQUUsQ0FBRSxRQUFRLENBQUU7MEJBWXJDLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBRSxRQUFRLENBQUU7Ozs7SUE3Q3ZDLHFDQUF1Qzs7SUFDdkMscUNBQWtFOztJQUNsRSx1Q0FBK0U7Ozs7O0lBRS9FLG9DQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmlsZVVwbG9hZGVyLCBGaWxlVXBsb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW25nMkZpbGVEcm9wXScgfSlcbmV4cG9ydCBjbGFzcyBGaWxlRHJvcERpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIHB1YmxpYyB1cGxvYWRlcjogRmlsZVVwbG9hZGVyO1xuICBAT3V0cHV0KCkgcHVibGljIGZpbGVPdmVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkZpbGVEcm9wOiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xuXG4gIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPcHRpb25zKCk6IEZpbGVVcGxvYWRlck9wdGlvbnMge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZGVyLm9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmlsdGVycygpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbICckZXZlbnQnIF0pXG4gIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGxldCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2ZW50KTtcbiAgICBpZiAoIXRyYW5zZmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKTtcbiAgICBsZXQgZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2ZW50KTtcbiAgICB0aGlzLnVwbG9hZGVyLmFkZFRvUXVldWUodHJhbnNmZXIuZmlsZXMsIG9wdGlvbnMsIGZpbHRlcnMpO1xuICAgIHRoaXMuZmlsZU92ZXIuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5vbkZpbGVEcm9wLmVtaXQodHJhbnNmZXIuZmlsZXMpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbICckZXZlbnQnIF0pXG4gIHB1YmxpYyBvbkRyYWdPdmVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgdHJhbnNmZXIgPSB0aGlzLl9nZXRUcmFuc2ZlcihldmVudCk7XG4gICAgaWYgKCF0aGlzLl9oYXZlRmlsZXModHJhbnNmZXIudHlwZXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICB0aGlzLl9wcmV2ZW50QW5kU3RvcChldmVudCk7XG4gICAgdGhpcy5maWxlT3Zlci5lbWl0KHRydWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyAnJGV2ZW50JyBdKVxuICBwdWJsaWMgb25EcmFnTGVhdmUoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgaWYgKCh0aGlzIGFzIGFueSkuZWxlbWVudCkge1xuICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQgPT09ICh0aGlzIGFzIGFueSkuZWxlbWVudFsgMCBdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9wcmV2ZW50QW5kU3RvcChldmVudCk7XG4gICAgdGhpcy5maWxlT3Zlci5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfZ2V0VHJhbnNmZXIoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2ZlciA6IGV2ZW50Lm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyOyAvLyBqUXVlcnkgZml4O1xuICB9XG5cbiAgcHJvdGVjdGVkIF9wcmV2ZW50QW5kU3RvcChldmVudDogYW55KTogYW55IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYXZlRmlsZXModHlwZXM6IGFueSk6IGFueSB7XG4gICAgaWYgKCF0eXBlcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0eXBlcy5pbmRleE9mKSB7XG4gICAgICByZXR1cm4gdHlwZXMuaW5kZXhPZignRmlsZXMnKSAhPT0gLTE7XG4gICAgfSBlbHNlIGlmICh0eXBlcy5jb250YWlucykge1xuICAgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKCdGaWxlcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,268 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { FileLikeObject } from './file-like-object.class';
6
+ export class FileItem {
7
+ /**
8
+ * @param {?} uploader
9
+ * @param {?} some
10
+ * @param {?} options
11
+ */
12
+ constructor(uploader, some, options) {
13
+ this.url = '/';
14
+ this.headers = [];
15
+ this.withCredentials = true;
16
+ this.formData = [];
17
+ this.isReady = false;
18
+ this.isUploading = false;
19
+ this.isUploaded = false;
20
+ this.isSuccess = false;
21
+ this.isCancel = false;
22
+ this.isError = false;
23
+ this.progress = 0;
24
+ this.index = void 0;
25
+ this.uploader = uploader;
26
+ this.some = some;
27
+ this.options = options;
28
+ this.file = new FileLikeObject(some);
29
+ this._file = some;
30
+ if (uploader.options) {
31
+ this.method = uploader.options.method || 'POST';
32
+ this.alias = uploader.options.itemAlias || 'file';
33
+ }
34
+ this.url = uploader.options.url;
35
+ }
36
+ /**
37
+ * @return {?}
38
+ */
39
+ upload() {
40
+ try {
41
+ this.uploader.uploadItem(this);
42
+ }
43
+ catch (e) {
44
+ this.uploader._onCompleteItem(this, '', 0, {});
45
+ this.uploader._onErrorItem(this, '', 0, {});
46
+ }
47
+ }
48
+ /**
49
+ * @return {?}
50
+ */
51
+ cancel() {
52
+ this.uploader.cancelItem(this);
53
+ }
54
+ /**
55
+ * @return {?}
56
+ */
57
+ remove() {
58
+ this.uploader.removeFromQueue(this);
59
+ }
60
+ /**
61
+ * @return {?}
62
+ */
63
+ onBeforeUpload() {
64
+ return void 0;
65
+ }
66
+ /**
67
+ * @param {?} form
68
+ * @return {?}
69
+ */
70
+ onBuildForm(form) {
71
+ return { form };
72
+ }
73
+ /**
74
+ * @param {?} progress
75
+ * @return {?}
76
+ */
77
+ onProgress(progress) {
78
+ return { progress };
79
+ }
80
+ /**
81
+ * @param {?} response
82
+ * @param {?} status
83
+ * @param {?} headers
84
+ * @return {?}
85
+ */
86
+ onSuccess(response, status, headers) {
87
+ return { response, status, headers };
88
+ }
89
+ /**
90
+ * @param {?} response
91
+ * @param {?} status
92
+ * @param {?} headers
93
+ * @return {?}
94
+ */
95
+ onError(response, status, headers) {
96
+ return { response, status, headers };
97
+ }
98
+ /**
99
+ * @param {?} response
100
+ * @param {?} status
101
+ * @param {?} headers
102
+ * @return {?}
103
+ */
104
+ onCancel(response, status, headers) {
105
+ return { response, status, headers };
106
+ }
107
+ /**
108
+ * @param {?} response
109
+ * @param {?} status
110
+ * @param {?} headers
111
+ * @return {?}
112
+ */
113
+ onComplete(response, status, headers) {
114
+ return { response, status, headers };
115
+ }
116
+ /**
117
+ * @return {?}
118
+ */
119
+ _onBeforeUpload() {
120
+ this.isReady = true;
121
+ this.isUploading = true;
122
+ this.isUploaded = false;
123
+ this.isSuccess = false;
124
+ this.isCancel = false;
125
+ this.isError = false;
126
+ this.progress = 0;
127
+ this.onBeforeUpload();
128
+ }
129
+ /**
130
+ * @param {?} form
131
+ * @return {?}
132
+ */
133
+ _onBuildForm(form) {
134
+ this.onBuildForm(form);
135
+ }
136
+ /**
137
+ * @param {?} progress
138
+ * @return {?}
139
+ */
140
+ _onProgress(progress) {
141
+ this.progress = progress;
142
+ this.onProgress(progress);
143
+ }
144
+ /**
145
+ * @param {?} response
146
+ * @param {?} status
147
+ * @param {?} headers
148
+ * @return {?}
149
+ */
150
+ _onSuccess(response, status, headers) {
151
+ this.isReady = false;
152
+ this.isUploading = false;
153
+ this.isUploaded = true;
154
+ this.isSuccess = true;
155
+ this.isCancel = false;
156
+ this.isError = false;
157
+ this.progress = 100;
158
+ this.index = void 0;
159
+ this.onSuccess(response, status, headers);
160
+ }
161
+ /**
162
+ * @param {?} response
163
+ * @param {?} status
164
+ * @param {?} headers
165
+ * @return {?}
166
+ */
167
+ _onError(response, status, headers) {
168
+ this.isReady = false;
169
+ this.isUploading = false;
170
+ this.isUploaded = true;
171
+ this.isSuccess = false;
172
+ this.isCancel = false;
173
+ this.isError = true;
174
+ this.progress = 0;
175
+ this.index = void 0;
176
+ this.onError(response, status, headers);
177
+ }
178
+ /**
179
+ * @param {?} response
180
+ * @param {?} status
181
+ * @param {?} headers
182
+ * @return {?}
183
+ */
184
+ _onCancel(response, status, headers) {
185
+ this.isReady = false;
186
+ this.isUploading = false;
187
+ this.isUploaded = false;
188
+ this.isSuccess = false;
189
+ this.isCancel = true;
190
+ this.isError = false;
191
+ this.progress = 0;
192
+ this.index = void 0;
193
+ this.onCancel(response, status, headers);
194
+ }
195
+ /**
196
+ * @param {?} response
197
+ * @param {?} status
198
+ * @param {?} headers
199
+ * @return {?}
200
+ */
201
+ _onComplete(response, status, headers) {
202
+ this.onComplete(response, status, headers);
203
+ if (this.uploader.options.removeAfterUpload) {
204
+ this.remove();
205
+ }
206
+ }
207
+ /**
208
+ * @return {?}
209
+ */
210
+ _prepareToUploading() {
211
+ this.index = this.index || ++this.uploader._nextIndex;
212
+ this.isReady = true;
213
+ }
214
+ }
215
+ if (false) {
216
+ /** @type {?} */
217
+ FileItem.prototype.file;
218
+ /** @type {?} */
219
+ FileItem.prototype._file;
220
+ /** @type {?} */
221
+ FileItem.prototype.alias;
222
+ /** @type {?} */
223
+ FileItem.prototype.url;
224
+ /** @type {?} */
225
+ FileItem.prototype.method;
226
+ /** @type {?} */
227
+ FileItem.prototype.headers;
228
+ /** @type {?} */
229
+ FileItem.prototype.withCredentials;
230
+ /** @type {?} */
231
+ FileItem.prototype.formData;
232
+ /** @type {?} */
233
+ FileItem.prototype.isReady;
234
+ /** @type {?} */
235
+ FileItem.prototype.isUploading;
236
+ /** @type {?} */
237
+ FileItem.prototype.isUploaded;
238
+ /** @type {?} */
239
+ FileItem.prototype.isSuccess;
240
+ /** @type {?} */
241
+ FileItem.prototype.isCancel;
242
+ /** @type {?} */
243
+ FileItem.prototype.isError;
244
+ /** @type {?} */
245
+ FileItem.prototype.progress;
246
+ /** @type {?} */
247
+ FileItem.prototype.index;
248
+ /** @type {?} */
249
+ FileItem.prototype._xhr;
250
+ /** @type {?} */
251
+ FileItem.prototype._form;
252
+ /**
253
+ * @type {?}
254
+ * @protected
255
+ */
256
+ FileItem.prototype.uploader;
257
+ /**
258
+ * @type {?}
259
+ * @protected
260
+ */
261
+ FileItem.prototype.some;
262
+ /**
263
+ * @type {?}
264
+ * @protected
265
+ */
266
+ FileItem.prototype.options;
267
+ }
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcyLWZpbGUtdXBsb2FkLyIsInNvdXJjZXMiOlsiZmlsZS11cGxvYWQvZmlsZS1pdGVtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFFBQVE7Ozs7OztJQXdCbkIsWUFBbUIsUUFBc0IsRUFBRSxJQUFVLEVBQUUsT0FBNEI7UUFwQjVFLFFBQUcsR0FBVyxHQUFHLENBQUM7UUFFbEIsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLFVBQUssR0FBVyxLQUFLLENBQUMsQ0FBQztRQVM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztZQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDbEMsQ0FBQzs7OztJQUVNLE1BQU07UUFDWCxJQUFJO1lBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQzs7OztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDOzs7O0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7SUFFTSxjQUFjO1FBQ25CLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQzs7Ozs7SUFFTSxXQUFXLENBQUMsSUFBUztRQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7Ozs7SUFFTSxVQUFVLENBQUMsUUFBZ0I7UUFDaEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7Ozs7SUFFTSxTQUFTLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsT0FBOEI7UUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7Ozs7OztJQUVNLE9BQU8sQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxPQUE4QjtRQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzs7Ozs7O0lBRU0sUUFBUSxDQUFDLFFBQWdCLEVBQUUsTUFBYyxFQUFFLE9BQThCO1FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Ozs7Ozs7SUFFTSxVQUFVLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsT0FBOEI7UUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7OztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBRU0sWUFBWSxDQUFDLElBQVM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOzs7OztJQUVNLFdBQVcsQ0FBQyxRQUFnQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7Ozs7SUFFTSxVQUFVLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsT0FBOEI7UUFDaEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7Ozs7OztJQUVNLFFBQVEsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxPQUE4QjtRQUM5RSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7Ozs7O0lBRU0sU0FBUyxDQUFDLFFBQWdCLEVBQUUsTUFBYyxFQUFFLE9BQThCO1FBQy9FLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7Ozs7SUFFTSxXQUFXLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsT0FBOEI7UUFDakYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOzs7O0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7Q0FDRjs7O0lBckpDLHdCQUE0Qjs7SUFDNUIseUJBQW1COztJQUNuQix5QkFBcUI7O0lBQ3JCLHVCQUF5Qjs7SUFDekIsMEJBQXNCOztJQUN0QiwyQkFBeUI7O0lBQ3pCLG1DQUF1Qzs7SUFDdkMsNEJBQTBCOztJQUMxQiwyQkFBZ0M7O0lBQ2hDLCtCQUFvQzs7SUFDcEMsOEJBQW1DOztJQUNuQyw2QkFBa0M7O0lBQ2xDLDRCQUFpQzs7SUFDakMsMkJBQWdDOztJQUNoQyw0QkFBNEI7O0lBQzVCLHlCQUE4Qjs7SUFDOUIsd0JBQTRCOztJQUM1Qix5QkFBa0I7Ozs7O0lBRWxCLDRCQUFpQzs7Ozs7SUFDakMsd0JBQXFCOzs7OztJQUNyQiwyQkFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlTGlrZU9iamVjdCB9IGZyb20gJy4vZmlsZS1saWtlLW9iamVjdC5jbGFzcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkZXIsIFBhcnNlZFJlc3BvbnNlSGVhZGVycywgRmlsZVVwbG9hZGVyT3B0aW9ucyB9IGZyb20gJy4vZmlsZS11cGxvYWRlci5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlSXRlbSB7XG4gIHB1YmxpYyBmaWxlOiBGaWxlTGlrZU9iamVjdDtcbiAgcHVibGljIF9maWxlOiBGaWxlO1xuICBwdWJsaWMgYWxpYXM6IHN0cmluZztcbiAgcHVibGljIHVybDogc3RyaW5nID0gJy8nO1xuICBwdWJsaWMgbWV0aG9kOiBzdHJpbmc7XG4gIHB1YmxpYyBoZWFkZXJzOiBhbnkgPSBbXTtcbiAgcHVibGljIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBmb3JtRGF0YTogYW55ID0gW107XG4gIHB1YmxpYyBpc1JlYWR5OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc1VwbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNVcGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNTdWNjZXNzOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0NhbmNlbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgcHJvZ3Jlc3M6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBpbmRleDogbnVtYmVyID0gdm9pZCAwO1xuICBwdWJsaWMgX3hocjogWE1MSHR0cFJlcXVlc3Q7XG4gIHB1YmxpYyBfZm9ybTogYW55O1xuXG4gIHByb3RlY3RlZCB1cGxvYWRlcjogRmlsZVVwbG9hZGVyO1xuICBwcm90ZWN0ZWQgc29tZTogRmlsZTtcbiAgcHJvdGVjdGVkIG9wdGlvbnM6IEZpbGVVcGxvYWRlck9wdGlvbnM7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHVwbG9hZGVyOiBGaWxlVXBsb2FkZXIsIHNvbWU6IEZpbGUsIG9wdGlvbnM6IEZpbGVVcGxvYWRlck9wdGlvbnMpIHtcbiAgICB0aGlzLnVwbG9hZGVyID0gdXBsb2FkZXI7XG4gICAgdGhpcy5zb21lID0gc29tZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuZmlsZSA9IG5ldyBGaWxlTGlrZU9iamVjdChzb21lKTtcbiAgICB0aGlzLl9maWxlID0gc29tZTtcbiAgICBpZiAodXBsb2FkZXIub3B0aW9ucykge1xuICAgICAgdGhpcy5tZXRob2QgPSB1cGxvYWRlci5vcHRpb25zLm1ldGhvZCB8fCAnUE9TVCc7XG4gICAgICB0aGlzLmFsaWFzID0gdXBsb2FkZXIub3B0aW9ucy5pdGVtQWxpYXMgfHwgJ2ZpbGUnO1xuICAgIH1cbiAgICB0aGlzLnVybCA9IHVwbG9hZGVyLm9wdGlvbnMudXJsO1xuICB9XG5cbiAgcHVibGljIHVwbG9hZCgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy51cGxvYWRlci51cGxvYWRJdGVtKHRoaXMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuX29uQ29tcGxldGVJdGVtKHRoaXMsICcnLCAwLCB7fSk7XG4gICAgICB0aGlzLnVwbG9hZGVyLl9vbkVycm9ySXRlbSh0aGlzLCAnJywgMCwge30pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRlci5jYW5jZWxJdGVtKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwbG9hZGVyLnJlbW92ZUZyb21RdWV1ZSh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJlZm9yZVVwbG9hZCgpOiB2b2lkIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgcHVibGljIG9uQnVpbGRGb3JtKGZvcm06IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHsgZm9ybSB9O1xuICB9XG5cbiAgcHVibGljIG9uUHJvZ3Jlc3MocHJvZ3Jlc3M6IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuIHsgcHJvZ3Jlc3MgfTtcbiAgfVxuXG4gIHB1YmxpYyBvblN1Y2Nlc3MocmVzcG9uc2U6IHN0cmluZywgc3RhdHVzOiBudW1iZXIsIGhlYWRlcnM6IFBhcnNlZFJlc3BvbnNlSGVhZGVycyk6IGFueSB7XG4gICAgcmV0dXJuIHsgcmVzcG9uc2UsIHN0YXR1cywgaGVhZGVycyB9O1xuICB9XG5cbiAgcHVibGljIG9uRXJyb3IocmVzcG9uc2U6IHN0cmluZywgc3RhdHVzOiBudW1iZXIsIGhlYWRlcnM6IFBhcnNlZFJlc3BvbnNlSGVhZGVycyk6IGFueSB7XG4gICAgcmV0dXJuIHsgcmVzcG9uc2UsIHN0YXR1cywgaGVhZGVycyB9O1xuICB9XG5cbiAgcHVibGljIG9uQ2FuY2VsKHJlc3BvbnNlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBoZWFkZXJzOiBQYXJzZWRSZXNwb25zZUhlYWRlcnMpOiBhbnkge1xuICAgIHJldHVybiB7IHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbXBsZXRlKHJlc3BvbnNlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBoZWFkZXJzOiBQYXJzZWRSZXNwb25zZUhlYWRlcnMpOiBhbnkge1xuICAgIHJldHVybiB7IHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMgfTtcbiAgfVxuXG4gIHB1YmxpYyBfb25CZWZvcmVVcGxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcbiAgICB0aGlzLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzU3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMuaXNDYW5jZWwgPSBmYWxzZTtcbiAgICB0aGlzLmlzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgICB0aGlzLm9uQmVmb3JlVXBsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgX29uQnVpbGRGb3JtKGZvcm06IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25CdWlsZEZvcm0oZm9ybSk7XG4gIH1cblxuICBwdWJsaWMgX29uUHJvZ3Jlc3MocHJvZ3Jlc3M6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucHJvZ3Jlc3MgPSBwcm9ncmVzcztcbiAgICB0aGlzLm9uUHJvZ3Jlc3MocHJvZ3Jlc3MpO1xuICB9XG5cbiAgcHVibGljIF9vblN1Y2Nlc3MocmVzcG9uc2U6IHN0cmluZywgc3RhdHVzOiBudW1iZXIsIGhlYWRlcnM6IFBhcnNlZFJlc3BvbnNlSGVhZGVycyk6IHZvaWQge1xuICAgIHRoaXMuaXNSZWFkeSA9IGZhbHNlO1xuICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSB0cnVlO1xuICAgIHRoaXMuaXNTdWNjZXNzID0gdHJ1ZTtcbiAgICB0aGlzLmlzQ2FuY2VsID0gZmFsc2U7XG4gICAgdGhpcy5pc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5wcm9ncmVzcyA9IDEwMDtcbiAgICB0aGlzLmluZGV4ID0gdm9pZCAwO1xuICAgIHRoaXMub25TdWNjZXNzKHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMpO1xuICB9XG5cbiAgcHVibGljIF9vbkVycm9yKHJlc3BvbnNlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBoZWFkZXJzOiBQYXJzZWRSZXNwb25zZUhlYWRlcnMpOiB2b2lkIHtcbiAgICB0aGlzLmlzUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc1VwbG9hZGVkID0gdHJ1ZTtcbiAgICB0aGlzLmlzU3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMuaXNDYW5jZWwgPSBmYWxzZTtcbiAgICB0aGlzLmlzRXJyb3IgPSB0cnVlO1xuICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xuICAgIHRoaXMuaW5kZXggPSB2b2lkIDA7XG4gICAgdGhpcy5vbkVycm9yKHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMpO1xuICB9XG5cbiAgcHVibGljIF9vbkNhbmNlbChyZXNwb25zZTogc3RyaW5nLCBzdGF0dXM6IG51bWJlciwgaGVhZGVyczogUGFyc2VkUmVzcG9uc2VIZWFkZXJzKTogdm9pZCB7XG4gICAgdGhpcy5pc1JlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNTdWNjZXNzID0gZmFsc2U7XG4gICAgdGhpcy5pc0NhbmNlbCA9IHRydWU7XG4gICAgdGhpcy5pc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5wcm9ncmVzcyA9IDA7XG4gICAgdGhpcy5pbmRleCA9IHZvaWQgMDtcbiAgICB0aGlzLm9uQ2FuY2VsKHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMpO1xuICB9XG5cbiAgcHVibGljIF9vbkNvbXBsZXRlKHJlc3BvbnNlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBoZWFkZXJzOiBQYXJzZWRSZXNwb25zZUhlYWRlcnMpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ29tcGxldGUocmVzcG9uc2UsIHN0YXR1cywgaGVhZGVycyk7XG5cbiAgICBpZiAodGhpcy51cGxvYWRlci5vcHRpb25zLnJlbW92ZUFmdGVyVXBsb2FkKSB7XG4gICAgICB0aGlzLnJlbW92ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBfcHJlcGFyZVRvVXBsb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuaW5kZXggPSB0aGlzLmluZGV4IHx8ICsrdGhpcy51cGxvYWRlci5fbmV4dEluZGV4O1xuICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @param {?} node
7
+ * @return {?}
8
+ */
9
+ function isElement(node) {
10
+ return !!(node && (node.nodeName || node.prop && node.attr && node.find));
11
+ }
12
+ export class FileLikeObject {
13
+ /**
14
+ * @param {?} fileOrInput
15
+ */
16
+ constructor(fileOrInput) {
17
+ this.rawFile = fileOrInput;
18
+ /** @type {?} */
19
+ let isInput = isElement(fileOrInput);
20
+ /** @type {?} */
21
+ let fakePathOrObject = isInput ? fileOrInput.value : fileOrInput;
22
+ /** @type {?} */
23
+ let postfix = typeof fakePathOrObject === 'string' ? 'FakePath' : 'Object';
24
+ /** @type {?} */
25
+ let method = '_createFrom' + postfix;
26
+ ((/** @type {?} */ (this)))[method](fakePathOrObject);
27
+ }
28
+ /**
29
+ * @param {?} path
30
+ * @return {?}
31
+ */
32
+ _createFromFakePath(path) {
33
+ this.lastModifiedDate = void 0;
34
+ this.size = void 0;
35
+ this.type = 'like/' + path.slice(path.lastIndexOf('.') + 1).toLowerCase();
36
+ this.name = path.slice(path.lastIndexOf('/') + path.lastIndexOf('\\') + 2);
37
+ }
38
+ /**
39
+ * @param {?} object
40
+ * @return {?}
41
+ */
42
+ _createFromObject(object) {
43
+ this.size = object.size;
44
+ this.type = object.type;
45
+ this.name = object.name;
46
+ }
47
+ }
48
+ if (false) {
49
+ /** @type {?} */
50
+ FileLikeObject.prototype.lastModifiedDate;
51
+ /** @type {?} */
52
+ FileLikeObject.prototype.size;
53
+ /** @type {?} */
54
+ FileLikeObject.prototype.type;
55
+ /** @type {?} */
56
+ FileLikeObject.prototype.name;
57
+ /** @type {?} */
58
+ FileLikeObject.prototype.rawFile;
59
+ }
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1saWtlLW9iamVjdC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nMi1maWxlLXVwbG9hZC8iLCJzb3VyY2VzIjpbImZpbGUtdXBsb2FkL2ZpbGUtbGlrZS1vYmplY3QuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxTQUFTLFNBQVMsQ0FBQyxJQUFTO0lBQzFCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sT0FBTyxjQUFjOzs7O0lBT3pCLFlBQW1CLFdBQWdCO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDOztZQUN2QixPQUFPLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQzs7WUFDaEMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXOztZQUM1RCxPQUFPLEdBQUcsT0FBTyxnQkFBZ0IsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUTs7WUFDdEUsTUFBTSxHQUFHLGFBQWEsR0FBRyxPQUFPO1FBQ3BDLENBQUMsbUJBQUEsSUFBSSxFQUFPLENBQUMsQ0FBRSxNQUFNLENBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Ozs7O0lBRU0sbUJBQW1CLENBQUMsSUFBWTtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDOzs7OztJQUVNLGlCQUFpQixDQUFDLE1BQW9EO1FBQzNFLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQzFCLENBQUM7Q0FDRjs7O0lBM0JDLDBDQUE2Qjs7SUFDN0IsOEJBQWlCOztJQUNqQiw4QkFBb0I7O0lBQ3BCLDhCQUFvQjs7SUFDcEIsaUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNFbGVtZW50KG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEobm9kZSAmJiAobm9kZS5ub2RlTmFtZSB8fCBub2RlLnByb3AgJiYgbm9kZS5hdHRyICYmIG5vZGUuZmluZCkpO1xufVxuXG5leHBvcnQgY2xhc3MgRmlsZUxpa2VPYmplY3Qge1xuICBwdWJsaWMgbGFzdE1vZGlmaWVkRGF0ZTogYW55O1xuICBwdWJsaWMgc2l6ZTogYW55O1xuICBwdWJsaWMgdHlwZTogc3RyaW5nO1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmF3RmlsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihmaWxlT3JJbnB1dDogYW55KSB7XG4gICAgdGhpcy5yYXdGaWxlID0gZmlsZU9ySW5wdXQ7XG4gICAgbGV0IGlzSW5wdXQgPSBpc0VsZW1lbnQoZmlsZU9ySW5wdXQpO1xuICAgIGxldCBmYWtlUGF0aE9yT2JqZWN0ID0gaXNJbnB1dCA/IGZpbGVPcklucHV0LnZhbHVlIDogZmlsZU9ySW5wdXQ7XG4gICAgbGV0IHBvc3RmaXggPSB0eXBlb2YgZmFrZVBhdGhPck9iamVjdCA9PT0gJ3N0cmluZycgPyAnRmFrZVBhdGgnIDogJ09iamVjdCc7XG4gICAgbGV0IG1ldGhvZCA9ICdfY3JlYXRlRnJvbScgKyBwb3N0Zml4O1xuICAgICh0aGlzIGFzIGFueSlbIG1ldGhvZCBdKGZha2VQYXRoT3JPYmplY3QpO1xuICB9XG5cbiAgcHVibGljIF9jcmVhdGVGcm9tRmFrZVBhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sYXN0TW9kaWZpZWREYXRlID0gdm9pZCAwO1xuICAgIHRoaXMuc2l6ZSA9IHZvaWQgMDtcbiAgICB0aGlzLnR5cGUgPSAnbGlrZS8nICsgcGF0aC5zbGljZShwYXRoLmxhc3RJbmRleE9mKCcuJykgKyAxKS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMubmFtZSA9IHBhdGguc2xpY2UocGF0aC5sYXN0SW5kZXhPZignLycpICsgcGF0aC5sYXN0SW5kZXhPZignXFxcXCcpICsgMik7XG4gIH1cblxuICBwdWJsaWMgX2NyZWF0ZUZyb21PYmplY3Qob2JqZWN0OiB7IHNpemU6IG51bWJlciwgdHlwZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IG9iamVjdC5zaXplO1xuICAgIHRoaXMudHlwZSA9IG9iamVjdC50eXBlO1xuICAgIHRoaXMubmFtZSA9IG9iamVjdC5uYW1lO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Directive, EventEmitter, ElementRef, Input, HostListener, Output } from '@angular/core';
6
+ import { FileUploader } from './file-uploader.class';
7
+ export class FileSelectDirective {
8
+ /**
9
+ * @param {?} element
10
+ */
11
+ constructor(element) {
12
+ this.onFileSelected = new EventEmitter();
13
+ this.element = element;
14
+ }
15
+ /**
16
+ * @return {?}
17
+ */
18
+ getOptions() {
19
+ return this.uploader.options;
20
+ }
21
+ /**
22
+ * @return {?}
23
+ */
24
+ getFilters() {
25
+ return {};
26
+ }
27
+ /**
28
+ * @return {?}
29
+ */
30
+ isEmptyAfterSelection() {
31
+ return !!this.element.nativeElement.attributes.multiple;
32
+ }
33
+ /**
34
+ * @return {?}
35
+ */
36
+ onChange() {
37
+ /** @type {?} */
38
+ let files = this.element.nativeElement.files;
39
+ /** @type {?} */
40
+ let options = this.getOptions();
41
+ /** @type {?} */
42
+ let filters = this.getFilters();
43
+ this.uploader.addToQueue(files, options, filters);
44
+ this.onFileSelected.emit(files);
45
+ if (this.isEmptyAfterSelection()) {
46
+ this.element.nativeElement.value = '';
47
+ }
48
+ }
49
+ }
50
+ FileSelectDirective.decorators = [
51
+ { type: Directive, args: [{ selector: '[ng2FileSelect]' },] }
52
+ ];
53
+ /** @nocollapse */
54
+ FileSelectDirective.ctorParameters = () => [
55
+ { type: ElementRef }
56
+ ];
57
+ FileSelectDirective.propDecorators = {
58
+ uploader: [{ type: Input }],
59
+ onFileSelected: [{ type: Output }],
60
+ onChange: [{ type: HostListener, args: ['change',] }]
61
+ };
62
+ if (false) {
63
+ /** @type {?} */
64
+ FileSelectDirective.prototype.uploader;
65
+ /** @type {?} */
66
+ FileSelectDirective.prototype.onFileSelected;
67
+ /**
68
+ * @type {?}
69
+ * @protected
70
+ */
71
+ FileSelectDirective.prototype.element;
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcyLWZpbGUtdXBsb2FkLyIsInNvdXJjZXMiOlsiZmlsZS11cGxvYWQvZmlsZS1zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JELE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFNOUIsWUFBbUIsT0FBbUI7UUFKckIsbUJBQWMsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUtqRixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDOzs7O0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQzs7OztJQUVNLFVBQVU7UUFDZixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Ozs7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUMxRCxDQUFDOzs7O0lBR00sUUFBUTs7WUFDVCxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSzs7WUFDeEMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7O1lBQzNCLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO1FBRS9CLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQzs7O1lBbkNGLFNBQVMsU0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTs7OztZQUpSLFVBQVU7Ozt1QkFNekMsS0FBSzs2QkFDTCxNQUFNO3VCQW9CTixZQUFZLFNBQUMsUUFBUTs7OztJQXJCdEIsdUNBQXVDOztJQUN2Qyw2Q0FBbUY7Ozs7O0lBRW5GLHNDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmlsZVVwbG9hZGVyIH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW25nMkZpbGVTZWxlY3RdJyB9KVxuZXhwb3J0IGNsYXNzIEZpbGVTZWxlY3REaXJlY3RpdmUge1xuICBASW5wdXQoKSBwdWJsaWMgdXBsb2FkZXI6IEZpbGVVcGxvYWRlcjtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkZpbGVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcblxuICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZGVyLm9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmlsdGVycygpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyBpc0VtcHR5QWZ0ZXJTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy5tdWx0aXBsZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gIHB1YmxpYyBvbkNoYW5nZSgpOiBhbnkge1xuICAgIGxldCBmaWxlcyA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZpbGVzO1xuICAgIGxldCBvcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKCk7XG4gICAgbGV0IGZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcblxuICAgIHRoaXMudXBsb2FkZXIuYWRkVG9RdWV1ZShmaWxlcywgb3B0aW9ucywgZmlsdGVycyk7XG4gICAgdGhpcy5vbkZpbGVTZWxlY3RlZC5lbWl0KGZpbGVzKTtcblxuICAgIGlmICh0aGlzLmlzRW1wdHlBZnRlclNlbGVjdGlvbigpKSB7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxufVxuIl19