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 @@
1
+ {"version":3,"file":"ng2-file-upload.js","sources":["ng://ng2-file-upload/file-upload/file-like-object.class.ts","ng://ng2-file-upload/file-upload/file-item.class.ts","ng://ng2-file-upload/file-upload/file-type.class.ts","ng://ng2-file-upload/file-upload/file-uploader.class.ts","ng://ng2-file-upload/file-upload/file-select.directive.ts","ng://ng2-file-upload/file-upload/file-drop.directive.ts","ng://ng2-file-upload/file-upload/file-upload.module.ts"],"sourcesContent":["function isElement(node: any): boolean {\n return !!(node && (node.nodeName || node.prop && node.attr && node.find));\n}\n\nexport class FileLikeObject {\n public lastModifiedDate: any;\n public size: any;\n public type: string;\n public name: string;\n public rawFile: string;\n\n public constructor(fileOrInput: any) {\n this.rawFile = fileOrInput;\n let isInput = isElement(fileOrInput);\n let fakePathOrObject = isInput ? fileOrInput.value : fileOrInput;\n let postfix = typeof fakePathOrObject === 'string' ? 'FakePath' : 'Object';\n let method = '_createFrom' + postfix;\n (this as any)[ method ](fakePathOrObject);\n }\n\n public _createFromFakePath(path: string): void {\n this.lastModifiedDate = void 0;\n this.size = void 0;\n this.type = 'like/' + path.slice(path.lastIndexOf('.') + 1).toLowerCase();\n this.name = path.slice(path.lastIndexOf('/') + path.lastIndexOf('\\\\') + 2);\n }\n\n public _createFromObject(object: { size: number, type: string, name: string }): void {\n this.size = object.size;\n this.type = object.type;\n this.name = object.name;\n }\n}\n","import { FileLikeObject } from './file-like-object.class';\nimport { FileUploader, ParsedResponseHeaders, FileUploaderOptions } from './file-uploader.class';\n\nexport class FileItem {\n public file: FileLikeObject;\n public _file: File;\n public alias: string;\n public url: string = '/';\n public method: string;\n public headers: any = [];\n public withCredentials: boolean = true;\n public formData: any = [];\n public isReady: boolean = false;\n public isUploading: boolean = false;\n public isUploaded: boolean = false;\n public isSuccess: boolean = false;\n public isCancel: boolean = false;\n public isError: boolean = false;\n public progress: number = 0;\n public index: number = void 0;\n public _xhr: XMLHttpRequest;\n public _form: any;\n\n protected uploader: FileUploader;\n protected some: File;\n protected options: FileUploaderOptions;\n\n public constructor(uploader: FileUploader, some: File, options: FileUploaderOptions) {\n this.uploader = uploader;\n this.some = some;\n this.options = options;\n this.file = new FileLikeObject(some);\n this._file = some;\n if (uploader.options) {\n this.method = uploader.options.method || 'POST';\n this.alias = uploader.options.itemAlias || 'file';\n }\n this.url = uploader.options.url;\n }\n\n public upload(): void {\n try {\n this.uploader.uploadItem(this);\n } catch (e) {\n this.uploader._onCompleteItem(this, '', 0, {});\n this.uploader._onErrorItem(this, '', 0, {});\n }\n }\n\n public cancel(): void {\n this.uploader.cancelItem(this);\n }\n\n public remove(): void {\n this.uploader.removeFromQueue(this);\n }\n\n public onBeforeUpload(): void {\n return void 0;\n }\n\n public onBuildForm(form: any): any {\n return { form };\n }\n\n public onProgress(progress: number): any {\n return { progress };\n }\n\n public onSuccess(response: string, status: number, headers: ParsedResponseHeaders): any {\n return { response, status, headers };\n }\n\n public onError(response: string, status: number, headers: ParsedResponseHeaders): any {\n return { response, status, headers };\n }\n\n public onCancel(response: string, status: number, headers: ParsedResponseHeaders): any {\n return { response, status, headers };\n }\n\n public onComplete(response: string, status: number, headers: ParsedResponseHeaders): any {\n return { response, status, headers };\n }\n\n public _onBeforeUpload(): void {\n this.isReady = true;\n this.isUploading = true;\n this.isUploaded = false;\n this.isSuccess = false;\n this.isCancel = false;\n this.isError = false;\n this.progress = 0;\n this.onBeforeUpload();\n }\n\n public _onBuildForm(form: any): void {\n this.onBuildForm(form);\n }\n\n public _onProgress(progress: number): void {\n this.progress = progress;\n this.onProgress(progress);\n }\n\n public _onSuccess(response: string, status: number, headers: ParsedResponseHeaders): void {\n this.isReady = false;\n this.isUploading = false;\n this.isUploaded = true;\n this.isSuccess = true;\n this.isCancel = false;\n this.isError = false;\n this.progress = 100;\n this.index = void 0;\n this.onSuccess(response, status, headers);\n }\n\n public _onError(response: string, status: number, headers: ParsedResponseHeaders): void {\n this.isReady = false;\n this.isUploading = false;\n this.isUploaded = true;\n this.isSuccess = false;\n this.isCancel = false;\n this.isError = true;\n this.progress = 0;\n this.index = void 0;\n this.onError(response, status, headers);\n }\n\n public _onCancel(response: string, status: number, headers: ParsedResponseHeaders): void {\n this.isReady = false;\n this.isUploading = false;\n this.isUploaded = false;\n this.isSuccess = false;\n this.isCancel = true;\n this.isError = false;\n this.progress = 0;\n this.index = void 0;\n this.onCancel(response, status, headers);\n }\n\n public _onComplete(response: string, status: number, headers: ParsedResponseHeaders): void {\n this.onComplete(response, status, headers);\n\n if (this.uploader.options.removeAfterUpload) {\n this.remove();\n }\n }\n\n public _prepareToUploading(): void {\n this.index = this.index || ++this.uploader._nextIndex;\n this.isReady = true;\n }\n}\n","import { FileLikeObject } from \"../index\";\n\nexport class FileType {\n /* MS office */\n public static mime_doc: string[] = [\n 'application/msword',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n 'application/vnd.ms-word.document.macroEnabled.12',\n 'application/vnd.ms-word.template.macroEnabled.12'\n ];\n public static mime_xsl: string[] = [\n 'application/vnd.ms-excel',\n 'application/vnd.ms-excel',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n 'application/vnd.ms-excel.sheet.macroEnabled.12',\n 'application/vnd.ms-excel.template.macroEnabled.12',\n 'application/vnd.ms-excel.addin.macroEnabled.12',\n 'application/vnd.ms-excel.sheet.binary.macroEnabled.12'\n ];\n public static mime_ppt: string[] = [\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.openxmlformats-officedocument.presentationml.template',\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n 'application/vnd.ms-powerpoint.addin.macroEnabled.12',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12'\n ];\n\n /* PSD */\n public static mime_psd: string[] = [\n 'image/photoshop',\n 'image/x-photoshop',\n 'image/psd',\n 'application/photoshop',\n 'application/psd',\n 'zz-application/zz-winassoc-psd'\n ];\n\n /* Compressed files */\n public static mime_compress: string[] = [\n 'application/x-gtar',\n 'application/x-gcompress',\n 'application/compress',\n 'application/x-tar',\n 'application/x-rar-compressed',\n 'application/octet-stream',\n 'application/x-zip-compressed',\n 'application/zip-compressed',\n 'application/x-7z-compressed',\n 'application/gzip',\n 'application/x-bzip2'\n ];\n\n public static getMimeClass(file: FileLikeObject): string {\n let mimeClass = 'application';\n if (this.mime_psd.indexOf(file.type) !== -1) {\n mimeClass = 'image';\n } else if (file.type.match('image.*')) {\n mimeClass = 'image';\n } else if (file.type.match('video.*')) {\n mimeClass = 'video';\n } else if (file.type.match('audio.*')) {\n mimeClass = 'audio';\n } else if (file.type === 'application/pdf') {\n mimeClass = 'pdf';\n } else if (this.mime_compress.indexOf(file.type) !== -1) {\n mimeClass = 'compress';\n } else if (this.mime_doc.indexOf(file.type) !== -1) {\n mimeClass = 'doc';\n } else if (this.mime_xsl.indexOf(file.type) !== -1) {\n mimeClass = 'xls';\n } else if (this.mime_ppt.indexOf(file.type) !== -1) {\n mimeClass = 'ppt';\n }\n if (mimeClass === 'application') {\n mimeClass = this.fileTypeDetection(file.name);\n }\n\n return mimeClass;\n }\n\n public static fileTypeDetection(inputFilename: string): string {\n let types: { [ key: string ]: string } = {\n 'jpg': 'image',\n 'jpeg': 'image',\n 'tif': 'image',\n 'psd': 'image',\n 'bmp': 'image',\n 'png': 'image',\n 'nef': 'image',\n 'tiff': 'image',\n 'cr2': 'image',\n 'dwg': 'image',\n 'cdr': 'image',\n 'ai': 'image',\n 'indd': 'image',\n 'pin': 'image',\n 'cdp': 'image',\n 'skp': 'image',\n 'stp': 'image',\n '3dm': 'image',\n 'mp3': 'audio',\n 'wav': 'audio',\n 'wma': 'audio',\n 'mod': 'audio',\n 'm4a': 'audio',\n 'compress': 'compress',\n 'zip': 'compress',\n 'rar': 'compress',\n '7z': 'compress',\n 'lz': 'compress',\n 'z01': 'compress',\n 'bz2': 'compress',\n 'gz': 'compress',\n 'pdf': 'pdf',\n 'xls': 'xls',\n 'xlsx': 'xls',\n 'ods': 'xls',\n 'mp4': 'video',\n 'avi': 'video',\n 'wmv': 'video',\n 'mpg': 'video',\n 'mts': 'video',\n 'flv': 'video',\n '3gp': 'video',\n 'vob': 'video',\n 'm4v': 'video',\n 'mpeg': 'video',\n 'm2ts': 'video',\n 'mov': 'video',\n 'doc': 'doc',\n 'docx': 'doc',\n 'eps': 'doc',\n 'txt': 'doc',\n 'odt': 'doc',\n 'rtf': 'doc',\n 'ppt': 'ppt',\n 'pptx': 'ppt',\n 'pps': 'ppt',\n 'ppsx': 'ppt',\n 'odp': 'ppt'\n };\n\n let chunks = inputFilename.split('.');\n if (chunks.length < 2) {\n return 'application';\n }\n let extension = chunks[ chunks.length - 1 ].toLowerCase();\n if (types[ extension ] === undefined) {\n return 'application';\n } else {\n return types[ extension ];\n }\n }\n}\n","import { EventEmitter } from '@angular/core';\nimport { FileLikeObject } from './file-like-object.class';\nimport { FileItem } from './file-item.class';\nimport { FileType } from './file-type.class';\n\nfunction isFile(value: any): boolean {\n return (File && value instanceof File);\n}\n\nexport interface Headers {\n name: string;\n value: string;\n}\n\nexport type ParsedResponseHeaders = { [ headerFieldName: string ]: string };\n\nexport type FilterFunction = {\n name: string,\n fn: (item?: FileLikeObject, options?: FileUploaderOptions) => boolean\n};\n\nexport interface FileUploaderOptions {\n allowedMimeType?: string[];\n allowedFileType?: string[];\n autoUpload?: boolean;\n isHTML5?: boolean;\n filters?: FilterFunction[];\n headers?: Headers[];\n method?: string;\n authToken?: string;\n maxFileSize?: number;\n queueLimit?: number;\n removeAfterUpload?: boolean;\n url?: string;\n disableMultipart?: boolean;\n itemAlias?: string;\n authTokenHeader?: string;\n additionalParameter?: { [ key: string ]: any };\n parametersBeforeFiles?: boolean;\n formatDataFunction?: Function;\n formatDataFunctionIsAsync?: boolean;\n}\n\nexport class FileUploader {\n\n public authToken: string;\n public isUploading: boolean = false;\n public queue: FileItem[] = [];\n public progress: number = 0;\n public _nextIndex: number = 0;\n public autoUpload: any;\n public authTokenHeader: string;\n public response: EventEmitter<any>;\n\n public options: FileUploaderOptions = {\n autoUpload: false,\n isHTML5: true,\n filters: [],\n removeAfterUpload: false,\n disableMultipart: false,\n formatDataFunction: (item: FileItem) => item._file,\n formatDataFunctionIsAsync: false\n };\n\n protected _failFilterIndex: number;\n\n public constructor(options: FileUploaderOptions) {\n this.setOptions(options);\n this.response = new EventEmitter<any>();\n }\n\n public setOptions(options: FileUploaderOptions): void {\n this.options = Object.assign(this.options, options);\n\n this.authToken = this.options.authToken;\n this.authTokenHeader = this.options.authTokenHeader || 'Authorization';\n this.autoUpload = this.options.autoUpload;\n this.options.filters.unshift({ name: 'queueLimit', fn: this._queueLimitFilter });\n\n if (this.options.maxFileSize) {\n this.options.filters.unshift({ name: 'fileSize', fn: this._fileSizeFilter });\n }\n\n if (this.options.allowedFileType) {\n this.options.filters.unshift({ name: 'fileType', fn: this._fileTypeFilter });\n }\n\n if (this.options.allowedMimeType) {\n this.options.filters.unshift({ name: 'mimeType', fn: this._mimeTypeFilter });\n }\n\n for (let i = 0; i < this.queue.length; i++) {\n this.queue[ i ].url = this.options.url;\n }\n }\n\n public addToQueue(files: File[], options?: FileUploaderOptions, filters?: FilterFunction[] | string): void {\n let list: File[] = [];\n for (let file of files) {\n list.push(file);\n }\n let arrayOfFilters = this._getFilters(filters);\n let count = this.queue.length;\n let addedFileItems: FileItem[] = [];\n list.map((some: File) => {\n if (!options) {\n options = this.options;\n }\n\n let temp = new FileLikeObject(some);\n if (this._isValidFile(temp, arrayOfFilters, options)) {\n let fileItem = new FileItem(this, some, options);\n addedFileItems.push(fileItem);\n this.queue.push(fileItem);\n this._onAfterAddingFile(fileItem);\n } else {\n let filter = arrayOfFilters[ this._failFilterIndex ];\n this._onWhenAddingFileFailed(temp, filter, options);\n }\n });\n if (this.queue.length !== count) {\n this._onAfterAddingAll(addedFileItems);\n this.progress = this._getTotalProgress();\n }\n this._render();\n if (this.options.autoUpload) {\n this.uploadAll();\n }\n }\n\n public removeFromQueue(value: FileItem): void {\n let index = this.getIndexOfItem(value);\n let item = this.queue[ index ];\n if (item.isUploading) {\n item.cancel();\n }\n this.queue.splice(index, 1);\n this.progress = this._getTotalProgress();\n }\n\n public clearQueue(): void {\n while (this.queue.length) {\n this.queue[ 0 ].remove();\n }\n this.progress = 0;\n }\n\n public uploadItem(value: FileItem): void {\n let index = this.getIndexOfItem(value);\n let item = this.queue[ index ];\n let transport = this.options.isHTML5 ? '_xhrTransport' : '_iframeTransport';\n item._prepareToUploading();\n if (this.isUploading) {\n return;\n }\n this.isUploading = true;\n (this as any)[ transport ](item);\n }\n\n public cancelItem(value: FileItem): void {\n let index = this.getIndexOfItem(value);\n let item = this.queue[ index ];\n let prop = this.options.isHTML5 ? item._xhr : item._form;\n if (item && item.isUploading) {\n prop.abort();\n }\n }\n\n public uploadAll(): void {\n let items = this.getNotUploadedItems().filter((item: FileItem) => !item.isUploading);\n if (!items.length) {\n return;\n }\n items.map((item: FileItem) => item._prepareToUploading());\n items[ 0 ].upload();\n }\n\n public cancelAll(): void {\n let items = this.getNotUploadedItems();\n items.map((item: FileItem) => item.cancel());\n }\n\n public isFile(value: any): boolean {\n return isFile(value);\n }\n\n public isFileLikeObject(value: any): boolean {\n return value instanceof FileLikeObject;\n }\n\n public getIndexOfItem(value: any): number {\n return typeof value === 'number' ? value : this.queue.indexOf(value);\n }\n\n public getNotUploadedItems(): any[] {\n return this.queue.filter((item: FileItem) => !item.isUploaded);\n }\n\n public getReadyItems(): any[] {\n return this.queue\n .filter((item: FileItem) => (item.isReady && !item.isUploading))\n .sort((item1: any, item2: any) => item1.index - item2.index);\n }\n\n public destroy(): void {\n return void 0;\n }\n\n public onAfterAddingAll(fileItems: any): any {\n return { fileItems };\n }\n\n public onBuildItemForm(fileItem: FileItem, form: any): any {\n return { fileItem, form };\n }\n\n public onAfterAddingFile(fileItem: FileItem): any {\n return { fileItem };\n }\n\n public onWhenAddingFileFailed(item: FileLikeObject, filter: any, options: any): any {\n return { item, filter, options };\n }\n\n public onBeforeUploadItem(fileItem: FileItem): any {\n return { fileItem };\n }\n\n public onProgressItem(fileItem: FileItem, progress: any): any {\n return { fileItem, progress };\n }\n\n public onProgressAll(progress: any): any {\n return { progress };\n }\n\n public onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any {\n return { item, response, status, headers };\n }\n\n public onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any {\n return { item, response, status, headers };\n }\n\n public onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any {\n return { item, response, status, headers };\n }\n\n public onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any {\n return { item, response, status, headers };\n }\n\n public onCompleteAll(): any {\n return void 0;\n }\n\n public _mimeTypeFilter(item: FileLikeObject): boolean {\n return !(this.options.allowedMimeType && this.options.allowedMimeType.indexOf(item.type) === -1);\n }\n\n public _fileSizeFilter(item: FileLikeObject): boolean {\n return !(this.options.maxFileSize && item.size > this.options.maxFileSize);\n }\n\n public _fileTypeFilter(item: FileLikeObject): boolean {\n return !(this.options.allowedFileType &&\n this.options.allowedFileType.indexOf(FileType.getMimeClass(item)) === -1);\n }\n\n public _onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void {\n item._onError(response, status, headers);\n this.onErrorItem(item, response, status, headers);\n }\n\n public _onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void {\n item._onComplete(response, status, headers);\n this.onCompleteItem(item, response, status, headers);\n let nextItem = this.getReadyItems()[ 0 ];\n this.isUploading = false;\n if (nextItem) {\n nextItem.upload();\n return;\n }\n this.onCompleteAll();\n this.progress = this._getTotalProgress();\n this._render();\n }\n\n protected _headersGetter(parsedHeaders: ParsedResponseHeaders): any {\n return (name: any): any => {\n if (name) {\n return parsedHeaders[ name.toLowerCase() ] || void 0;\n }\n return parsedHeaders;\n };\n }\n\n protected _xhrTransport(item: FileItem): any {\n let that = this;\n let xhr = item._xhr = new XMLHttpRequest();\n let sendable: any;\n this._onBeforeUploadItem(item);\n\n if (typeof item._file.size !== 'number') {\n throw new TypeError('The file specified is no longer valid');\n }\n if (!this.options.disableMultipart) {\n sendable = new FormData();\n this._onBuildItemForm(item, sendable);\n\n const appendFile = () => sendable.append(item.alias, item._file, item.file.name);\n if (!this.options.parametersBeforeFiles) {\n appendFile();\n }\n\n // For AWS, Additional Parameters must come BEFORE Files\n if (this.options.additionalParameter !== undefined) {\n Object.keys(this.options.additionalParameter).forEach((key: string) => {\n let paramVal = this.options.additionalParameter[ key ];\n // Allow an additional parameter to include the filename\n if (typeof paramVal === 'string' && paramVal.indexOf('{{file_name}}') >= 0) {\n paramVal = paramVal.replace('{{file_name}}', item.file.name);\n }\n sendable.append(key, paramVal);\n });\n }\n\n if (this.options.parametersBeforeFiles) {\n appendFile();\n }\n } else {\n sendable = this.options.formatDataFunction(item);\n }\n\n xhr.upload.onprogress = (event: any) => {\n let progress = Math.round(event.lengthComputable ? event.loaded * 100 / event.total : 0);\n this._onProgressItem(item, progress);\n };\n xhr.onload = () => {\n let headers = this._parseHeaders(xhr.getAllResponseHeaders());\n let response = this._transformResponse(xhr.response, headers);\n let gist = this._isSuccessCode(xhr.status) ? 'Success' : 'Error';\n let method = '_on' + gist + 'Item';\n (this as any)[ method ](item, response, xhr.status, headers);\n this._onCompleteItem(item, response, xhr.status, headers);\n };\n xhr.onerror = () => {\n let headers = this._parseHeaders(xhr.getAllResponseHeaders());\n let response = this._transformResponse(xhr.response, headers);\n this._onErrorItem(item, response, xhr.status, headers);\n this._onCompleteItem(item, response, xhr.status, headers);\n };\n xhr.onabort = () => {\n let headers = this._parseHeaders(xhr.getAllResponseHeaders());\n let response = this._transformResponse(xhr.response, headers);\n this._onCancelItem(item, response, xhr.status, headers);\n this._onCompleteItem(item, response, xhr.status, headers);\n };\n xhr.open(item.method, item.url, true);\n xhr.withCredentials = item.withCredentials;\n if (this.options.headers) {\n for (let header of this.options.headers) {\n xhr.setRequestHeader(header.name, header.value);\n }\n }\n if (item.headers.length) {\n for (let header of item.headers) {\n xhr.setRequestHeader(header.name, header.value);\n }\n }\n if (this.authToken) {\n xhr.setRequestHeader(this.authTokenHeader, this.authToken);\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState == XMLHttpRequest.DONE) {\n that.response.emit(xhr.responseText)\n }\n }\n if (this.options.formatDataFunctionIsAsync) {\n sendable.then(\n (result: any) => xhr.send(JSON.stringify(result))\n );\n } else {\n xhr.send(sendable);\n }\n this._render();\n }\n\n protected _getTotalProgress(value: number = 0): number {\n if (this.options.removeAfterUpload) {\n return value;\n }\n let notUploaded = this.getNotUploadedItems().length;\n let uploaded = notUploaded ? this.queue.length - notUploaded : this.queue.length;\n let ratio = 100 / this.queue.length;\n let current = value * ratio / 100;\n return Math.round(uploaded * ratio + current);\n }\n\n protected _getFilters(filters: FilterFunction[] | string): FilterFunction[] {\n if (!filters) {\n return this.options.filters;\n }\n if (Array.isArray(filters)) {\n return filters;\n }\n if (typeof filters === 'string') {\n let names = filters.match(/[^\\s,]+/g);\n return this.options.filters\n .filter((filter: any) => names.indexOf(filter.name) !== -1);\n }\n return this.options.filters;\n }\n\n protected _render(): any {\n return void 0;\n }\n\n protected _queueLimitFilter(): boolean {\n return this.options.queueLimit === undefined || this.queue.length < this.options.queueLimit;\n }\n\n protected _isValidFile(file: FileLikeObject, filters: FilterFunction[], options: FileUploaderOptions): boolean {\n this._failFilterIndex = -1;\n return !filters.length ? true : filters.every((filter: FilterFunction) => {\n this._failFilterIndex++;\n return filter.fn.call(this, file, options);\n });\n }\n\n protected _isSuccessCode(status: number): boolean {\n return (status >= 200 && status < 300) || status === 304;\n }\n\n protected _transformResponse(response: string, headers: ParsedResponseHeaders): string {\n return response;\n }\n\n protected _parseHeaders(headers: string): ParsedResponseHeaders {\n let parsed: any = {};\n let key: any;\n let val: any;\n let i: any;\n if (!headers) {\n return parsed;\n }\n headers.split('\\n').map((line: any) => {\n i = line.indexOf(':');\n key = line.slice(0, i).trim().toLowerCase();\n val = line.slice(i + 1).trim();\n if (key) {\n parsed[ key ] = parsed[ key ] ? parsed[ key ] + ', ' + val : val;\n }\n });\n return parsed;\n }\n\n protected _onWhenAddingFileFailed(item: FileLikeObject, filter: any, options: any): void {\n this.onWhenAddingFileFailed(item, filter, options);\n }\n\n protected _onAfterAddingFile(item: FileItem): void {\n this.onAfterAddingFile(item);\n }\n\n protected _onAfterAddingAll(items: any): void {\n this.onAfterAddingAll(items);\n }\n\n protected _onBeforeUploadItem(item: FileItem): void {\n item._onBeforeUpload();\n this.onBeforeUploadItem(item);\n }\n\n protected _onBuildItemForm(item: FileItem, form: any): void {\n item._onBuildForm(form);\n this.onBuildItemForm(item, form);\n }\n\n protected _onProgressItem(item: FileItem, progress: any): void {\n let total = this._getTotalProgress(progress);\n this.progress = total;\n item._onProgress(progress);\n this.onProgressItem(item, progress);\n this.onProgressAll(total);\n this._render();\n }\n\n protected _onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void {\n item._onSuccess(response, status, headers);\n this.onSuccessItem(item, response, status, headers);\n }\n\n protected _onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void {\n item._onCancel(response, status, headers);\n this.onCancelItem(item, response, status, headers);\n }\n}\n","import { Directive, EventEmitter, ElementRef, Input, HostListener, Output } from '@angular/core';\n\nimport { FileUploader } from './file-uploader.class';\n\n@Directive({ selector: '[ng2FileSelect]' })\nexport class FileSelectDirective {\n @Input() public uploader: FileUploader;\n @Output() public onFileSelected: EventEmitter<File[]> = new EventEmitter<File[]>();\n\n protected element: ElementRef;\n\n public constructor(element: ElementRef) {\n this.element = element;\n }\n\n public getOptions(): any {\n return this.uploader.options;\n }\n\n public getFilters(): any {\n return {};\n }\n\n public isEmptyAfterSelection(): boolean {\n return !!this.element.nativeElement.attributes.multiple;\n }\n\n @HostListener('change')\n public onChange(): any {\n let files = this.element.nativeElement.files;\n let options = this.getOptions();\n let filters = this.getFilters();\n\n this.uploader.addToQueue(files, options, filters);\n this.onFileSelected.emit(files);\n\n if (this.isEmptyAfterSelection()) {\n this.element.nativeElement.value = '';\n }\n }\n}\n","import { Directive, EventEmitter, ElementRef, HostListener, Input, Output } from '@angular/core';\n\nimport { FileUploader, FileUploaderOptions } from './file-uploader.class';\n\n@Directive({ selector: '[ng2FileDrop]' })\nexport class FileDropDirective {\n @Input() public uploader: FileUploader;\n @Output() public fileOver: EventEmitter<any> = new EventEmitter();\n @Output() public onFileDrop: EventEmitter<File[]> = new EventEmitter<File[]>();\n\n protected element: ElementRef;\n\n public constructor(element: ElementRef) {\n this.element = element;\n }\n\n public getOptions(): FileUploaderOptions {\n return this.uploader.options;\n }\n\n public getFilters(): any {\n return {};\n }\n\n @HostListener('drop', [ '$event' ])\n public onDrop(event: any): void {\n let transfer = this._getTransfer(event);\n if (!transfer) {\n return;\n }\n\n let options = this.getOptions();\n let filters = this.getFilters();\n this._preventAndStop(event);\n this.uploader.addToQueue(transfer.files, options, filters);\n this.fileOver.emit(false);\n this.onFileDrop.emit(transfer.files);\n }\n\n @HostListener('dragover', [ '$event' ])\n public onDragOver(event: any): void {\n let transfer = this._getTransfer(event);\n if (!this._haveFiles(transfer.types)) {\n return;\n }\n\n transfer.dropEffect = 'copy';\n this._preventAndStop(event);\n this.fileOver.emit(true);\n }\n\n @HostListener('dragleave', [ '$event' ])\n public onDragLeave(event: any): any {\n if ((this as any).element) {\n if (event.currentTarget === (this as any).element[ 0 ]) {\n return;\n }\n }\n\n this._preventAndStop(event);\n this.fileOver.emit(false);\n }\n\n protected _getTransfer(event: any): any {\n return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;\n }\n\n protected _preventAndStop(event: any): any {\n event.preventDefault();\n event.stopPropagation();\n }\n\n protected _haveFiles(types: any): any {\n if (!types) {\n return false;\n }\n\n if (types.indexOf) {\n return types.indexOf('Files') !== -1;\n } else if (types.contains) {\n return types.contains('Files');\n } else {\n return false;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FileDropDirective } from './file-drop.directive';\nimport { FileSelectDirective } from './file-select.directive';\n\n@NgModule({\n imports: [ CommonModule ],\n declarations: [ FileDropDirective, FileSelectDirective ],\n exports: [ FileDropDirective, FileSelectDirective ]\n})\nexport class FileUploadModule {\n}\n"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import { EventEmitter, ElementRef } from '@angular/core';
2
- import { FileUploader } from './file-uploader.class';
2
+ import { FileUploader, FileUploaderOptions } from './file-uploader.class';
3
3
  export declare class FileDropDirective {
4
4
  uploader: FileUploader;
5
5
  fileOver: EventEmitter<any>;
6
6
  onFileDrop: EventEmitter<File[]>;
7
- private element;
7
+ protected element: ElementRef;
8
8
  constructor(element: ElementRef);
9
- getOptions(): any;
9
+ getOptions(): FileUploaderOptions;
10
10
  getFilters(): any;
11
11
  onDrop(event: any): void;
12
12
  onDragOver(event: any): void;
13
13
  onDragLeave(event: any): any;
14
- private _getTransfer(event);
15
- private _preventAndStop(event);
16
- private _haveFiles(types);
14
+ protected _getTransfer(event: any): any;
15
+ protected _preventAndStop(event: any): any;
16
+ protected _haveFiles(types: any): any;
17
17
  }
@@ -19,9 +19,9 @@ export declare class FileItem {
19
19
  index: number;
20
20
  _xhr: XMLHttpRequest;
21
21
  _form: any;
22
- private uploader;
23
- private some;
24
- private options;
22
+ protected uploader: FileUploader;
23
+ protected some: File;
24
+ protected options: FileUploaderOptions;
25
25
  constructor(uploader: FileUploader, some: File, options: FileUploaderOptions);
26
26
  upload(): void;
27
27
  cancel(): void;
@@ -3,6 +3,7 @@ export declare class FileLikeObject {
3
3
  size: any;
4
4
  type: string;
5
5
  name: string;
6
+ rawFile: string;
6
7
  constructor(fileOrInput: any);
7
8
  _createFromFakePath(path: string): void;
8
9
  _createFromObject(object: {
@@ -1,8 +1,9 @@
1
- import { ElementRef } from '@angular/core';
1
+ import { EventEmitter, ElementRef } from '@angular/core';
2
2
  import { FileUploader } from './file-uploader.class';
3
3
  export declare class FileSelectDirective {
4
4
  uploader: FileUploader;
5
- private element;
5
+ onFileSelected: EventEmitter<File[]>;
6
+ protected element: ElementRef;
6
7
  constructor(element: ElementRef);
7
8
  getOptions(): any;
8
9
  getFilters(): any;
@@ -1,9 +1,10 @@
1
+ import { FileLikeObject } from "../index";
1
2
  export declare class FileType {
2
3
  static mime_doc: string[];
3
4
  static mime_xsl: string[];
4
5
  static mime_ppt: string[];
5
6
  static mime_psd: string[];
6
7
  static mime_compress: string[];
7
- static getMimeClass(file: any): string;
8
+ static getMimeClass(file: FileLikeObject): string;
8
9
  static fileTypeDetection(inputFilename: string): string;
9
10
  }
@@ -1,3 +1,4 @@
1
+ import { EventEmitter } from '@angular/core';
1
2
  import { FileLikeObject } from './file-like-object.class';
2
3
  import { FileItem } from './file-item.class';
3
4
  export interface Headers {
@@ -12,12 +13,12 @@ export declare type FilterFunction = {
12
13
  fn: (item?: FileLikeObject, options?: FileUploaderOptions) => boolean;
13
14
  };
14
15
  export interface FileUploaderOptions {
15
- allowedMimeType?: Array<string>;
16
- allowedFileType?: Array<string>;
16
+ allowedMimeType?: string[];
17
+ allowedFileType?: string[];
17
18
  autoUpload?: boolean;
18
19
  isHTML5?: boolean;
19
- filters?: Array<FilterFunction>;
20
- headers?: Array<Headers>;
20
+ filters?: FilterFunction[];
21
+ headers?: Headers[];
21
22
  method?: string;
22
23
  authToken?: string;
23
24
  maxFileSize?: number;
@@ -27,17 +28,24 @@ export interface FileUploaderOptions {
27
28
  disableMultipart?: boolean;
28
29
  itemAlias?: string;
29
30
  authTokenHeader?: string;
31
+ additionalParameter?: {
32
+ [key: string]: any;
33
+ };
34
+ parametersBeforeFiles?: boolean;
35
+ formatDataFunction?: Function;
36
+ formatDataFunctionIsAsync?: boolean;
30
37
  }
31
38
  export declare class FileUploader {
32
39
  authToken: string;
33
40
  isUploading: boolean;
34
- queue: Array<FileItem>;
41
+ queue: FileItem[];
35
42
  progress: number;
36
43
  _nextIndex: number;
37
44
  autoUpload: any;
38
45
  authTokenHeader: string;
46
+ response: EventEmitter<any>;
39
47
  options: FileUploaderOptions;
40
- private _failFilterIndex;
48
+ protected _failFilterIndex: number;
41
49
  constructor(options: FileUploaderOptions);
42
50
  setOptions(options: FileUploaderOptions): void;
43
51
  addToQueue(files: File[], options?: FileUploaderOptions, filters?: FilterFunction[] | string): void;
@@ -50,8 +58,8 @@ export declare class FileUploader {
50
58
  isFile(value: any): boolean;
51
59
  isFileLikeObject(value: any): boolean;
52
60
  getIndexOfItem(value: any): number;
53
- getNotUploadedItems(): Array<any>;
54
- getReadyItems(): Array<any>;
61
+ getNotUploadedItems(): any[];
62
+ getReadyItems(): any[];
55
63
  destroy(): void;
56
64
  onAfterAddingAll(fileItems: any): any;
57
65
  onBuildItemForm(fileItem: FileItem, form: any): any;
@@ -72,20 +80,20 @@ export declare class FileUploader {
72
80
  _onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
73
81
  protected _headersGetter(parsedHeaders: ParsedResponseHeaders): any;
74
82
  protected _xhrTransport(item: FileItem): any;
75
- private _getTotalProgress(value?);
76
- private _getFilters(filters);
77
- private _render();
78
- private _queueLimitFilter();
79
- private _isValidFile(file, filters, options);
80
- private _isSuccessCode(status);
81
- private _transformResponse(response, headers);
82
- private _parseHeaders(headers);
83
- private _onWhenAddingFileFailed(item, filter, options);
84
- private _onAfterAddingFile(item);
85
- private _onAfterAddingAll(items);
86
- private _onBeforeUploadItem(item);
87
- private _onBuildItemForm(item, form);
88
- private _onProgressItem(item, progress);
89
- private _onSuccessItem(item, response, status, headers);
90
- private _onCancelItem(item, response, status, headers);
83
+ protected _getTotalProgress(value?: number): number;
84
+ protected _getFilters(filters: FilterFunction[] | string): FilterFunction[];
85
+ protected _render(): any;
86
+ protected _queueLimitFilter(): boolean;
87
+ protected _isValidFile(file: FileLikeObject, filters: FilterFunction[], options: FileUploaderOptions): boolean;
88
+ protected _isSuccessCode(status: number): boolean;
89
+ protected _transformResponse(response: string, headers: ParsedResponseHeaders): string;
90
+ protected _parseHeaders(headers: string): ParsedResponseHeaders;
91
+ protected _onWhenAddingFileFailed(item: FileLikeObject, filter: any, options: any): void;
92
+ protected _onAfterAddingFile(item: FileItem): void;
93
+ protected _onAfterAddingAll(items: any): void;
94
+ protected _onBeforeUploadItem(item: FileItem): void;
95
+ protected _onBuildItemForm(item: FileItem, form: any): void;
96
+ protected _onProgressItem(item: FileItem, progress: any): void;
97
+ protected _onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
98
+ protected _onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): void;
91
99
  }
package/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from './file-upload/file-select.directive';
2
2
  export * from './file-upload/file-drop.directive';
3
3
  export * from './file-upload/file-uploader.class';
4
+ export * from './file-upload/file-item.class';
5
+ export * from './file-upload/file-like-object.class';
4
6
  export { FileUploadModule } from './file-upload/file-upload.module';
@@ -1,4 +1,4 @@
1
- export * from './file-upload/file-select.directive';
2
- export * from './file-upload/file-drop.directive';
3
- export * from './file-upload/file-uploader.class';
4
- export { FileUploadModule } from './file-upload/file-upload.module';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
@@ -1 +1 @@
1
- {"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./file-upload/file-select.directive"},{"from":"./file-upload/file-drop.directive"},{"from":"./file-upload/file-uploader.class"},{"from":"./file-upload/file-upload.module","export":["FileUploadModule"]}]}
1
+ {"__symbolic":"module","version":4,"metadata":{"FileSelectDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[ng2FileSelect]"}]}],"members":{"uploader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"onFileSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":7,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":11,"character":30}]}],"getOptions":[{"__symbolic":"method"}],"getFilters":[{"__symbolic":"method"}],"isEmptyAfterSelection":[{"__symbolic":"method"}],"onChange":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":27,"character":3},"arguments":["change"]}]}]}},"FileDropDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[ng2FileDrop]"}]}],"members":{"uploader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"fileOver":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":7,"character":3}}]}],"onFileDrop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":30}]}],"getOptions":[{"__symbolic":"method"}],"getFilters":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":24,"character":3},"arguments":["drop",["$event"]]}]}],"onDragOver":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":39,"character":3},"arguments":["dragover",["$event"]]}]}],"onDragLeave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":51,"character":3},"arguments":["dragleave",["$event"]]}]}],"_getTransfer":[{"__symbolic":"method"}],"_preventAndStop":[{"__symbolic":"method"}],"_haveFiles":[{"__symbolic":"method"}]}},"Headers":{"__symbolic":"interface"},"ParsedResponseHeaders":{"__symbolic":"interface"},"FilterFunction":{"__symbolic":"interface"},"FileUploaderOptions":{"__symbolic":"interface"},"FileUploader":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setOptions":[{"__symbolic":"method"}],"addToQueue":[{"__symbolic":"method"}],"removeFromQueue":[{"__symbolic":"method"}],"clearQueue":[{"__symbolic":"method"}],"uploadItem":[{"__symbolic":"method"}],"cancelItem":[{"__symbolic":"method"}],"uploadAll":[{"__symbolic":"method"}],"cancelAll":[{"__symbolic":"method"}],"isFile":[{"__symbolic":"method"}],"isFileLikeObject":[{"__symbolic":"method"}],"getIndexOfItem":[{"__symbolic":"method"}],"getNotUploadedItems":[{"__symbolic":"method"}],"getReadyItems":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"onAfterAddingAll":[{"__symbolic":"method"}],"onBuildItemForm":[{"__symbolic":"method"}],"onAfterAddingFile":[{"__symbolic":"method"}],"onWhenAddingFileFailed":[{"__symbolic":"method"}],"onBeforeUploadItem":[{"__symbolic":"method"}],"onProgressItem":[{"__symbolic":"method"}],"onProgressAll":[{"__symbolic":"method"}],"onSuccessItem":[{"__symbolic":"method"}],"onErrorItem":[{"__symbolic":"method"}],"onCancelItem":[{"__symbolic":"method"}],"onCompleteItem":[{"__symbolic":"method"}],"onCompleteAll":[{"__symbolic":"method"}],"_mimeTypeFilter":[{"__symbolic":"method"}],"_fileSizeFilter":[{"__symbolic":"method"}],"_fileTypeFilter":[{"__symbolic":"method"}],"_onErrorItem":[{"__symbolic":"method"}],"_onCompleteItem":[{"__symbolic":"method"}],"_headersGetter":[{"__symbolic":"method"}],"_xhrTransport":[{"__symbolic":"method"}],"_getTotalProgress":[{"__symbolic":"method"}],"_getFilters":[{"__symbolic":"method"}],"_render":[{"__symbolic":"method"}],"_queueLimitFilter":[{"__symbolic":"method"}],"_isValidFile":[{"__symbolic":"method"}],"_isSuccessCode":[{"__symbolic":"method"}],"_transformResponse":[{"__symbolic":"method"}],"_parseHeaders":[{"__symbolic":"method"}],"_onWhenAddingFileFailed":[{"__symbolic":"method"}],"_onAfterAddingFile":[{"__symbolic":"method"}],"_onAfterAddingAll":[{"__symbolic":"method"}],"_onBeforeUploadItem":[{"__symbolic":"method"}],"_onBuildItemForm":[{"__symbolic":"method"}],"_onProgressItem":[{"__symbolic":"method"}],"_onSuccessItem":[{"__symbolic":"method"}],"_onCancelItem":[{"__symbolic":"method"}]}},"FileItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"FileUploader"},{"__symbolic":"error","message":"Could not resolve type","line":27,"character":51,"context":{"typeName":"File"},"module":"./file-upload/file-item.class"},{"__symbolic":"reference","name":"FileUploaderOptions"}]}],"upload":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"onBeforeUpload":[{"__symbolic":"method"}],"onBuildForm":[{"__symbolic":"method"}],"onProgress":[{"__symbolic":"method"}],"onSuccess":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"onCancel":[{"__symbolic":"method"}],"onComplete":[{"__symbolic":"method"}],"_onBeforeUpload":[{"__symbolic":"method"}],"_onBuildForm":[{"__symbolic":"method"}],"_onProgress":[{"__symbolic":"method"}],"_onSuccess":[{"__symbolic":"method"}],"_onError":[{"__symbolic":"method"}],"_onCancel":[{"__symbolic":"method"}],"_onComplete":[{"__symbolic":"method"}],"_prepareToUploading":[{"__symbolic":"method"}]}},"FileLikeObject":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"_createFromFakePath":[{"__symbolic":"method"}],"_createFromObject":[{"__symbolic":"method"}]}},"FileUploadModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":13}],"declarations":[{"__symbolic":"reference","name":"FileDropDirective"},{"__symbolic":"reference","name":"FileSelectDirective"}],"exports":[{"__symbolic":"reference","name":"FileDropDirective"},{"__symbolic":"reference","name":"FileSelectDirective"}]}]}],"members":{}}},"origins":{"FileSelectDirective":"./file-upload/file-select.directive","FileDropDirective":"./file-upload/file-drop.directive","Headers":"./file-upload/file-uploader.class","ParsedResponseHeaders":"./file-upload/file-uploader.class","FilterFunction":"./file-upload/file-uploader.class","FileUploaderOptions":"./file-upload/file-uploader.class","FileUploader":"./file-upload/file-uploader.class","FileItem":"./file-upload/file-item.class","FileLikeObject":"./file-upload/file-like-object.class","FileUploadModule":"./file-upload/file-upload.module"},"importAs":"ng2-file-upload"}
package/package.json CHANGED
@@ -1,30 +1,21 @@
1
1
  {
2
2
  "name": "ng2-file-upload",
3
- "main": "bundles/ng2-file-upload.umd.js",
4
- "module": "index.js",
5
- "typings": "index.d.ts",
3
+ "version": "1.4.0",
6
4
  "peerDependencies": {
7
- "@angular/common": "^2.0.0",
8
- "@angular/compiler": "^2.0.0",
9
- "@angular/core": "^2.0.0",
10
- "@angular/forms": "^2.0.0"
11
- },
12
- "version": "1.1.4-2",
13
- "description": "angular2 file upload directives",
14
- "keywords": [
15
- "angular",
16
- "angular2",
17
- "bootstrap",
18
- "angularjs",
19
- "file-upload",
20
- "angular-file-upload"
21
- ],
22
- "author": "Vyacheslav Chub <vyacheslav.chub@valor-software.com>",
23
- "license": "MIT",
24
- "repository": {
25
- "type": "git",
26
- "url": "git+ssh://git@github.com/valor-software/ng2-file-upload.git"
5
+ "@angular/common": "*",
6
+ "@angular/core": "*"
27
7
  },
28
- "devDependencies": {},
29
- "dependencies": {}
8
+ "main": "bundles/ng2-file-upload.umd.js",
9
+ "module": "fesm5/ng2-file-upload.js",
10
+ "es2015": "fesm2015/ng2-file-upload.js",
11
+ "esm5": "esm5/ng2-file-upload.js",
12
+ "esm2015": "esm2015/ng2-file-upload.js",
13
+ "fesm5": "fesm5/ng2-file-upload.js",
14
+ "fesm2015": "fesm2015/ng2-file-upload.js",
15
+ "typings": "ng2-file-upload.d.ts",
16
+ "metadata": "ng2-file-upload.metadata.json",
17
+ "sideEffects": false,
18
+ "dependencies": {
19
+ "tslib": "^1.9.0"
20
+ }
30
21
  }
package/CHANGELOG.md DELETED
@@ -1,91 +0,0 @@
1
- <a name="1.1.3-0"></a>
2
- ## [1.1.3-0](https://github.com/valor-software/ng2-file-upload/compare/v1.1.2...v1.1.3-0) (2016-10-19)
3
-
4
-
5
- ### Bug Fixes
6
-
7
- * **typing:** added authTokenHeader property to options and file upload class ([b55c852](https://github.com/valor-software/ng2-file-upload/commit/b55c852))
8
-
9
-
10
- ### Features
11
-
12
- * **build:** added support for AoT and ng-cli ([f0b2879](https://github.com/valor-software/ng2-file-upload/commit/f0b2879)), closes [#436](https://github.com/valor-software/ng2-file-upload/issues/436)
13
- * **file-upload:** Add the possibility of set the token header ([#213](https://github.com/valor-software/ng2-file-upload/issues/213)) ([282295c](https://github.com/valor-software/ng2-file-upload/commit/282295c))
14
-
15
-
16
-
17
- <a name="1.1.2"></a>
18
- ## [1.1.2](https://github.com/valor-software/ng2-file-upload/compare/v1.1.1...v1.1.2) (2016-10-17)
19
-
20
-
21
- ### Features
22
-
23
- * **package:** allow of ng2 v2.0.* and v2.*.* ([87395e6](https://github.com/valor-software/ng2-file-upload/commit/87395e6))
24
-
25
-
26
-
27
- <a name="1.1.1"></a>
28
- ## [1.1.1](https://github.com/valor-software/ng2-file-upload/compare/v1.0.3...v1.1.1) (2016-10-17)
29
-
30
-
31
- ### Bug Fixes
32
-
33
- * **uploader:** Add the ability to upload files via PUT instead of POST ([#239](https://github.com/valor-software/ng2-file-upload/issues/239)) ([e068511](https://github.com/valor-software/ng2-file-upload/commit/e068511))
34
- * **zone.js:** error in Safari, Added Typings ([#221](https://github.com/valor-software/ng2-file-upload/issues/221)) ([db77e89](https://github.com/valor-software/ng2-file-upload/commit/db77e89))
35
-
36
-
37
- ### Features
38
-
39
- * **multipart:** Create disableMultipart option in FileUploader ([#224](https://github.com/valor-software/ng2-file-upload/issues/224)) ([22307d2](https://github.com/valor-software/ng2-file-upload/commit/22307d2))
40
- * **package:** angular ~2.0.1 stable release ([#425](https://github.com/valor-software/ng2-file-upload/issues/425)) ([3fec385](https://github.com/valor-software/ng2-file-upload/commit/3fec385))
41
- * **package:** updated to typescript 2 ([4fef496](https://github.com/valor-software/ng2-file-upload/commit/4fef496))
42
-
43
-
44
-
45
- <a name="1.1.0"></a>
46
- # [1.1.0](https://github.com/valor-software/ng2-file-upload/compare/v1.0.3...v1.1.0) (2016-09-21)
47
-
48
-
49
- ### Bug Fixes
50
-
51
- * **uploader:** Add the ability to upload files via PUT instead of POST ([#239](https://github.com/valor-software/ng2-file-upload/issues/239)) ([e068511](https://github.com/valor-software/ng2-file-upload/commit/e068511))
52
- * **zone.js:** error in Safari, Added Typings ([#221](https://github.com/valor-software/ng2-file-upload/issues/221)) ([db77e89](https://github.com/valor-software/ng2-file-upload/commit/db77e89))
53
-
54
-
55
- ### Features
56
-
57
- * **multipart:** Create disableMultipart option in FileUploader ([#224](https://github.com/valor-software/ng2-file-upload/issues/224)) ([22307d2](https://github.com/valor-software/ng2-file-upload/commit/22307d2))
58
- * **package:** updated to typescript 2 ([4fef496](https://github.com/valor-software/ng2-file-upload/commit/4fef496))
59
-
60
-
61
-
62
- <a name="1.0.3"></a>
63
- ## [1.0.3](https://github.com/valor-software/ng2-file-upload/compare/v1.0.2...v1.0.3) (2016-05-12)
64
-
65
-
66
-
67
- <a name="1.0.2"></a>
68
- ## 1.0.2 (2016-05-12)
69
-
70
-
71
- ### Bug Fixes
72
-
73
- * **upload:** merge fix and get filters fix ([ef6091c](https://github.com/valor-software/ng2-file-upload/commit/ef6091c))
74
-
75
-
76
- ### Chores
77
-
78
- * **build:** ng2 style guide applied ([aee69d8](https://github.com/valor-software/ng2-file-upload/commit/aee69d8))
79
-
80
-
81
- ### Features
82
-
83
- * **package:** upgrade to angular 2.0.0-rc.1 ([#176](https://github.com/valor-software/ng2-file-upload/issues/176)) ([13c5c35](https://github.com/valor-software/ng2-file-upload/commit/13c5c35)), closes [#180](https://github.com/valor-software/ng2-file-upload/issues/180)
84
-
85
-
86
- ### BREAKING CHANGES
87
-
88
- - directives and selectors renamed to ng2FileSelect and ng2FileDrop
89
-
90
-
91
-
package/README.md DELETED
@@ -1,64 +0,0 @@
1
- # ng2-file-upload [![npm version](https://badge.fury.io/js/ng2-file-upload.svg)](http://badge.fury.io/js/ng2-file-upload)
2
- Easy to use Angular2 directives for files upload ([demo](http://valor-software.github.io/ng2-file-upload/))
3
-
4
- Follow me [![twitter](https://img.shields.io/twitter/follow/valorkin.svg?style=social&label=%20valorkin)](https://twitter.com/valorkin) to be notified about new releases.
5
-
6
- [![Angular 2 Style Guide](https://mgechev.github.io/angular2-style-guide/images/badge.svg)](https://github.com/mgechev/angular2-style-guide)
7
- [![Build Status](https://travis-ci.org/valor-software/ng2-file-upload.svg?branch=master)](https://travis-ci.org/valor-software/ng2-file-upload)
8
- [![Code Climate](https://codeclimate.com/github/valor-software/ng2-file-upload/badges/gpa.svg)](https://codeclimate.com/github/valor-software/ng2-file-upload)
9
- [![Join the chat at https://gitter.im/valor-software/ng2-bootstrap](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/valor-software/ng2-bootstrap?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
10
- [![Dependency Status](https://david-dm.org/valor-software/ng2-file-upload.svg)](https://david-dm.org/valor-software/ng2-file-upload)
11
- [![devDependency Status](https://david-dm.org/valor-software/ng2-file-upload/dev-status.svg)](https://david-dm.org/valor-software/ng2-file-upload#info=devDependencies)
12
- [![Throughput Graph](https://graphs.waffle.io/valor-software/ng2-file-upload/throughput.svg)](https://waffle.io/valor-software/ng2-file-upload/metrics)
13
-
14
- ## Quick start
15
-
16
- 1. A recommended way to install ***ng2-file-upload*** is through [npm](https://www.npmjs.com/search?q=ng2-file-upload) package manager using the following command:
17
-
18
- `npm i ng2-file-upload --save`
19
-
20
- Alternatively, you can [download it in a ZIP file](https://github.com/valor-software/ng2-file-upload/archive/master.zip).
21
-
22
- 2. Currently `ng2-file-upload` contains two directives: `ng2-file-select` and `ng2-file-drop`. `ng2-file-select` is used for 'file-input' field of form and
23
- `ng2-file-drop` is used for area that will be used for dropping of file or files.
24
-
25
- 3. More information regarding using of ***ng2-file-upload*** is located in
26
- [demo](http://valor-software.github.io/ng2-file-upload/) and [demo sources](https://github.com/valor-software/ng2-file-upload/tree/master/demo).
27
-
28
- ## API for `ng2FileSelect`
29
-
30
- ### Properties
31
-
32
- - `uploader` - (`FileUploader`) - uploader object. See using in [demo](https://github.com/valor-software/ng2-file-upload/blob/master/demo/components/file-upload/simple-demo.ts)
33
-
34
- ## API for `ng2FileDrop`
35
-
36
- ### Properties
37
-
38
- - `uploader` - (`FileUploader`) - uploader object. See using in [demo](https://github.com/valor-software/ng2-file-upload/blob/master/demo/components/file-upload/simple-demo.ts)
39
-
40
- Parameters supported by this object:
41
-
42
- 1. `url` - URL of File Uploader's route
43
- 2. `authToken` - Auth token that will be applied as 'Authorization' header during file send.
44
- 3. `disableMultipart` - If 'true', disable using a multipart form for file upload and instead stream the file. Some APIs (e.g. Amazon S3) may expect the file to be streamed rather than sent via a form. Defaults to false.
45
- 4. `itemAlias` - item alias (form name redefenition)
46
-
47
- ### Events
48
-
49
- - `fileOver` - it fires during 'over' and 'out' events for Drop Area; returns `boolean`: `true` if file is over Drop Area, `false` in case of out.
50
- See using in [ts demo](https://github.com/valor-software/ng2-file-upload/blob/master/demo/components/file-upload/simple-demo.ts) and
51
- [html demo](https://github.com/valor-software/ng2-file-upload/blob/master/demo/components/file-upload/simple-demo.html)
52
-
53
- # Troubleshooting
54
-
55
- Please follow this guidelines when reporting bugs and feature requests:
56
-
57
- 1. Use [GitHub Issues](https://github.com/valor-software/ng2-file-upload/issues) board to report bugs and feature requests (not our email address)
58
- 2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it.
59
-
60
- Thanks for understanding!
61
-
62
- ### License
63
-
64
- The MIT License (see the [LICENSE](https://github.com/valor-software/ng2-file-upload/blob/master/LICENSE) file for the full text)