ng2-file-upload 7.0.1 → 9.0.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.
package/index.d.ts CHANGED
@@ -1,7 +1,195 @@
1
- export * from './file-upload/file-drop.directive';
2
- export * from './file-upload/file-uploader.class';
3
- export * from './file-upload/file-item.class';
4
- export * from './file-upload/file-like-object.class';
5
- export * from './file-upload/file-like-object.class';
6
- export { FileUploadModule } from './file-upload/file-upload.module';
7
- export { FileSelectDirective } from './file-upload/file-select.directive';
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, ElementRef } from '@angular/core';
3
+ import * as i3 from '@angular/common';
4
+
5
+ declare class FileLikeObject {
6
+ lastModifiedDate: any;
7
+ size: any;
8
+ type?: string;
9
+ name?: string;
10
+ rawFile: HTMLInputElement | File;
11
+ constructor(fileOrInput: HTMLInputElement | File);
12
+ _createFromFakePath(path: string): void;
13
+ _createFromObject(object: {
14
+ size: number;
15
+ type: string;
16
+ name: string;
17
+ }): void;
18
+ }
19
+
20
+ declare class FileItem {
21
+ file: FileLikeObject;
22
+ _file: File;
23
+ alias?: string;
24
+ url: string;
25
+ method?: string;
26
+ headers: any;
27
+ withCredentials: boolean;
28
+ formData: any;
29
+ isReady: boolean;
30
+ isUploading: boolean;
31
+ isUploaded: boolean;
32
+ isSuccess: boolean;
33
+ isCancel: boolean;
34
+ isError: boolean;
35
+ progress: number;
36
+ index?: number;
37
+ _xhr?: XMLHttpRequest;
38
+ _form: any;
39
+ protected uploader: FileUploader;
40
+ protected some: File;
41
+ protected options: FileUploaderOptions;
42
+ constructor(uploader: FileUploader, some: File, options: FileUploaderOptions);
43
+ upload(): void;
44
+ cancel(): void;
45
+ remove(): void;
46
+ onBeforeUpload(): void;
47
+ onBuildForm(form: any): any;
48
+ onProgress(progress: number): any;
49
+ onSuccess(response: string, status: number, headers: ParsedResponseHeaders): any;
50
+ onError(response: string, status: number, headers: ParsedResponseHeaders): any;
51
+ onCancel(response: string, status: number, headers: ParsedResponseHeaders): any;
52
+ onComplete(response: string, status: number, headers: ParsedResponseHeaders): any;
53
+ _onBeforeUpload(): void;
54
+ _onBuildForm(form: any): void;
55
+ _onProgress(progress: number): void;
56
+ _onSuccess(response: string, status: number, headers: ParsedResponseHeaders): void;
57
+ _onError(response: string, status: number, headers: ParsedResponseHeaders): void;
58
+ _onCancel(response: string, status: number, headers: ParsedResponseHeaders): void;
59
+ _onComplete(response: string, status: number, headers: ParsedResponseHeaders): void;
60
+ _prepareToUploading(): void;
61
+ }
62
+
63
+ interface Headers {
64
+ name: string;
65
+ value: string;
66
+ }
67
+ interface ParsedResponseHeaders {
68
+ [headerFieldName: string]: string;
69
+ }
70
+ interface FilterFunction {
71
+ name: string;
72
+ fn(item: FileLikeObject, options?: FileUploaderOptions): boolean;
73
+ }
74
+ interface FileUploaderOptions {
75
+ allowedMimeType?: string[];
76
+ allowedFileType?: string[];
77
+ autoUpload?: boolean;
78
+ isHTML5?: boolean;
79
+ filters?: FilterFunction[];
80
+ headers?: Headers[];
81
+ method?: string;
82
+ authToken?: string;
83
+ maxFileSize?: number;
84
+ queueLimit?: number;
85
+ removeAfterUpload?: boolean;
86
+ url: string;
87
+ disableMultipart?: boolean;
88
+ itemAlias?: string;
89
+ authTokenHeader?: string;
90
+ additionalParameter?: {
91
+ [key: string]: any;
92
+ };
93
+ parametersBeforeFiles?: boolean;
94
+ formatDataFunction?: Function;
95
+ formatDataFunctionIsAsync?: boolean;
96
+ }
97
+ declare class FileUploader {
98
+ authToken?: string;
99
+ isUploading: boolean;
100
+ queue: FileItem[];
101
+ progress: number;
102
+ _nextIndex: number;
103
+ autoUpload: any;
104
+ authTokenHeader?: string;
105
+ response: EventEmitter<any>;
106
+ options: FileUploaderOptions;
107
+ protected _failFilterIndex?: number;
108
+ constructor(options: FileUploaderOptions);
109
+ setOptions(options: FileUploaderOptions): void;
110
+ addToQueue(files: File[], _options?: FileUploaderOptions, filters?: [] | string): void;
111
+ removeFromQueue(value: FileItem): void;
112
+ clearQueue(): void;
113
+ uploadItem(value: FileItem): void;
114
+ cancelItem(value: FileItem): void;
115
+ uploadAll(): void;
116
+ cancelAll(): void;
117
+ isFile(value: any): boolean;
118
+ isFileLikeObject(value: any): boolean;
119
+ getIndexOfItem(value: any): number;
120
+ getNotUploadedItems(): any[];
121
+ getReadyItems(): any[];
122
+ onAfterAddingAll(fileItems: any): any;
123
+ onBuildItemForm(fileItem: FileItem, form: any): any;
124
+ onAfterAddingFile(fileItem: FileItem): any;
125
+ onWhenAddingFileFailed(item: FileLikeObject, filter: any, options: any): any;
126
+ onBeforeUploadItem(fileItem: FileItem): any;
127
+ onProgressItem(fileItem: FileItem, progress: any): any;
128
+ onProgressAll(progress: any): any;
129
+ onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
130
+ onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
131
+ onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
132
+ onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
133
+ onCompleteAll(): any;
134
+ _mimeTypeFilter(item: FileLikeObject): boolean;
135
+ _fileSizeFilter(item: FileLikeObject): boolean;
136
+ _fileTypeFilter(item: FileLikeObject): boolean;
137
+ _onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
138
+ _onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
139
+ protected _headersGetter(parsedHeaders: ParsedResponseHeaders): any;
140
+ protected _xhrTransport(item: FileItem): any;
141
+ protected _getTotalProgress(value?: number): number;
142
+ protected _getFilters(filters?: FilterFunction[] | string): FilterFunction[] | [];
143
+ protected _render(): any;
144
+ protected _queueLimitFilter(): boolean;
145
+ protected _isValidFile(file: FileLikeObject, filters: FilterFunction[], options: FileUploaderOptions): boolean;
146
+ protected _isSuccessCode(status: number): boolean;
147
+ protected _transformResponse(response: string): string;
148
+ protected _parseHeaders(headers: string): ParsedResponseHeaders;
149
+ protected _onWhenAddingFileFailed(item: FileLikeObject, filter: any, options: any): void;
150
+ protected _onAfterAddingFile(item: FileItem): void;
151
+ protected _onAfterAddingAll(items: any): void;
152
+ protected _onBeforeUploadItem(item: FileItem): void;
153
+ protected _onBuildItemForm(item: FileItem, form: any): void;
154
+ protected _onProgressItem(item: FileItem, progress: any): void;
155
+ protected _onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
156
+ protected _onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
157
+ }
158
+
159
+ declare class FileDropDirective {
160
+ uploader?: FileUploader;
161
+ fileOver: EventEmitter<any>;
162
+ onFileDrop: EventEmitter<File[]>;
163
+ protected element: ElementRef;
164
+ getOptions(): FileUploaderOptions | void;
165
+ getFilters(): string;
166
+ onDrop(event: MouseEvent): void;
167
+ onDragOver(event: MouseEvent): void;
168
+ onDragLeave(event: MouseEvent): void;
169
+ protected _getTransfer(event: any): any;
170
+ protected _preventAndStop(event: MouseEvent): void;
171
+ protected _haveFiles(types: any): boolean;
172
+ static ɵfac: i0.ɵɵFactoryDeclaration<FileDropDirective, never>;
173
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FileDropDirective, "[ng2FileDrop]", never, { "uploader": { "alias": "uploader"; "required": false; }; }, { "fileOver": "fileOver"; "onFileDrop": "onFileDrop"; }, never, never, false, never>;
174
+ }
175
+
176
+ declare class FileSelectDirective {
177
+ uploader?: FileUploader;
178
+ onFileSelected: EventEmitter<File[]>;
179
+ protected element: ElementRef;
180
+ getOptions(): FileUploaderOptions | undefined;
181
+ getFilters(): string;
182
+ isEmptyAfterSelection(): boolean;
183
+ onChange(): void;
184
+ static ɵfac: i0.ɵɵFactoryDeclaration<FileSelectDirective, never>;
185
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FileSelectDirective, "[ng2FileSelect]", never, { "uploader": { "alias": "uploader"; "required": false; }; }, { "onFileSelected": "onFileSelected"; }, never, never, false, never>;
186
+ }
187
+
188
+ declare class FileUploadModule {
189
+ static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadModule, never>;
190
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FileUploadModule, [typeof FileDropDirective, typeof FileSelectDirective], [typeof i3.CommonModule], [typeof FileDropDirective, typeof FileSelectDirective]>;
191
+ static ɵinj: i0.ɵɵInjectorDeclaration<FileUploadModule>;
192
+ }
193
+
194
+ export { FileDropDirective, FileItem, FileLikeObject, FileSelectDirective, FileUploadModule, FileUploader };
195
+ export type { FileUploaderOptions, FilterFunction, Headers, ParsedResponseHeaders };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "ng2-file-upload",
3
- "version": "7.0.1",
3
+ "version": "9.0.0",
4
4
  "description": "Angular file uploader",
5
5
  "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
6
6
  "license": "MIT",
7
7
  "peerDependencies": {
8
- "@angular/core": "^18.0.0",
9
- "@angular/common": "^18.0.0"
8
+ "@angular/core": "^20.0.0",
9
+ "@angular/common": "^20.0.0"
10
10
  },
11
11
  "sideEffects": false,
12
12
  "publishConfig": {
@@ -36,8 +36,6 @@
36
36
  },
37
37
  ".": {
38
38
  "types": "./index.d.ts",
39
- "esm2022": "./esm2022/ng2-file-upload.mjs",
40
- "esm": "./esm2022/ng2-file-upload.mjs",
41
39
  "default": "./fesm2022/ng2-file-upload.mjs"
42
40
  }
43
41
  },
@@ -1,92 +0,0 @@
1
- import { Directive, EventEmitter, ElementRef, HostListener, Input, Output } from '@angular/core';
2
- import { FileUploader } from './file-uploader.class';
3
- import * as i0 from "@angular/core";
4
- export class FileDropDirective {
5
- constructor(element) {
6
- this.fileOver = new EventEmitter();
7
- // eslint-disable-next-line @angular-eslint/no-output-on-prefix
8
- this.onFileDrop = new EventEmitter();
9
- this.element = element;
10
- }
11
- getOptions() {
12
- return this.uploader?.options;
13
- }
14
- getFilters() {
15
- return '';
16
- }
17
- onDrop(event) {
18
- const transfer = this._getTransfer(event);
19
- if (!transfer) {
20
- return;
21
- }
22
- const options = this.getOptions();
23
- const filters = this.getFilters();
24
- this._preventAndStop(event);
25
- if (options) {
26
- this.uploader?.addToQueue(transfer.files, options, filters);
27
- }
28
- this.fileOver.emit(false);
29
- this.onFileDrop.emit(transfer.files);
30
- }
31
- onDragOver(event) {
32
- const transfer = this._getTransfer(event);
33
- if (!this._haveFiles(transfer.types)) {
34
- return;
35
- }
36
- transfer.dropEffect = 'copy';
37
- this._preventAndStop(event);
38
- this.fileOver.emit(true);
39
- }
40
- onDragLeave(event) {
41
- if (this.element) {
42
- if (event.currentTarget === this.element[0]) {
43
- return;
44
- }
45
- }
46
- this._preventAndStop(event);
47
- this.fileOver.emit(false);
48
- }
49
- _getTransfer(event) {
50
- return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;
51
- }
52
- _preventAndStop(event) {
53
- event.preventDefault();
54
- event.stopPropagation();
55
- }
56
- _haveFiles(types) {
57
- if (!types) {
58
- return false;
59
- }
60
- if (types.indexOf) {
61
- return types.indexOf('Files') !== -1;
62
- }
63
- else if (types.contains) {
64
- return types.contains('Files');
65
- }
66
- else {
67
- return false;
68
- }
69
- }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FileDropDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
71
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: FileDropDirective, selector: "[ng2FileDrop]", inputs: { uploader: "uploader" }, outputs: { fileOver: "fileOver", onFileDrop: "onFileDrop" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" } }, ngImport: i0 }); }
72
- }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FileDropDirective, decorators: [{
74
- type: Directive,
75
- args: [{ selector: '[ng2FileDrop]' }]
76
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { uploader: [{
77
- type: Input
78
- }], fileOver: [{
79
- type: Output
80
- }], onFileDrop: [{
81
- type: Output
82
- }], onDrop: [{
83
- type: HostListener,
84
- args: ['drop', ['$event']]
85
- }], onDragOver: [{
86
- type: HostListener,
87
- args: ['dragover', ['$event']]
88
- }], onDragLeave: [{
89
- type: HostListener,
90
- args: ['dragleave', ['$event']]
91
- }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcyLWZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkL2ZpbGUtZHJvcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7O0FBRzFFLE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFBWSxPQUFtQjtRQU5wQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUQsK0RBQStEO1FBQ3BELGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUt2RSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFHRCxNQUFNLENBQUMsS0FBaUI7UUFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBR0QsVUFBVSxDQUFDLEtBQWlCO1FBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTztRQUNULENBQUM7UUFFRCxRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFHRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSyxJQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFNLElBQVksQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFFLEVBQUUsQ0FBQztnQkFDdkQsT0FBTztZQUNULENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVMsWUFBWSxDQUFDLEtBQVU7UUFDL0IsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLGNBQWM7SUFDbkcsQ0FBQztJQUVTLGVBQWUsQ0FBQyxLQUFpQjtRQUN6QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxVQUFVLENBQUMsS0FBVTtRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7OEdBbEZVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRTsrRUFFNUIsUUFBUTtzQkFBakIsS0FBSztnQkFDSyxRQUFRO3NCQUFsQixNQUFNO2dCQUVJLFVBQVU7c0JBQXBCLE1BQU07Z0JBaUJQLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBRSxRQUFRLENBQUU7Z0JBa0JsQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUUsUUFBUSxDQUFFO2dCQWF0QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkZXIsIEZpbGVVcGxvYWRlck9wdGlvbnMgfSBmcm9tICcuL2ZpbGUtdXBsb2FkZXIuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbbmcyRmlsZURyb3BdJyB9KVxuZXhwb3J0IGNsYXNzIEZpbGVEcm9wRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgIHVwbG9hZGVyPzogRmlsZVVwbG9hZGVyO1xuICBAT3V0cHV0KCkgIGZpbGVPdmVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gIEBPdXRwdXQoKSAgb25GaWxlRHJvcDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcblxuICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgfVxuXG4gIGdldE9wdGlvbnMoKTogRmlsZVVwbG9hZGVyT3B0aW9ucyB8IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZGVyPy5vcHRpb25zO1xuICB9XG5cbiAgZ2V0RmlsdGVycygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbICckZXZlbnQnIF0pXG4gIG9uRHJvcChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zZmVyID0gdGhpcy5fZ2V0VHJhbnNmZXIoZXZlbnQpO1xuICAgIGlmICghdHJhbnNmZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKCk7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2ZW50KTtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgdGhpcy51cGxvYWRlcj8uYWRkVG9RdWV1ZSh0cmFuc2Zlci5maWxlcywgb3B0aW9ucywgZmlsdGVycyk7XG4gICAgfVxuICAgIHRoaXMuZmlsZU92ZXIuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5vbkZpbGVEcm9wLmVtaXQodHJhbnNmZXIuZmlsZXMpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbICckZXZlbnQnIF0pXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2ZW50KTtcbiAgICBpZiAoIXRoaXMuX2hhdmVGaWxlcyh0cmFuc2Zlci50eXBlcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknO1xuICAgIHRoaXMuX3ByZXZlbnRBbmRTdG9wKGV2ZW50KTtcbiAgICB0aGlzLmZpbGVPdmVyLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbICckZXZlbnQnIF0pXG4gIG9uRHJhZ0xlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCh0aGlzIGFzIGFueSkuZWxlbWVudCkge1xuICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQgPT09ICh0aGlzIGFzIGFueSkuZWxlbWVudFsgMCBdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9wcmV2ZW50QW5kU3RvcChldmVudCk7XG4gICAgdGhpcy5maWxlT3Zlci5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfZ2V0VHJhbnNmZXIoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2ZlciA6IGV2ZW50Lm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyOyAvLyBqUXVlcnkgZml4O1xuICB9XG5cbiAgcHJvdGVjdGVkIF9wcmV2ZW50QW5kU3RvcChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhdmVGaWxlcyh0eXBlczogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0eXBlcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0eXBlcy5pbmRleE9mKSB7XG4gICAgICByZXR1cm4gdHlwZXMuaW5kZXhPZignRmlsZXMnKSAhPT0gLTE7XG4gICAgfSBlbHNlIGlmICh0eXBlcy5jb250YWlucykge1xuICAgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKCdGaWxlcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,123 +0,0 @@
1
- import { FileLikeObject } from './file-like-object.class';
2
- export class FileItem {
3
- constructor(uploader, some, options) {
4
- this.url = '/';
5
- this.headers = [];
6
- this.withCredentials = true;
7
- this.formData = [];
8
- this.isReady = false;
9
- this.isUploading = false;
10
- this.isUploaded = false;
11
- this.isSuccess = false;
12
- this.isCancel = false;
13
- this.isError = false;
14
- this.progress = 0;
15
- this.uploader = uploader;
16
- this.some = some;
17
- this.options = options;
18
- this.file = new FileLikeObject(some);
19
- this._file = some;
20
- if (uploader.options) {
21
- this.method = uploader.options.method || 'POST';
22
- this.alias = uploader.options.itemAlias || 'file';
23
- }
24
- this.url = uploader.options.url;
25
- }
26
- upload() {
27
- try {
28
- this.uploader.uploadItem(this);
29
- }
30
- catch (e) {
31
- this.uploader._onCompleteItem(this, '', 0, {});
32
- this.uploader._onErrorItem(this, '', 0, {});
33
- }
34
- }
35
- cancel() {
36
- this.uploader.cancelItem(this);
37
- }
38
- remove() {
39
- this.uploader.removeFromQueue(this);
40
- }
41
- onBeforeUpload() {
42
- return void 0;
43
- }
44
- onBuildForm(form) {
45
- return { form };
46
- }
47
- onProgress(progress) {
48
- return { progress };
49
- }
50
- onSuccess(response, status, headers) {
51
- return { response, status, headers };
52
- }
53
- onError(response, status, headers) {
54
- return { response, status, headers };
55
- }
56
- onCancel(response, status, headers) {
57
- return { response, status, headers };
58
- }
59
- onComplete(response, status, headers) {
60
- return { response, status, headers };
61
- }
62
- _onBeforeUpload() {
63
- this.isReady = true;
64
- this.isUploading = true;
65
- this.isUploaded = false;
66
- this.isSuccess = false;
67
- this.isCancel = false;
68
- this.isError = false;
69
- this.progress = 0;
70
- this.onBeforeUpload();
71
- }
72
- _onBuildForm(form) {
73
- this.onBuildForm(form);
74
- }
75
- _onProgress(progress) {
76
- this.progress = progress;
77
- this.onProgress(progress);
78
- }
79
- _onSuccess(response, status, headers) {
80
- this.isReady = false;
81
- this.isUploading = false;
82
- this.isUploaded = true;
83
- this.isSuccess = true;
84
- this.isCancel = false;
85
- this.isError = false;
86
- this.progress = 100;
87
- this.index = undefined;
88
- this.onSuccess(response, status, headers);
89
- }
90
- _onError(response, status, headers) {
91
- this.isReady = false;
92
- this.isUploading = false;
93
- this.isUploaded = true;
94
- this.isSuccess = false;
95
- this.isCancel = false;
96
- this.isError = true;
97
- this.progress = 0;
98
- this.index = undefined;
99
- this.onError(response, status, headers);
100
- }
101
- _onCancel(response, status, headers) {
102
- this.isReady = false;
103
- this.isUploading = false;
104
- this.isUploaded = false;
105
- this.isSuccess = false;
106
- this.isCancel = true;
107
- this.isError = false;
108
- this.progress = 0;
109
- this.index = undefined;
110
- this.onCancel(response, status, headers);
111
- }
112
- _onComplete(response, status, headers) {
113
- this.onComplete(response, status, headers);
114
- if (this.uploader.options.removeAfterUpload) {
115
- this.remove();
116
- }
117
- }
118
- _prepareToUploading() {
119
- this.index = this.index || ++this.uploader._nextIndex;
120
- this.isReady = true;
121
- }
122
- }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZzItZmlsZS11cGxvYWQvZmlsZS11cGxvYWQvZmlsZS1pdGVtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRCxNQUFNLE9BQU8sUUFBUTtJQXdCbEIsWUFBWSxRQUFzQixFQUFFLElBQVUsRUFBRSxPQUE0QjtRQXBCNUUsUUFBRyxHQUFHLEdBQUcsQ0FBQztRQUVWLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLENBQUMsQ0FBQztRQVVaLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUM7WUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFNB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QUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVBLFFBQVEsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxPQUE4QjtRQUN4RSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVBLFNBQVMsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxPQUE4QjtRQUN6RSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVBLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxPQUE4QjtRQUMzRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFM0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVBLG1CQUFtQjtRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlTGlrZU9iamVjdCB9IGZyb20gJy4vZmlsZS1saWtlLW9iamVjdC5jbGFzcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkZXIsIFBhcnNlZFJlc3BvbnNlSGVhZGVycywgRmlsZVVwbG9hZGVyT3B0aW9ucyB9IGZyb20gJy4vZmlsZS11cGxvYWRlci5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlSXRlbSB7XG4gICBmaWxlOiBGaWxlTGlrZU9iamVjdDtcbiAgIF9maWxlOiBGaWxlO1xuICAgYWxpYXM/OiBzdHJpbmc7XG4gICB1cmwgPSAnLyc7XG4gICBtZXRob2Q/OiBzdHJpbmc7XG4gICBoZWFkZXJzOiBhbnkgPSBbXTtcbiAgIHdpdGhDcmVkZW50aWFscyA9IHRydWU7XG4gICBmb3JtRGF0YTogYW55ID0gW107XG4gICBpc1JlYWR5ID0gZmFsc2U7XG4gICBpc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgaXNVcGxvYWRlZCA9IGZhbHNlO1xuICAgaXNTdWNjZXNzID0gZmFsc2U7XG4gICBpc0NhbmNlbCA9IGZhbHNlO1xuICAgaXNFcnJvciA9IGZhbHNlO1xuICAgcHJvZ3Jlc3MgPSAwO1xuICAgaW5kZXg/OiBudW1iZXI7XG4gICBfeGhyPzogWE1MSHR0cFJlcXVlc3Q7XG4gICBfZm9ybTogYW55O1xuXG4gIHByb3RlY3RlZCB1cGxvYWRlcjogRmlsZVVwbG9hZGVyO1xuICBwcm90ZWN0ZWQgc29tZTogRmlsZTtcbiAgcHJvdGVjdGVkIG9wdGlvbnM6IEZpbGVVcGxvYWRlck9wdGlvbnM7XG5cbiAgIGNvbnN0cnVjdG9yKHVwbG9hZGVyOiBGaWxlVXBsb2FkZXIsIHNvbWU6IEZpbGUsIG9wdGlvbnM6IEZpbGVVcGxvYWRlck9wdGlvbnMpIHtcbiAgICB0aGlzLnVwbG9hZGVyID0gdXBsb2FkZXI7XG4gICAgdGhpcy5zb21lID0gc29tZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuZmlsZSA9IG5ldyBGaWxlTGlrZU9iamVjdChzb21lKTtcbiAgICB0aGlzLl9maWxlID0gc29tZTtcbiAgICBpZiAodXBsb2FkZXIub3B0aW9ucykge1xuICAgICAgdGhpcy5tZXRob2QgPSB1cGxvYWRlci5vcHRpb25zLm1ldGhvZCB8fCAnUE9TVCc7XG4gICAgICB0aGlzLmFsaWFzID0gdXBsb2FkZXIub3B0aW9ucy5pdGVtQWxpYXMgfHwgJ2ZpbGUnO1xuICAgIH1cbiAgICB0aGlzLnVybCA9IHVwbG9hZGVyLm9wdGlvbnMudXJsO1xuICB9XG5cbiAgIHVwbG9hZCgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy51cGxvYWRlci51cGxvYWRJdGVtKHRoaXMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuX29uQ29tcGxldGVJdGVtKHRoaXMsICcnLCAwLCB7fSk7XG4gICAgICB0aGlzLnVwbG9hZGVyLl9vbkVycm9ySXRlbSh0aGlzLCAnJywgMCwge30pO1xuICAgIH1cbiAgfVxuXG4gICBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRlci5jYW5jZWxJdGVtKHRoaXMpO1xuICB9XG5cbiAgIHJlbW92ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwbG9hZGVyLnJlbW92ZUZyb21RdWV1ZSh0aGlzKTtcbiAgfVxuXG4gICBvbkJlZm9yZVVwbG9hZCgpOiB2b2lkIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgIG9uQnVpbGRGb3JtKGZvcm06IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHsgZm9ybSB9O1xuICB9XG5cbiAgIG9uUHJvZ3Jlc3MocHJvZ3Jlc3M6IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuIHsgcHJvZ3Jlc3MgfTtcbiAgfVxuXG4gICBvblN1Y2Nlc3MocmVzcG9uc2U6IHN0cmluZywgc3RhdHVzOiBudW1iZXIsIGhlYWRlcnM6IFBhcnNlZFJlc3BvbnNlSGVhZGVycyk6IGFueSB7XG4gICAgcmV0dXJuIHsgcmVzcG9uc2UsIHN0YXR1cywgaGVhZGVycyB9O1xuICB9XG5cbiAgIG9uRXJyb3IocmVzcG9uc2U6IHN0cmluZywgc3RhdHVzOiBudW1iZXIsIGhlYWRlcnM6IFBhcnNlZFJlc3BvbnNlSGVhZGVycyk6IGFueSB7XG4gICAgcmV0dXJuIHsgcmVzcG9uc2UsIHN0YXR1cywgaGVhZGVycyB9O1xuICB9XG5cbiAgIG9uQ2FuY2VsKHJlc3BvbnNlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBoZWFkZXJzOiBQYXJzZWRSZXNwb25zZUhlYWRlcnMpOiBhbnkge1xuICAgIHJldHVybiB7IHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMgfTtcbiAgfVxuXG4gICBvbkNvbXBsZXRlKHJlc3BvbnNlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBoZWFkZXJzOiBQYXJzZWRSZXNwb25zZUhlYWRlcnMpOiBhbnkge1xuICAgIHJldHVybiB7IHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMgfTtcbiAgfVxuXG4gICBfb25CZWZvcmVVcGxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcbiAgICB0aGlzLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzU3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMuaXNDYW5jZWwgPSBmYWxzZTtcbiAgICB0aGlzLmlzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgICB0aGlzLm9uQmVmb3JlVXBsb2FkKCk7XG4gIH1cblxuICAgX29uQnVpbGRGb3JtKGZvcm06IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25CdWlsZEZvcm0oZm9ybSk7XG4gIH1cblxuICAgX29uUHJvZ3Jlc3MocHJvZ3Jlc3M6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucHJvZ3Jlc3MgPSBwcm9ncmVzcztcbiAgICB0aGlzLm9uUHJvZ3Jlc3MocHJvZ3Jlc3MpO1xuICB9XG5cbiAgIF9vblN1Y2Nlc3MocmVzcG9uc2U6IHN0cmluZywgc3RhdHVzOiBudW1iZXIsIGhlYWRlcnM6IFBhcnNlZFJlc3BvbnNlSGVhZGVycyk6IHZvaWQge1xuICAgIHRoaXMuaXNSZWFkeSA9IGZhbHNlO1xuICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSB0cnVlO1xuICAgIHRoaXMuaXNTdWNjZXNzID0gdHJ1ZTtcbiAgICB0aGlzLmlzQ2FuY2VsID0gZmFsc2U7XG4gICAgdGhpcy5pc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5wcm9ncmVzcyA9IDEwMDtcbiAgICB0aGlzLmluZGV4ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMub25TdWNjZXNzKHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMpO1xuICB9XG5cbiAgIF9vbkVycm9yKHJlc3BvbnNlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBoZWFkZXJzOiBQYXJzZWRSZXNwb25zZUhlYWRlcnMpOiB2b2lkIHtcbiAgICB0aGlzLmlzUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc1VwbG9hZGVkID0gdHJ1ZTtcbiAgICB0aGlzLmlzU3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMuaXNDYW5jZWwgPSBmYWxzZTtcbiAgICB0aGlzLmlzRXJyb3IgPSB0cnVlO1xuICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xuICAgIHRoaXMuaW5kZXggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5vbkVycm9yKHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMpO1xuICB9XG5cbiAgIF9vbkNhbmNlbChyZXNwb25zZTogc3RyaW5nLCBzdGF0dXM6IG51bWJlciwgaGVhZGVyczogUGFyc2VkUmVzcG9uc2VIZWFkZXJzKTogdm9pZCB7XG4gICAgdGhpcy5pc1JlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNTdWNjZXNzID0gZmFsc2U7XG4gICAgdGhpcy5pc0NhbmNlbCA9IHRydWU7XG4gICAgdGhpcy5pc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5wcm9ncmVzcyA9IDA7XG4gICAgdGhpcy5pbmRleCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm9uQ2FuY2VsKHJlc3BvbnNlLCBzdGF0dXMsIGhlYWRlcnMpO1xuICB9XG5cbiAgIF9vbkNvbXBsZXRlKHJlc3BvbnNlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBoZWFkZXJzOiBQYXJzZWRSZXNwb25zZUhlYWRlcnMpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ29tcGxldGUocmVzcG9uc2UsIHN0YXR1cywgaGVhZGVycyk7XG5cbiAgICBpZiAodGhpcy51cGxvYWRlci5vcHRpb25zLnJlbW92ZUFmdGVyVXBsb2FkKSB7XG4gICAgICB0aGlzLnJlbW92ZSgpO1xuICAgIH1cbiAgfVxuXG4gICBfcHJlcGFyZVRvVXBsb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuaW5kZXggPSB0aGlzLmluZGV4IHx8ICsrdGhpcy51cGxvYWRlci5fbmV4dEluZGV4O1xuICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -1,21 +0,0 @@
1
- export class FileLikeObject {
2
- constructor(fileOrInput) {
3
- this.rawFile = fileOrInput;
4
- const fakePathOrObject = fileOrInput instanceof HTMLInputElement ? fileOrInput.value : fileOrInput;
5
- const postfix = typeof fakePathOrObject === 'string' ? 'FakePath' : 'Object';
6
- const method = `_createFrom${postfix}`;
7
- this[method](fakePathOrObject);
8
- }
9
- _createFromFakePath(path) {
10
- this.lastModifiedDate = void 0;
11
- this.size = void 0;
12
- this.type = `like/${path.slice(path.lastIndexOf('.') + 1).toLowerCase()}`;
13
- this.name = path.slice(path.lastIndexOf('/') + path.lastIndexOf('\\') + 2);
14
- }
15
- _createFromObject(object) {
16
- this.size = object.size;
17
- this.type = object.type;
18
- this.name = object.name;
19
- }
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1saWtlLW9iamVjdC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcyLWZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkL2ZpbGUtbGlrZS1vYmplY3QuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGNBQWM7SUFPekIsWUFBWSxXQUFvQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQztRQUMzQixNQUFNLGdCQUFnQixHQUFJLFdBQVcsWUFBWSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3BHLE1BQU0sT0FBTyxHQUFHLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM3RSxNQUFNLE1BQU0sR0FBRyxjQUFjLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLElBQVksQ0FBRSxNQUFNLENBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFvRDtRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRmlsZUxpa2VPYmplY3Qge1xuICBsYXN0TW9kaWZpZWREYXRlOiBhbnk7XG4gIHNpemU6IGFueTtcbiAgdHlwZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcmF3RmlsZTogSFRNTElucHV0RWxlbWVudCB8IEZpbGU7XG5cbiAgY29uc3RydWN0b3IoZmlsZU9ySW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBGaWxlKSB7XG4gICAgdGhpcy5yYXdGaWxlID0gZmlsZU9ySW5wdXQ7XG4gICAgY29uc3QgZmFrZVBhdGhPck9iamVjdCA9ICBmaWxlT3JJbnB1dCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgPyBmaWxlT3JJbnB1dC52YWx1ZSA6IGZpbGVPcklucHV0O1xuICAgIGNvbnN0IHBvc3RmaXggPSB0eXBlb2YgZmFrZVBhdGhPck9iamVjdCA9PT0gJ3N0cmluZycgPyAnRmFrZVBhdGgnIDogJ09iamVjdCc7XG4gICAgY29uc3QgbWV0aG9kID0gYF9jcmVhdGVGcm9tJHtwb3N0Zml4fWA7XG4gICAgKHRoaXMgYXMgYW55KVsgbWV0aG9kIF0oZmFrZVBhdGhPck9iamVjdCk7XG4gIH1cblxuICBfY3JlYXRlRnJvbUZha2VQYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubGFzdE1vZGlmaWVkRGF0ZSA9IHZvaWQgMDtcbiAgICB0aGlzLnNpemUgPSB2b2lkIDA7XG4gICAgdGhpcy50eXBlID0gYGxpa2UvJHtwYXRoLnNsaWNlKHBhdGgubGFzdEluZGV4T2YoJy4nKSArIDEpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICB0aGlzLm5hbWUgPSBwYXRoLnNsaWNlKHBhdGgubGFzdEluZGV4T2YoJy8nKSArIHBhdGgubGFzdEluZGV4T2YoJ1xcXFwnKSArIDIpO1xuICB9XG5cbiAgX2NyZWF0ZUZyb21PYmplY3Qob2JqZWN0OiB7IHNpemU6IG51bWJlciwgdHlwZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IG9iamVjdC5zaXplO1xuICAgIHRoaXMudHlwZSA9IG9iamVjdC50eXBlO1xuICAgIHRoaXMubmFtZSA9IG9iamVjdC5uYW1lO1xuICB9XG59XG4iXX0=
@@ -1,43 +0,0 @@
1
- import { Directive, EventEmitter, ElementRef, Input, HostListener, Output } from '@angular/core';
2
- import { FileUploader } from './file-uploader.class';
3
- import * as i0 from "@angular/core";
4
- export class FileSelectDirective {
5
- constructor(element) {
6
- // eslint-disable-next-line @angular-eslint/no-output-on-prefix
7
- this.onFileSelected = new EventEmitter();
8
- this.element = element;
9
- }
10
- getOptions() {
11
- return this.uploader?.options;
12
- }
13
- getFilters() {
14
- return '';
15
- }
16
- isEmptyAfterSelection() {
17
- return !!this.element.nativeElement.attributes.multiple;
18
- }
19
- onChange() {
20
- const files = this.element.nativeElement.files;
21
- const options = this.getOptions();
22
- const filters = this.getFilters();
23
- this.uploader?.addToQueue(files, options, filters);
24
- this.onFileSelected.emit(files);
25
- if (this.isEmptyAfterSelection()) {
26
- this.element.nativeElement.value = '';
27
- }
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FileSelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
30
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: FileSelectDirective, selector: "[ng2FileSelect]", inputs: { uploader: "uploader" }, outputs: { onFileSelected: "onFileSelected" }, host: { listeners: { "change": "onChange()" } }, ngImport: i0 }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FileSelectDirective, decorators: [{
33
- type: Directive,
34
- args: [{ selector: '[ng2FileSelect]' }]
35
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { uploader: [{
36
- type: Input
37
- }], onFileSelected: [{
38
- type: Output
39
- }], onChange: [{
40
- type: HostListener,
41
- args: ['change']
42
- }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZzItZmlsZS11cGxvYWQvZmlsZS11cGxvYWQvZmlsZS1zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLHVCQUF1QixDQUFDOztBQUcxRSxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQVksT0FBbUI7UUFML0IsK0RBQStEO1FBQ3JELG1CQUFjLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFLMUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDMUQsQ0FBQztJQUdELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDOzhHQWxDVSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTsrRUFFL0IsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQXFCUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmlsZVVwbG9hZGVyLCBGaWxlVXBsb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW25nMkZpbGVTZWxlY3RdJyB9KVxuZXhwb3J0IGNsYXNzIEZpbGVTZWxlY3REaXJlY3RpdmUge1xuICBASW5wdXQoKSB1cGxvYWRlcj86IEZpbGVVcGxvYWRlcjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gIEBPdXRwdXQoKSBvbkZpbGVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcblxuICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgfVxuXG4gIGdldE9wdGlvbnMoKTogRmlsZVVwbG9hZGVyT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudXBsb2FkZXI/Lm9wdGlvbnM7XG4gIH1cblxuICBnZXRGaWx0ZXJzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaXNFbXB0eUFmdGVyU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmF0dHJpYnV0ZXMubXVsdGlwbGU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnKVxuICBvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlcyA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZpbGVzO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKTtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgdGhpcy51cGxvYWRlcj8uYWRkVG9RdWV1ZShmaWxlcywgb3B0aW9ucywgZmlsdGVycyk7XG5cbiAgICB0aGlzLm9uRmlsZVNlbGVjdGVkLmVtaXQoZmlsZXMpO1xuICAgIGlmICh0aGlzLmlzRW1wdHlBZnRlclNlbGVjdGlvbigpKSB7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxufVxuIl19