UNPKG

ngx-uploader-directive

Version:

Angular File Uploader Directive which provides two directives, which are select and file drag and drop to upload files on server.

96 lines (95 loc) 3.2 kB
/** * @license * The MIT License (MIT) * Copyright (c) 2015-2018 Jan Kuri jan@bleenco.com * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * File Upload Options. */ export interface IUploadOptions { requestConcurrency: number; maxFilesToAddInSingleRequest: number; allowedFileTypes?: Array<string>; maxFileUploads?: number; maxFileSize?: number; logs?: boolean; } /** * Selected File Object. */ export interface ISelectedFile { requestId: string; fileIndex: number; name: string; type: string; selectedEventType: 'DROP' | 'SELECT'; progress?: IUploadProgress; nativeFile?: File; response?: any; } /** * File Upload Progress. */ export interface IUploadProgress { status: 'Queue' | 'Uploading' | 'Done' | 'Cancelled'; data?: { percentage: number; speed: number; speedHuman: string; startTime: number | null; endTime: number | null; eta: number | null; etaHuman: string | null; }; } /** * Upload Input events that can be emit to ngx-uploader-directive. */ export interface IUploadInput { type: 'uploadAll' | 'uploadFile' | 'cancel' | 'cancelAll' | 'remove' | 'removeAll'; /** * Input unique reference number to evalueate unique events. * Generate using Math.random(). */ inputReferenceNumber?: number; url?: string; method?: string; requestId?: string; fieldName?: string; fileIndex?: number; file?: ISelectedFile; data?: { [key: string]: string | Blob; }; headers?: { [key: string]: string; }; } /** * File Upload Output Events that emitted by ngx-uploader-directive. */ export interface IUploadOutput { type: 'init' | 'addedToQueue' | 'allAddedToQueue' | 'uploading' | 'done' | 'start' | 'cancelled' | 'dragOver' | 'dragOut' | 'drop' | 'removed' | 'removedAll' | 'rejected' | 'error'; requestId?: string; files?: Array<ISelectedFile>; fileSelectedEventType?: 'DROP' | 'SELECT' | 'ALL'; progress?: IUploadProgress; response?: any; }