ng2-file-upload 1.3.0 → 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 (50) hide show
  1. package/bundles/ng2-file-upload.umd.js +2012 -1064
  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-type.class.d.ts +2 -1
  28. package/ng2-file-upload.d.ts +3 -0
  29. package/ng2-file-upload.metadata.json +1 -1
  30. package/package.json +16 -27
  31. package/CHANGELOG.md +0 -133
  32. package/LICENSE +0 -22
  33. package/README.md +0 -65
  34. package/file-upload/file-drop.directive.js +0 -112
  35. package/file-upload/file-drop.directive.metadata.json +0 -1
  36. package/file-upload/file-item.class.js +0 -126
  37. package/file-upload/file-item.class.metadata.json +0 -1
  38. package/file-upload/file-like-object.class.js +0 -27
  39. package/file-upload/file-like-object.class.metadata.json +0 -1
  40. package/file-upload/file-select.directive.js +0 -57
  41. package/file-upload/file-select.directive.metadata.json +0 -1
  42. package/file-upload/file-type.class.js +0 -163
  43. package/file-upload/file-type.class.metadata.json +0 -1
  44. package/file-upload/file-upload.module.js +0 -24
  45. package/file-upload/file-upload.module.metadata.json +0 -1
  46. package/file-upload/file-uploader.class.js +0 -404
  47. package/file-upload/file-uploader.class.metadata.json +0 -1
  48. package/index.js +0 -11
  49. package/index.metadata.json +0 -1
  50. package/ng2-file-upload.js +0 -5
@@ -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,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 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
1
4
  export * from './index';
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./index"}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./index"}]}]
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,32 +1,21 @@
1
1
  {
2
- "main": "bundles/ng2-file-upload.umd.js",
3
- "version": "1.3.0",
4
- "description": "Angular file upload directives",
5
- "module": "index.js",
6
- "typings": "index.d.ts",
7
- "keywords": [
8
- "angular2",
9
- "bootstrap",
10
- "angularjs",
11
- "twitter-bootstrap",
12
- "file-upload",
13
- "angular-file-upload"
14
- ],
15
- "author": {
16
- "name": "Vyacheslav Chub",
17
- "email": "vyacheslav.chub@valor-software.com"
18
- },
19
- "license": "MIT",
20
- "repository": {
21
- "type": "git",
22
- "url": "git+ssh://git@github.com/valor-software/ng2-file-upload.git"
23
- },
24
2
  "name": "ng2-file-upload",
3
+ "version": "1.4.0",
25
4
  "peerDependencies": {
26
- "@angular/common": "^2.3.1 || >=4.0.0",
27
- "@angular/core": "^2.3.1 || >=4.0.0"
5
+ "@angular/common": "*",
6
+ "@angular/core": "*"
28
7
  },
29
- "_id": "ng2-file-upload@1.3.0",
30
- "devDependencies": {},
31
- "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
+ }
32
21
  }
package/CHANGELOG.md DELETED
@@ -1,133 +0,0 @@
1
- <a name="1.3.0"></a>
2
- # [1.3.0](https://github.com/valor-software/ng2-file-upload/compare/v1.2.0...v1.3.0) (2017-11-25)
3
-
4
-
5
- ### Features
6
-
7
- * **file-upload:** Add response and function to modify the request body ([#901](https://github.com/valor-software/ng2-file-upload/pull/901))
8
- * **file-upload** add file type .zip ([#911](https://github.com/valor-software/ng2-file-upload/pull/911))
9
-
10
- ### Bug Fixes
11
- * **file-uploader** Update: setOptions ([#904](https://github.com/valor-software/ng2-file-upload/pull/904))
12
- * **docs** Fix correct path for isHTML5 option ([#844](https://github.com/valor-software/ng2-file-upload/pull/844))
13
- * **docs** Added onFileDrop() event to documentation ([#857](https://github.com/valor-software/ng2-file-upload/pull/857))
14
-
15
-
16
- <a name="1.2.1"></a>
17
- ## [1.2.1](https://github.com/valor-software/ng2-file-upload/compare/v1.2.0...v1.2.1) (2017-04-10)
18
-
19
-
20
- ### Features
21
-
22
- * **package:** relaxed peer dependencies to allow ng v4 ([#713](https://github.com/valor-software/ng2-file-upload/issues/713)) ([7704e0e](https://github.com/valor-software/ng2-file-upload/commit/7704e0e))
23
-
24
-
25
-
26
- <a name="1.2.0"></a>
27
- # [1.2.0](https://github.com/valor-software/ng2-file-upload/compare/v1.1.3-0...v1.2.0) (2017-01-17)
28
-
29
-
30
- ### Bug Fixes
31
-
32
- * **headers:** Add FileItem headers to XHR ([#553](https://github.com/valor-software/ng2-file-upload/issues/553)) ([e4a7099](https://github.com/valor-software/ng2-file-upload/commit/e4a7099)), closes [#552](https://github.com/valor-software/ng2-file-upload/issues/552)
33
-
34
-
35
- ### Features
36
-
37
- * **file-select:** Clear file select automatically ([#524](https://github.com/valor-software/ng2-file-upload/issues/524)) ([410efda](https://github.com/valor-software/ng2-file-upload/commit/410efda))
38
- * **fileUpload:** added additionalParameter ([#565](https://github.com/valor-software/ng2-file-upload/issues/565)) ([397de09](https://github.com/valor-software/ng2-file-upload/commit/397de09))
39
- * **package:** upgrade to ng v2.3+ ([#574](https://github.com/valor-software/ng2-file-upload/issues/574)) ([3cc6a99](https://github.com/valor-software/ng2-file-upload/commit/3cc6a99))
40
-
41
-
42
-
43
- <a name="1.1.3-0"></a>
44
- ## [1.1.3-0](https://github.com/valor-software/ng2-file-upload/compare/v1.1.2...v1.1.3-0) (2016-10-19)
45
-
46
-
47
- ### Bug Fixes
48
-
49
- * **typing:** added authTokenHeader property to options and file upload class ([b55c852](https://github.com/valor-software/ng2-file-upload/commit/b55c852))
50
-
51
-
52
- ### Features
53
-
54
- * **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)
55
- * **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))
56
-
57
-
58
-
59
- <a name="1.1.2"></a>
60
- ## [1.1.2](https://github.com/valor-software/ng2-file-upload/compare/v1.1.1...v1.1.2) (2016-10-17)
61
-
62
-
63
- ### Features
64
-
65
- * **package:** allow of ng2 v2.0.* and v2.*.* ([87395e6](https://github.com/valor-software/ng2-file-upload/commit/87395e6))
66
-
67
-
68
-
69
- <a name="1.1.1"></a>
70
- ## [1.1.1](https://github.com/valor-software/ng2-file-upload/compare/v1.0.3...v1.1.1) (2016-10-17)
71
-
72
-
73
- ### Bug Fixes
74
-
75
- * **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))
76
- * **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))
77
-
78
-
79
- ### Features
80
-
81
- * **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))
82
- * **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))
83
- * **package:** updated to typescript 2 ([4fef496](https://github.com/valor-software/ng2-file-upload/commit/4fef496))
84
-
85
-
86
-
87
- <a name="1.1.0"></a>
88
- # [1.1.0](https://github.com/valor-software/ng2-file-upload/compare/v1.0.3...v1.1.0) (2016-09-21)
89
-
90
-
91
- ### Bug Fixes
92
-
93
- * **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))
94
- * **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))
95
-
96
-
97
- ### Features
98
-
99
- * **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))
100
- * **package:** updated to typescript 2 ([4fef496](https://github.com/valor-software/ng2-file-upload/commit/4fef496))
101
-
102
-
103
-
104
- <a name="1.0.3"></a>
105
- ## [1.0.3](https://github.com/valor-software/ng2-file-upload/compare/v1.0.2...v1.0.3) (2016-05-12)
106
-
107
-
108
-
109
- <a name="1.0.2"></a>
110
- ## 1.0.2 (2016-05-12)
111
-
112
-
113
- ### Bug Fixes
114
-
115
- * **upload:** merge fix and get filters fix ([ef6091c](https://github.com/valor-software/ng2-file-upload/commit/ef6091c))
116
-
117
-
118
- ### Chores
119
-
120
- * **build:** ng2 style guide applied ([aee69d8](https://github.com/valor-software/ng2-file-upload/commit/aee69d8))
121
-
122
-
123
- ### Features
124
-
125
- * **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)
126
-
127
-
128
- ### BREAKING CHANGES
129
-
130
- - directives and selectors renamed to ng2FileSelect and ng2FileDrop
131
-
132
-
133
-
package/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2015-2017 Dmitriy Shekhovtsov <valorkin@gmail.com>
4
- Copyright (c) 2015-1017 Valor Software
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
package/README.md DELETED
@@ -1,65 +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) [![npm downloads](https://img.shields.io/npm/dm/ng2-file-upload.svg)](https://npmjs.org/ng2-file-upload)[![slack](https://ngx-slack.herokuapp.com/badge.svg)](https://ngx-slack.herokuapp.com)
2
- Easy to use Angular2 directives for files upload ([demo](http://valor-software.github.io/ng2-file-upload/))
3
-
4
- [![Angular 2 Style Guide](https://mgechev.github.io/angular2-style-guide/images/badge.svg)](https://github.com/mgechev/angular2-style-guide)
5
- [![Build Status](https://travis-ci.org/valor-software/ng2-file-upload.svg?branch=development)](https://travis-ci.org/valor-software/ng2-file-upload)
6
- [![Dependency Status](https://david-dm.org/valor-software/ng2-file-upload.svg)](https://david-dm.org/valor-software/ng2-file-upload)
7
-
8
- ## Quick start
9
-
10
- 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:
11
-
12
- `npm i ng2-file-upload --save`
13
-
14
- Alternatively, you can [download it in a ZIP file](https://github.com/valor-software/ng2-file-upload/archive/master.zip).
15
-
16
- 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
17
- `ng2-file-drop` is used for area that will be used for dropping of file or files.
18
-
19
- 3. More information regarding using of ***ng2-file-upload*** is located in
20
- [demo](http://valor-software.github.io/ng2-file-upload/) and [demo sources](https://github.com/valor-software/ng2-file-upload/tree/master/demo).
21
-
22
- ## API for `ng2FileSelect`
23
-
24
- ### Properties
25
-
26
- - `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)
27
-
28
- ### Events
29
- - `onFileSelected` - fires when files are selected and added to the uploader queue
30
-
31
- ## API for `ng2FileDrop`
32
-
33
- ### Properties
34
-
35
- - `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)
36
-
37
- Parameters supported by this object:
38
-
39
- 1. `url` - URL of File Uploader's route
40
- 2. `authToken` - Auth token that will be applied as 'Authorization' header during file send.
41
- 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.
42
- 4. `itemAlias` - item alias (form name redefenition)
43
- 5. `formatDataFunction` - Function to modify the request body. 'DisableMultipart' must be 'true' for this function to be called.
44
- 6. `formatDataFunctionIsAsync` - Informs if the function sent in 'formatDataFunction' is asynchronous. Defaults to false.
45
- 7. `parametersBeforeFiles` - States if additional parameters should be appended before or after the file. Defaults to false.
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
- - `onFileDrop` - it fires after a file has been dropped on a Drop Area; you can pass in `$event` to get the list of files that were dropped. i.e. `(onFileDrop)="dropped($event)"`
53
-
54
- # Troubleshooting
55
-
56
- Please follow this guidelines when reporting bugs and feature requests:
57
-
58
- 1. Use [GitHub Issues](https://github.com/valor-software/ng2-file-upload/issues) board to report bugs and feature requests (not our email address)
59
- 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.
60
-
61
- Thanks for understanding!
62
-
63
- ### License
64
-
65
- The MIT License (see the [LICENSE](https://github.com/valor-software/ng2-file-upload/blob/master/LICENSE) file for the full text)
@@ -1,112 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var core_1 = require("@angular/core");
12
- var file_uploader_class_1 = require("./file-uploader.class");
13
- var FileDropDirective = (function () {
14
- function FileDropDirective(element) {
15
- this.fileOver = new core_1.EventEmitter();
16
- this.onFileDrop = new core_1.EventEmitter();
17
- this.element = element;
18
- }
19
- FileDropDirective.prototype.getOptions = function () {
20
- return this.uploader.options;
21
- };
22
- FileDropDirective.prototype.getFilters = function () {
23
- return {};
24
- };
25
- FileDropDirective.prototype.onDrop = function (event) {
26
- var transfer = this._getTransfer(event);
27
- if (!transfer) {
28
- return;
29
- }
30
- var options = this.getOptions();
31
- var filters = this.getFilters();
32
- this._preventAndStop(event);
33
- this.uploader.addToQueue(transfer.files, options, filters);
34
- this.fileOver.emit(false);
35
- this.onFileDrop.emit(transfer.files);
36
- };
37
- FileDropDirective.prototype.onDragOver = function (event) {
38
- var transfer = this._getTransfer(event);
39
- if (!this._haveFiles(transfer.types)) {
40
- return;
41
- }
42
- transfer.dropEffect = 'copy';
43
- this._preventAndStop(event);
44
- this.fileOver.emit(true);
45
- };
46
- FileDropDirective.prototype.onDragLeave = function (event) {
47
- if (this.element) {
48
- if (event.currentTarget === this.element[0]) {
49
- return;
50
- }
51
- }
52
- this._preventAndStop(event);
53
- this.fileOver.emit(false);
54
- };
55
- FileDropDirective.prototype._getTransfer = function (event) {
56
- return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;
57
- };
58
- FileDropDirective.prototype._preventAndStop = function (event) {
59
- event.preventDefault();
60
- event.stopPropagation();
61
- };
62
- FileDropDirective.prototype._haveFiles = function (types) {
63
- if (!types) {
64
- return false;
65
- }
66
- if (types.indexOf) {
67
- return types.indexOf('Files') !== -1;
68
- }
69
- else if (types.contains) {
70
- return types.contains('Files');
71
- }
72
- else {
73
- return false;
74
- }
75
- };
76
- return FileDropDirective;
77
- }());
78
- __decorate([
79
- core_1.Input(),
80
- __metadata("design:type", file_uploader_class_1.FileUploader)
81
- ], FileDropDirective.prototype, "uploader", void 0);
82
- __decorate([
83
- core_1.Output(),
84
- __metadata("design:type", core_1.EventEmitter)
85
- ], FileDropDirective.prototype, "fileOver", void 0);
86
- __decorate([
87
- core_1.Output(),
88
- __metadata("design:type", core_1.EventEmitter)
89
- ], FileDropDirective.prototype, "onFileDrop", void 0);
90
- __decorate([
91
- core_1.HostListener('drop', ['$event']),
92
- __metadata("design:type", Function),
93
- __metadata("design:paramtypes", [Object]),
94
- __metadata("design:returntype", void 0)
95
- ], FileDropDirective.prototype, "onDrop", null);
96
- __decorate([
97
- core_1.HostListener('dragover', ['$event']),
98
- __metadata("design:type", Function),
99
- __metadata("design:paramtypes", [Object]),
100
- __metadata("design:returntype", void 0)
101
- ], FileDropDirective.prototype, "onDragOver", null);
102
- __decorate([
103
- core_1.HostListener('dragleave', ['$event']),
104
- __metadata("design:type", Function),
105
- __metadata("design:paramtypes", [Object]),
106
- __metadata("design:returntype", Object)
107
- ], FileDropDirective.prototype, "onDragLeave", null);
108
- FileDropDirective = __decorate([
109
- core_1.Directive({ selector: '[ng2FileDrop]' }),
110
- __metadata("design:paramtypes", [core_1.ElementRef])
111
- ], FileDropDirective);
112
- exports.FileDropDirective = FileDropDirective;
@@ -1 +0,0 @@
1
- [{"__symbolic":"module","version":3,"metadata":{"FileDropDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[ng2FileDrop]"}]}],"members":{"uploader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"fileOver":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"onFileDrop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"getOptions":[{"__symbolic":"method"}],"getFilters":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["drop",["$event"]]}]}],"onDragOver":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["dragover",["$event"]]}]}],"onDragLeave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["dragleave",["$event"]]}]}],"_getTransfer":[{"__symbolic":"method"}],"_preventAndStop":[{"__symbolic":"method"}],"_haveFiles":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"FileDropDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[ng2FileDrop]"}]}],"members":{"uploader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"fileOver":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"onFileDrop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"getOptions":[{"__symbolic":"method"}],"getFilters":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["drop",["$event"]]}]}],"onDragOver":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["dragover",["$event"]]}]}],"onDragLeave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["dragleave",["$event"]]}]}],"_getTransfer":[{"__symbolic":"method"}],"_preventAndStop":[{"__symbolic":"method"}],"_haveFiles":[{"__symbolic":"method"}]}}}}]