ng2-file-upload
Version:
Angular file uploader
239 lines (230 loc) • 10.4 kB
TypeScript
import * as i0 from '@angular/core';
import { EventEmitter, ElementRef } from '@angular/core';
declare class FileLikeObject {
lastModifiedDate: any;
size: any;
type?: string;
name?: string;
rawFile: HTMLInputElement | File;
constructor(fileOrInput: HTMLInputElement | File);
_createFromFakePath(path: string): void;
_createFromObject(object: {
size: number;
type: string;
name: string;
}): void;
}
declare class FileItem {
file: FileLikeObject;
_file: File;
alias?: string;
url: string;
method?: string;
headers: any;
withCredentials: boolean;
formData: any;
isReady: boolean;
isUploading: boolean;
isUploaded: boolean;
isSuccess: boolean;
isCancel: boolean;
isError: boolean;
progress: number;
index?: number;
_xhr?: XMLHttpRequest;
_form: any;
protected uploader: FileUploader;
protected some: File;
protected options: FileUploaderOptions;
constructor(uploader: FileUploader, some: File, options: FileUploaderOptions);
upload(): void;
cancel(): void;
remove(): void;
onBeforeUpload(): void;
onBuildForm(form: any): any;
onProgress(progress: number): any;
onSuccess(response: string, status: number, headers: ParsedResponseHeaders): any;
onError(response: string, status: number, headers: ParsedResponseHeaders): any;
onCancel(response: string, status: number, headers: ParsedResponseHeaders): any;
onComplete(response: string, status: number, headers: ParsedResponseHeaders): any;
_onBeforeUpload(): void;
_onBuildForm(form: any): void;
_onProgress(progress: number): void;
_onSuccess(response: string, status: number, headers: ParsedResponseHeaders): void;
_onError(response: string, status: number, headers: ParsedResponseHeaders): void;
_onCancel(response: string, status: number, headers: ParsedResponseHeaders): void;
_onComplete(response: string, status: number, headers: ParsedResponseHeaders): void;
_prepareToUploading(): void;
}
interface Headers {
name: string;
value: string;
}
interface ParsedResponseHeaders {
[headerFieldName: string]: string;
}
interface FilterFunction {
name: string;
fn(item: FileLikeObject, options?: FileUploaderOptions): boolean;
}
interface FileUploaderOptions {
allowedMimeType?: string[];
allowEmptyMimeType?: boolean;
allowedFileType?: string[];
autoUpload?: boolean;
isHTML5?: boolean;
filters?: FilterFunction[];
headers?: Headers[];
method?: string;
authToken?: string;
maxFileSize?: number;
queueLimit?: number;
removeAfterUpload?: boolean;
url: string;
disableMultipart?: boolean;
itemAlias?: string;
authTokenHeader?: string;
additionalParameter?: {
[key: string]: any;
};
parametersBeforeFiles?: boolean;
formatDataFunction?: Function;
formatDataFunctionIsAsync?: boolean;
}
declare class FileUploader {
authToken?: string;
isUploading: boolean;
queue: FileItem[];
progress: number;
_nextIndex: number;
autoUpload: any;
authTokenHeader?: string;
response: EventEmitter<any>;
options: FileUploaderOptions;
protected _failFilterIndex?: number;
constructor(options: FileUploaderOptions);
setOptions(options: FileUploaderOptions): void;
addToQueue(files: File[] | FileList, _options?: FileUploaderOptions, filters?: [] | string): void;
removeFromQueue(value: FileItem): void;
clearQueue(): void;
uploadItem(value: FileItem): void;
cancelItem(value: FileItem): void;
uploadAll(): void;
cancelAll(): void;
isFile(value: any): boolean;
isFileLikeObject(value: any): boolean;
getIndexOfItem(value: any): number;
getNotUploadedItems(): any[];
getReadyItems(): any[];
onAfterAddingAll(fileItems: any): any;
onBuildItemForm(fileItem: FileItem, form: any): any;
onAfterAddingFile(fileItem: FileItem): any;
onWhenAddingFileFailed(item: FileLikeObject, filter: any, options: any): any;
onBeforeUploadItem(fileItem: FileItem): any;
onProgressItem(fileItem: FileItem, progress: any): any;
onProgressAll(progress: any): any;
onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
onCompleteAll(): any;
_mimeTypeFilter(item: FileLikeObject): boolean;
_fileSizeFilter(item: FileLikeObject): boolean;
_fileTypeFilter(item: FileLikeObject): boolean;
_onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
_onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
protected _finishItem(item: FileItem, method: '_onSuccessItem' | '_onErrorItem' | '_onCancelItem', response: string, status: number, headers: ParsedResponseHeaders): void;
private _uploadNext;
protected _headersGetter(parsedHeaders: ParsedResponseHeaders): any;
protected _xhrTransport(item: FileItem): any;
protected _buildFormData(item: FileItem, file: Blob, extraParameters?: {
[key: string]: string;
}): FormData;
protected _openRequest(xhr: XMLHttpRequest, item: FileItem): void;
protected _getTotalProgress(value?: number): number;
protected _getFilters(filters?: FilterFunction[] | string): FilterFunction[] | [];
protected _render(): any;
protected _queueLimitFilter(): boolean;
protected _isValidFile(file: FileLikeObject, filters: FilterFunction[], options: FileUploaderOptions): boolean;
protected _isSuccessCode(status: number): boolean;
protected _transformResponse(response: string): string;
protected _parseHeaders(headers: string): ParsedResponseHeaders;
protected _onWhenAddingFileFailed(item: FileLikeObject, filter: any, options: any): void;
protected _onAfterAddingFile(item: FileItem): void;
protected _onAfterAddingAll(items: any): void;
protected _onBeforeUploadItem(item: FileItem): void;
protected _onBuildItemForm(item: FileItem, form: any): void;
protected _onProgressItem(item: FileItem, progress: any): void;
protected _onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
protected _onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
}
interface ChunkedFileUploaderOptions extends FileUploaderOptions {
chunkSize?: number;
chunkIndexParam?: string;
totalChunksParam?: string;
}
interface FileChunk {
index: number;
total: number;
start: number;
end: number;
blob: Blob;
}
declare class ChunkedFileUploader extends FileUploader {
options: ChunkedFileUploaderOptions;
private _chunks;
constructor(options: ChunkedFileUploaderOptions);
setOptions(options: ChunkedFileUploaderOptions): void;
getChunk(item: FileItem): FileChunk | undefined;
resumeItem(item: FileItem): void;
resumeAll(): void;
_onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
cancelItem(value: FileItem): void;
onBeforeUploadChunk(item: FileItem, chunk: FileChunk): any;
onSuccessChunk(item: FileItem, chunk: FileChunk, response: string, status: number, headers: ParsedResponseHeaders): any;
onErrorChunk(item: FileItem, chunk: FileChunk, response: string, status: number, headers: ParsedResponseHeaders): any;
protected _xhrTransport(item: FileItem): any;
protected _onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
protected _getTotalProgress(value?: number): number;
private _setResumePoint;
private _keepProgress;
private _sliceChunk;
private _sendChunk;
private _onChunkDone;
private _runChunkHook;
}
declare class FileSelectDirective {
readonly uploader: i0.InputSignal<FileUploader | undefined>;
readonly onFileSelected: i0.OutputEmitterRef<FileList>;
protected element: ElementRef<any>;
getOptions(): FileUploaderOptions | undefined;
getFilters(): string;
isEmptyAfterSelection(): boolean;
onClick(): void;
onChange(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<FileSelectDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<FileSelectDirective, "[ng2FileSelect]", never, { "uploader": { "alias": "uploader"; "required": false; "isSignal": true; }; }, { "onFileSelected": "onFileSelected"; }, never, never, true, never>;
}
declare class FileDropDirective {
readonly uploader: i0.InputSignal<FileUploader | undefined>;
readonly fileOver: i0.OutputEmitterRef<boolean>;
readonly onFileDrop: i0.OutputEmitterRef<FileList>;
protected readonly element: ElementRef<any>;
getOptions(): FileUploaderOptions | void;
getFilters(): string;
onDrop(event: MouseEvent): void;
onDragOver(event: MouseEvent): void;
onDragLeave(event: MouseEvent): void;
protected _getTransfer(event: any): DataTransfer;
protected _preventAndStop(event: MouseEvent): void;
protected _haveFiles(types: any): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<FileDropDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<FileDropDirective, "[ng2FileDrop]", never, { "uploader": { "alias": "uploader"; "required": false; "isSignal": true; }; }, { "fileOver": "fileOver"; "onFileDrop": "onFileDrop"; }, never, never, true, never>;
}
declare class FileUploadModule {
static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<FileUploadModule, never, [typeof FileSelectDirective, typeof FileDropDirective], [typeof FileSelectDirective, typeof FileDropDirective]>;
static ɵinj: i0.ɵɵInjectorDeclaration<FileUploadModule>;
}
export { ChunkedFileUploader, FileDropDirective, FileItem, FileLikeObject, FileSelectDirective, FileUploadModule, FileUploader };
export type { ChunkedFileUploaderOptions, FileChunk, FileUploaderOptions, FilterFunction, Headers, ParsedResponseHeaders };