diff --git a/types/dropzone/dropzone-tests.ts b/types/dropzone/dropzone-tests.ts
index f52cbc303e..53cedba333 100644
--- a/types/dropzone/dropzone-tests.ts
+++ b/types/dropzone/dropzone-tests.ts
@@ -1,9 +1,13 @@
const dropzoneFromString = new Dropzone(".test");
const dropzoneFromElement = new Dropzone(document.getElementById("test"));
-const dropzoneRenameFunction = function (name:string):string {
- return name + 'new';
+const dropzoneRenameFunction = function (name: string): string {
+ return name + 'new';
};
+Dropzone.createElement('
');
+Dropzone.isBrowserSupported();
+console.log(Dropzone.instances.length);
+
const dropzoneWithOptions = new Dropzone(".test", {
url: "/some/url",
method: "post",
@@ -14,8 +18,14 @@ const dropzoneWithOptions = new Dropzone(".test", {
paramName: "file",
createImageThumbnails: true,
maxThumbnailFilesize: 1024,
- thumbnailWidth: 50,
- thumbnailHeight: 50,
+ thumbnailWidth: 120,
+ thumbnailHeight: 120,
+ thumbnailMethod: 'crop',
+ resizeWidth: 1024,
+ resizeHeight: 1024,
+ resizeMimeType: 'image.jpeg',
+ resizeQuality: .8,
+ resizeMethod: 'contain',
filesizeBase: 1000,
maxFiles: 100,
params: {
@@ -47,7 +57,7 @@ const dropzoneWithOptions = new Dropzone(".test", {
dictRemoveFileConfirmation: "",
dictMaxFilesExceeded: "",
- accept: (file:Dropzone.DropzoneFile, done:(error?:string|Error) => void) => {
+ accept: (file: Dropzone.DropzoneFile, done: (error?: string | Error) => void) => {
if (file.accepted) {
file.previewElement.classList.add("accepted");
file.previewTemplate.classList.add("accepted");
@@ -61,7 +71,7 @@ const dropzoneWithOptions = new Dropzone(".test", {
init: () => console.log("Initialized"),
forceFallback: false,
fallback: () => console.log("Fallback"),
- resize: (file:Dropzone.DropzoneFile) => ({
+ resize: (file: Dropzone.DropzoneFile, width: 120, height: 120, resizeMethod: 'contain') => ({
srcX: 0,
srcY: 0,
trgX: 10,
@@ -70,54 +80,52 @@ const dropzoneWithOptions = new Dropzone(".test", {
srcHeight: 100,
trgWidth: 50,
trgHeight: 50,
- optWidth: 50,
- optHeight: 50
}),
- drop: (e:DragEvent) => console.log("Drop"),
- dragstart: (e:DragEvent) => console.log("Dragstart"),
- dragend: (e:DragEvent) => console.log("Dragend"),
- dragenter: (e:DragEvent) => console.log("Dragenter"),
- dragover: (e:DragEvent) => console.log("Dragover"),
- dragleave: (e:DragEvent) => console.log("Dragleave"),
- paste: (e:DragEvent) => console.log("Paste"),
+ drop: (e: DragEvent) => console.log("Drop"),
+ dragstart: (e: DragEvent) => console.log("Dragstart"),
+ dragend: (e: DragEvent) => console.log("Dragend"),
+ dragenter: (e: DragEvent) => console.log("Dragenter"),
+ dragover: (e: DragEvent) => console.log("Dragover"),
+ dragleave: (e: DragEvent) => console.log("Dragleave"),
+ paste: (e: DragEvent) => console.log("Paste"),
reset: () => console.log("Reset"),
- addedfile: (file:Dropzone.DropzoneFile) => console.log("Addedfile"),
- addedfiles: (files:Dropzone.DropzoneFile[]) => console.log("Addedfiles"),
- removedfile: (file:Dropzone.DropzoneFile) => console.log("Removedfile"),
- thumbnail: (file:Dropzone.DropzoneFile, dataUrl:string) => console.log("Thumbnail"),
+ addedfile: (file: Dropzone.DropzoneFile) => console.log("Addedfile"),
+ addedfiles: (files: Dropzone.DropzoneFile[]) => console.log("Addedfiles"),
+ removedfile: (file: Dropzone.DropzoneFile) => console.log("Removedfile"),
+ thumbnail: (file: Dropzone.DropzoneFile, dataUrl: string) => console.log("Thumbnail"),
- error: (file:Dropzone.DropzoneFile, message:string|Error) => console.log("Error"),
- errormultiple: (files:Dropzone.DropzoneFile[], message:string|Error) => console.log("Errormultiple"),
+ error: (file: Dropzone.DropzoneFile, message: string | Error) => console.log("Error"),
+ errormultiple: (files: Dropzone.DropzoneFile[], message: string | Error) => console.log("Errormultiple"),
- processing: (file:Dropzone.DropzoneFile) => console.log("Processing"),
- processingmultiple: (files:Dropzone.DropzoneFile[]) => console.log("Processingmultiple"),
+ processing: (file: Dropzone.DropzoneFile) => console.log("Processing"),
+ processingmultiple: (files: Dropzone.DropzoneFile[]) => console.log("Processingmultiple"),
- uploadprogress: (file:Dropzone.DropzoneFile, progress:number, bytesSent:number) => console.log("Uploadprogress"),
- totaluploadprogress: (totalProgress:number, totalBytes:number, totalBytesSent:number) => console.log("Totaluploadprogress"),
+ uploadprogress: (file: Dropzone.DropzoneFile, progress: number, bytesSent: number) => console.log("Uploadprogress"),
+ totaluploadprogress: (totalProgress: number, totalBytes: number, totalBytesSent: number) => console.log("Totaluploadprogress"),
- sending: (file:Dropzone.DropzoneFile, xhr:XMLHttpRequest, formData:{}) => console.log("Sending"),
- sendingmultiple: (files:Dropzone.DropzoneFile[], xhr:XMLHttpRequest, formData:{}) => console.log("Sendingmultiple"),
+ sending: (file: Dropzone.DropzoneFile, xhr: XMLHttpRequest, formData: {}) => console.log("Sending"),
+ sendingmultiple: (files: Dropzone.DropzoneFile[], xhr: XMLHttpRequest, formData: {}) => console.log("Sendingmultiple"),
- success: (file:Dropzone.DropzoneFile) => console.log("Success"),
- successmultiple: (files:Dropzone.DropzoneFile[]) => console.log("Successmultiple"),
+ success: (file: Dropzone.DropzoneFile) => console.log("Success"),
+ successmultiple: (files: Dropzone.DropzoneFile[]) => console.log("Successmultiple"),
- canceled: (file:Dropzone.DropzoneFile) => console.log("Canceled"),
- canceledmultiple: (file:Dropzone.DropzoneFile[]) => console.log("Canceledmultiple"),
+ canceled: (file: Dropzone.DropzoneFile) => console.log("Canceled"),
+ canceledmultiple: (file: Dropzone.DropzoneFile[]) => console.log("Canceledmultiple"),
- complete: (file:Dropzone.DropzoneFile) => console.log("Complete"),
- completemultiple: (file:Dropzone.DropzoneFile[]) => console.log("Completemultiple"),
+ complete: (file: Dropzone.DropzoneFile) => console.log("Complete"),
+ completemultiple: (file: Dropzone.DropzoneFile[]) => console.log("Completemultiple"),
- maxfilesexceeded: (file:Dropzone.DropzoneFile) => console.log("Maxfilesexceeded"),
- maxfilesreached: (files:Dropzone.DropzoneFile[]) => console.log("Maxfilesreached"),
+ maxfilesexceeded: (file: Dropzone.DropzoneFile) => console.log("Maxfilesexceeded"),
+ maxfilesreached: (files: Dropzone.DropzoneFile[]) => console.log("Maxfilesreached"),
queuecomplete: () => console.log("Queuecomplete"),
previewTemplate: "",
});
-var dropzoneWithOptionsVariations:Dropzone;
+var dropzoneWithOptionsVariations: Dropzone;
dropzoneWithOptionsVariations = new Dropzone(".test", {
clickable: ".test"
});
@@ -135,10 +143,10 @@ dropzoneWithOptionsVariations = new Dropzone(".test", {
});
dropzoneWithOptionsVariations = new Dropzone(".test", {
- success: (file:Dropzone.DropzoneFile, response:Object) => console.log(file, response)
+ success: (file: Dropzone.DropzoneFile, response: Object) => console.log(file, response)
});
dropzoneWithOptionsVariations = new Dropzone(".test", {
- success: (file:Dropzone.DropzoneFile, response:string) => console.log(file, response)
+ success: (file: Dropzone.DropzoneFile, response: string) => console.log(file, response)
});
const dropzone = new Dropzone(".test");
@@ -167,19 +175,34 @@ dropzone.enqueueFile(firstFile);
dropzone.processFile(firstFile);
dropzone.uploadFile(firstFile);
dropzone.cancelUpload(firstFile);
-dropzone.createThumbnail(firstFile, () => {
+
+dropzone.createThumbnail(firstFile);
+dropzone.createThumbnail(firstFile, dropzone.defaultOptions.resizeWidth);
+dropzone.createThumbnail(firstFile, dropzone.defaultOptions.resizeWidth, dropzone.defaultOptions.resizeHeight);
+dropzone.createThumbnail(firstFile, dropzone.defaultOptions.resizeWidth, dropzone.defaultOptions.resizeHeight, dropzone.defaultOptions.resizeMethod);
+dropzone.createThumbnail(firstFile, dropzone.defaultOptions.resizeWidth, dropzone.defaultOptions.resizeHeight, dropzone.defaultOptions.resizeMethod, true);
+dropzone.createThumbnail(firstFile, dropzone.defaultOptions.resizeWidth, dropzone.defaultOptions.resizeHeight, dropzone.defaultOptions.resizeMethod, true, () => {
console.log("createThumbnail")
});
-dropzone.createThumbnailFromUrl(firstFile, "/some/url", () => {
+
+dropzone.createThumbnailFromUrl(firstFile);
+dropzone.createThumbnailFromUrl(firstFile, dropzone.defaultOptions.resizeWidth);
+dropzone.createThumbnailFromUrl(firstFile, dropzone.defaultOptions.resizeWidth, dropzone.defaultOptions.resizeHeight);
+dropzone.createThumbnailFromUrl(firstFile, dropzone.defaultOptions.resizeWidth, dropzone.defaultOptions.resizeHeight, dropzone.defaultOptions.resizeMethod);
+dropzone.createThumbnailFromUrl(firstFile, dropzone.defaultOptions.resizeWidth, dropzone.defaultOptions.resizeHeight, dropzone.defaultOptions.resizeMethod, true);
+dropzone.createThumbnailFromUrl(firstFile, dropzone.defaultOptions.resizeWidth, dropzone.defaultOptions.resizeHeight, dropzone.defaultOptions.resizeMethod, true, () => {
console.log("createThumbnailFromUrl")
});
-dropzone.accept(firstFile, (e:string|Error) => {
+dropzone.accept(firstFile, (e: string | Error) => {
console.log(e);
});
const acceptedFiles = dropzone.getAcceptedFiles();
dropzone.processFiles(acceptedFiles);
+const addedFiles = dropzone.getAddedFiles();
+dropzone.processFiles(addedFiles);
+
const rejectedFiles = dropzone.getRejectedFiles();
dropzone.enqueueFiles(rejectedFiles);
@@ -192,12 +215,18 @@ dropzone.processFiles(uploadingFiles);
const activeFiles = dropzone.getActiveFiles();
dropzone.processFiles(activeFiles);
-const addedFiles = dropzone.getFilesWithStatus(Dropzone.ADDED);
-dropzone.processFiles(addedFiles);
+const getFileWithStatusAdded = dropzone.getFilesWithStatus(Dropzone.ADDED);
+dropzone.processFiles(getFileWithStatusAdded);
dropzone.processQueue();
dropzone.removeAllFiles(true);
+dropzone.resizeImage(firstFile);
+dropzone.resizeImage(firstFile, 120);
+dropzone.resizeImage(firstFile, 120, 120);
+dropzone.resizeImage(firstFile, 120, 120, 'contain');
+dropzone.resizeImage(firstFile, 120, 120, 'contain', function () { });
+
dropzone
.on("drop", () => {
console.count('drop');
@@ -287,9 +316,9 @@ dropzone
console.count('queuecomplete');
});
- dropzone.off("drop", () => {
- console.count('drop');
- })
+dropzone.off("drop", () => {
+ console.count('drop');
+})
.off("dragstart")
.off();
diff --git a/types/dropzone/index.d.ts b/types/dropzone/index.d.ts
index 703172072f..18a70ca7fb 100644
--- a/types/dropzone/index.d.ts
+++ b/types/dropzone/index.d.ts
@@ -1,6 +1,6 @@
-// Type definitions for Dropzone 4.3.0
+// Type definitions for Dropzone 5.0.0
// Project: http://www.dropzonejs.com/
-// Definitions by: Natan Vivo , Andy Hawkins , Vasya Aksyonov , Simon Huber , Sebastiaan de Rooij
+// Definitions by: Natan Vivo , Andy Hawkins , Vasya Aksyonov , Simon Huber , Sebastiaan de Rooij , Ted Bicknell
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
@@ -8,16 +8,14 @@
declare namespace Dropzone {
export interface DropzoneResizeInfo {
- srcX?:number;
- srcY?:number;
- trgX?:number;
- trgY?:number;
- srcWidth?:number;
- srcHeight?:number;
- trgWidth?:number;
- trgHeight?:number;
- optWidth?:number;
- optHeight?:number;
+ srcX?: number;
+ srcY?: number;
+ trgX?: number;
+ trgY?: number;
+ srcWidth?: number;
+ srcHeight?: number;
+ trgWidth?: number;
+ trgHeight?: number;
}
export interface DropzoneFile extends File {
@@ -41,18 +39,24 @@ declare namespace Dropzone {
maxThumbnailFilesize?: number;
thumbnailWidth?: number;
thumbnailHeight?: number;
+ thumbnailMethod?: string;
+ resizeWidth?: number;
+ resizeHeight?: number;
+ resizeMimeType?: string;
+ resizeQuality?: number;
+ resizeMethod?: string;
filesizeBase?: number;
maxFiles?: number;
params?: {};
headers?: {};
- clickable?: boolean|string|HTMLElement|(string|HTMLElement)[];
+ clickable?: boolean | string | HTMLElement | (string | HTMLElement)[];
ignoreHiddenFiles?: boolean;
acceptedFiles?: string;
- renameFilename?(name:string): string;
+ renameFilename?(name: string): string;
autoProcessQueue?: boolean;
autoQueue?: boolean;
addRemoveLinks?: boolean;
- previewsContainer?: boolean|string|HTMLElement;
+ previewsContainer?: boolean | string | HTMLElement;
hiddenInputContainer?: HTMLElement;
capture?: string;
@@ -68,209 +72,225 @@ declare namespace Dropzone {
dictRemoveFileConfirmation?: string;
dictMaxFilesExceeded?: string;
- accept?(file:DropzoneFile, done:(error?:string|Error) => void):void;
- init?():void;
+ accept?(file: DropzoneFile, done: (error?: string | Error) => void): void;
+ init?(): void;
forceFallback?: boolean;
- fallback?():void;
- resize?(file:DropzoneFile):DropzoneResizeInfo;
+ fallback?(): void;
+ resize?(file: DropzoneFile, width?: number, height?: number, resizeMethod?: string): DropzoneResizeInfo;
- drop?(e:DragEvent):void;
- dragstart?(e:DragEvent):void;
- dragend?(e:DragEvent):void;
- dragenter?(e:DragEvent):void;
- dragover?(e:DragEvent):void;
- dragleave?(e:DragEvent):void;
- paste?(e:DragEvent):void;
+ drop?(e: DragEvent): void;
+ dragstart?(e: DragEvent): void;
+ dragend?(e: DragEvent): void;
+ dragenter?(e: DragEvent): void;
+ dragover?(e: DragEvent): void;
+ dragleave?(e: DragEvent): void;
+ paste?(e: DragEvent): void;
- reset?():void;
+ reset?(): void;
- addedfile?(file:DropzoneFile):void;
- addedfiles?(files:DropzoneFile[]):void;
- removedfile?(file:DropzoneFile):void;
- thumbnail?(file:DropzoneFile, dataUrl:string):void;
+ addedfile?(file: DropzoneFile): void;
+ addedfiles?(files: DropzoneFile[]): void;
+ removedfile?(file: DropzoneFile): void;
+ thumbnail?(file: DropzoneFile, dataUrl: string): void;
- error?(file:DropzoneFile, message:string|Error, xhr:XMLHttpRequest):void;
- errormultiple?(files:DropzoneFile[], message:string|Error, xhr:XMLHttpRequest):void;
+ error?(file: DropzoneFile, message: string | Error, xhr: XMLHttpRequest): void;
+ errormultiple?(files: DropzoneFile[], message: string | Error, xhr: XMLHttpRequest): void;
- processing?(file:DropzoneFile):void;
- processingmultiple?(files:DropzoneFile[]):void;
+ processing?(file: DropzoneFile): void;
+ processingmultiple?(files: DropzoneFile[]): void;
- uploadprogress?(file:DropzoneFile, progress:number, bytesSent:number):void;
- totaluploadprogress?(totalProgress:number, totalBytes:number, totalBytesSent:number):void;
+ uploadprogress?(file: DropzoneFile, progress: number, bytesSent: number): void;
+ totaluploadprogress?(totalProgress: number, totalBytes: number, totalBytesSent: number): void;
- sending?(file:DropzoneFile, xhr:XMLHttpRequest, formData:FormData):void;
- sendingmultiple?(files:DropzoneFile[], xhr:XMLHttpRequest, formData:FormData):void;
+ sending?(file: DropzoneFile, xhr: XMLHttpRequest, formData: FormData): void;
+ sendingmultiple?(files: DropzoneFile[], xhr: XMLHttpRequest, formData: FormData): void;
- success?(file: DropzoneFile, response: Object|string): void;
- successmultiple?(files:DropzoneFile[], responseText:string):void;
+ success?(file: DropzoneFile, response: Object | string): void;
+ successmultiple?(files: DropzoneFile[], responseText: string): void;
- canceled?(file:DropzoneFile):void;
- canceledmultiple?(file:DropzoneFile[]):void;
+ canceled?(file: DropzoneFile): void;
+ canceledmultiple?(file: DropzoneFile[]): void;
- complete?(file:DropzoneFile):void;
- completemultiple?(file:DropzoneFile[]):void;
+ complete?(file: DropzoneFile): void;
+ completemultiple?(file: DropzoneFile[]): void;
- maxfilesexceeded?(file:DropzoneFile):void;
- maxfilesreached?(files:DropzoneFile[]):void;
- queuecomplete?():void;
+ maxfilesexceeded?(file: DropzoneFile): void;
+ maxfilesreached?(files: DropzoneFile[]): void;
+ queuecomplete?(): void;
previewTemplate?: string;
}
}
declare class Dropzone {
- constructor(container:string|HTMLElement, options?:Dropzone.DropzoneOptions);
+ constructor(container: string | HTMLElement, options?: Dropzone.DropzoneOptions);
- static autoDiscover:boolean;
- static options:any;
- static confirm:(question:string, accepted:() => void, rejected?:() => void) => void;
+ static autoDiscover: boolean;
+ static options: any;
+ static confirm: (question: string, accepted: () => void, rejected?: () => void) => void;
+ static createElement(string: string): HTMLElement;
+ static isBrowserSupported(): boolean;
+ static instances: Dropzone[];
- static ADDED:string;
- static QUEUED:string;
- static ACCEPTED:string;
- static UPLOADING:string;
- static PROCESSING:string;
- static CANCELED:string;
- static ERROR:string;
- static SUCCESS:string;
+ static ADDED: string;
+ static QUEUED: string;
+ static ACCEPTED: string;
+ static UPLOADING: string;
+ static PROCESSING: string;
+ static CANCELED: string;
+ static ERROR: string;
+ static SUCCESS: string;
- files:Dropzone.DropzoneFile[];
+ files: Dropzone.DropzoneFile[];
+ defaultOptions: Dropzone.DropzoneOptions;
- enable():void;
+ enable(): void;
- disable():void;
+ disable(): void;
- destroy():Dropzone;
+ destroy(): Dropzone;
- addFile(file:Dropzone.DropzoneFile):void;
+ addFile(file: Dropzone.DropzoneFile): void;
- removeFile(file:Dropzone.DropzoneFile):void;
+ removeFile(file: Dropzone.DropzoneFile): void;
- removeAllFiles(cancelIfNecessary?:boolean):void;
+ removeAllFiles(cancelIfNecessary?: boolean): void;
- processQueue():void;
+ resizeImage(file: Dropzone.DropzoneFile, width?: number, height?: number, resizeMethod?: string, callback?: (...args: any[]) => void): void;
- cancelUpload(file:Dropzone.DropzoneFile):void;
+ processQueue(): void;
- processFiles(files:Dropzone.DropzoneFile[]):void;
+ cancelUpload(file: Dropzone.DropzoneFile): void;
- processFile(file:Dropzone.DropzoneFile):void;
+ createThumbnail(file: Dropzone.DropzoneFile, width?: number, height?: number, resizeMethod?: string, fixOrientation?: boolean, callback?: (...args: any[]) => void): any;
- uploadFile(file:Dropzone.DropzoneFile):void;
+ createThumbnailFromUrl(file: Dropzone.DropzoneFile, width?: number, height?: number, resizeMethod?: string, fixOrientation?: boolean, callback?: (...args: any[]) => void, crossOrigin?: string): any;
- getAcceptedFiles():Dropzone.DropzoneFile[];
+ processFiles(files: Dropzone.DropzoneFile[]): void;
- getRejectedFiles():Dropzone.DropzoneFile[];
+ processFile(file: Dropzone.DropzoneFile): void;
- getQueuedFiles():Dropzone.DropzoneFile[];
+ uploadFile(file: Dropzone.DropzoneFile): void;
- getUploadingFiles():Dropzone.DropzoneFile[];
+ uploadFiles(files: Dropzone.DropzoneFile[]): void;
- accept(file:Dropzone.DropzoneFile, done:(error?:string|Error) => void):void;
+ getAcceptedFiles(): Dropzone.DropzoneFile[];
- getActiveFiles():Dropzone.DropzoneFile[];
+ getActiveFiles(): Dropzone.DropzoneFile[];
- getFilesWithStatus(status:string):Dropzone.DropzoneFile[];
+ getAddedFiles(): Dropzone.DropzoneFile[];
- enqueueFile(file:Dropzone.DropzoneFile):void;
+ getRejectedFiles(): Dropzone.DropzoneFile[];
- enqueueFiles(file:Dropzone.DropzoneFile[]):void;
+ getQueuedFiles(): Dropzone.DropzoneFile[];
- createThumbnail(file:Dropzone.DropzoneFile, callback?:(...args:any[]) => void):any;
+ getUploadingFiles(): Dropzone.DropzoneFile[];
- createThumbnailFromUrl(file:Dropzone.DropzoneFile, url:string, callback?:(...args:any[]) => void):any;
+ accept(file: Dropzone.DropzoneFile, done: (error?: string | Error) => void): void;
- on(eventName:string, callback:(...args:any[]) => void):Dropzone;
+ getActiveFiles(): Dropzone.DropzoneFile[];
+
+ getFilesWithStatus(status: string): Dropzone.DropzoneFile[];
+
+ enqueueFile(file: Dropzone.DropzoneFile): void;
+
+ enqueueFiles(file: Dropzone.DropzoneFile[]): void;
+
+ createThumbnail(file: Dropzone.DropzoneFile, callback?: (...args: any[]) => void): any;
+
+ createThumbnailFromUrl(file: Dropzone.DropzoneFile, url: string, callback?: (...args: any[]) => void): any;
+
+ on(eventName: string, callback: (...args: any[]) => void): Dropzone;
off(): Dropzone;
- off(eventName:string, callback?:(...args:any[]) => void):Dropzone;
+ off(eventName: string, callback?: (...args: any[]) => void): Dropzone;
- emit(eventName:string, ...args:any[]):Dropzone;
+ emit(eventName: string, ...args: any[]): Dropzone;
- on(eventName:"drop", callback:(e:DragEvent) => any):Dropzone;
- on(eventName:"dragstart", callback:(e:DragEvent) => any):Dropzone;
- on(eventName:"dragend", callback:(e:DragEvent) => any):Dropzone;
- on(eventName:"dragenter", callback:(e:DragEvent) => any):Dropzone;
- on(eventName:"dragover", callback:(e:DragEvent) => any):Dropzone;
- on(eventName:"dragleave", callback:(e:DragEvent) => any):Dropzone;
- on(eventName:"paste", callback:(e:DragEvent) => any):Dropzone;
+ on(eventName: "drop", callback: (e: DragEvent) => any): Dropzone;
+ on(eventName: "dragstart", callback: (e: DragEvent) => any): Dropzone;
+ on(eventName: "dragend", callback: (e: DragEvent) => any): Dropzone;
+ on(eventName: "dragenter", callback: (e: DragEvent) => any): Dropzone;
+ on(eventName: "dragover", callback: (e: DragEvent) => any): Dropzone;
+ on(eventName: "dragleave", callback: (e: DragEvent) => any): Dropzone;
+ on(eventName: "paste", callback: (e: DragEvent) => any): Dropzone;
- on(eventName:"reset"):Dropzone;
+ on(eventName: "reset"): Dropzone;
- on(eventName:"addedfile", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
- on(eventName:"addedfiles", callback:(files:Dropzone.DropzoneFile[]) => any):Dropzone;
- on(eventName:"removedfile", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
- on(eventName:"thumbnail", callback:(file:Dropzone.DropzoneFile, dataUrl:string) => any):Dropzone;
+ on(eventName: "addedfile", callback: (file: Dropzone.DropzoneFile) => any): Dropzone;
+ on(eventName: "addedfiles", callback: (files: Dropzone.DropzoneFile[]) => any): Dropzone;
+ on(eventName: "removedfile", callback: (file: Dropzone.DropzoneFile) => any): Dropzone;
+ on(eventName: "thumbnail", callback: (file: Dropzone.DropzoneFile, dataUrl: string) => any): Dropzone;
- on(eventName:"error", callback:(file:Dropzone.DropzoneFile, message:string|Error) => any):Dropzone;
- on(eventName:"errormultiple", callback:(files:Dropzone.DropzoneFile[], message:string|Error) => any):Dropzone;
+ on(eventName: "error", callback: (file: Dropzone.DropzoneFile, message: string | Error) => any): Dropzone;
+ on(eventName: "errormultiple", callback: (files: Dropzone.DropzoneFile[], message: string | Error) => any): Dropzone;
- on(eventName:"processing", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
- on(eventName:"processingmultiple", callback:(files:Dropzone.DropzoneFile[]) => any):Dropzone;
+ on(eventName: "processing", callback: (file: Dropzone.DropzoneFile) => any): Dropzone;
+ on(eventName: "processingmultiple", callback: (files: Dropzone.DropzoneFile[]) => any): Dropzone;
- on(eventName:"uploadprogress", callback:(file:Dropzone.DropzoneFile, progress:number, bytesSent:number) => any):Dropzone;
- on(eventName:"totaluploadprogress", callback:(totalProgress:number, totalBytes:number, totalBytesSent:number) => any):Dropzone;
+ on(eventName: "uploadprogress", callback: (file: Dropzone.DropzoneFile, progress: number, bytesSent: number) => any): Dropzone;
+ on(eventName: "totaluploadprogress", callback: (totalProgress: number, totalBytes: number, totalBytesSent: number) => any): Dropzone;
- on(eventName:"sending", callback:(file:Dropzone.DropzoneFile, xhr:XMLHttpRequest, formData:FormData) => any):Dropzone;
- on(eventName:"sendingmultiple", callback:(files:Dropzone.DropzoneFile[], xhr:XMLHttpRequest, formData:FormData) => any):Dropzone;
+ on(eventName: "sending", callback: (file: Dropzone.DropzoneFile, xhr: XMLHttpRequest, formData: FormData) => any): Dropzone;
+ on(eventName: "sendingmultiple", callback: (files: Dropzone.DropzoneFile[], xhr: XMLHttpRequest, formData: FormData) => any): Dropzone;
- on(eventName:"success", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
- on(eventName:"successmultiple", callback:(files:Dropzone.DropzoneFile[]) => any):Dropzone;
+ on(eventName: "success", callback: (file: Dropzone.DropzoneFile) => any): Dropzone;
+ on(eventName: "successmultiple", callback: (files: Dropzone.DropzoneFile[]) => any): Dropzone;
- on(eventName:"canceled", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
- on(eventName:"canceledmultiple", callback:(file:Dropzone.DropzoneFile[]) => any):Dropzone;
+ on(eventName: "canceled", callback: (file: Dropzone.DropzoneFile) => any): Dropzone;
+ on(eventName: "canceledmultiple", callback: (file: Dropzone.DropzoneFile[]) => any): Dropzone;
- on(eventName:"complete", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
- on(eventName:"completemultiple", callback:(file:Dropzone.DropzoneFile[]) => any):Dropzone;
+ on(eventName: "complete", callback: (file: Dropzone.DropzoneFile) => any): Dropzone;
+ on(eventName: "completemultiple", callback: (file: Dropzone.DropzoneFile[]) => any): Dropzone;
- on(eventName:"maxfilesexceeded", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
- on(eventName:"maxfilesreached", callback:(files:Dropzone.DropzoneFile[]) => any):Dropzone;
- on(eventName:"queuecomplete"):Dropzone;
+ on(eventName: "maxfilesexceeded", callback: (file: Dropzone.DropzoneFile) => any): Dropzone;
+ on(eventName: "maxfilesreached", callback: (files: Dropzone.DropzoneFile[]) => any): Dropzone;
+ on(eventName: "queuecomplete"): Dropzone;
- emit(eventName:"drop", e:DragEvent):Dropzone;
- emit(eventName:"dragstart", e:DragEvent):Dropzone;
- emit(eventName:"dragend", e:DragEvent):Dropzone;
- emit(eventName:"dragenter", e:DragEvent):Dropzone;
- emit(eventName:"dragover", e:DragEvent):Dropzone;
- emit(eventName:"dragleave", e:DragEvent):Dropzone;
- emit(eventName:"paste", e:DragEvent):Dropzone;
+ emit(eventName: "drop", e: DragEvent): Dropzone;
+ emit(eventName: "dragstart", e: DragEvent): Dropzone;
+ emit(eventName: "dragend", e: DragEvent): Dropzone;
+ emit(eventName: "dragenter", e: DragEvent): Dropzone;
+ emit(eventName: "dragover", e: DragEvent): Dropzone;
+ emit(eventName: "dragleave", e: DragEvent): Dropzone;
+ emit(eventName: "paste", e: DragEvent): Dropzone;
- emit(eventName:"reset"):Dropzone;
+ emit(eventName: "reset"): Dropzone;
- emit(eventName:"addedfile", file:Dropzone.DropzoneFile):Dropzone;
- emit(eventName:"addedfiles", files:Dropzone.DropzoneFile[]):Dropzone;
- emit(eventName:"removedfile", file:Dropzone.DropzoneFile):Dropzone;
- emit(eventName:"thumbnail", file:Dropzone.DropzoneFile, dataUrl:string):Dropzone;
+ emit(eventName: "addedfile", file: Dropzone.DropzoneFile): Dropzone;
+ emit(eventName: "addedfiles", files: Dropzone.DropzoneFile[]): Dropzone;
+ emit(eventName: "removedfile", file: Dropzone.DropzoneFile): Dropzone;
+ emit(eventName: "thumbnail", file: Dropzone.DropzoneFile, dataUrl: string): Dropzone;
- emit(eventName:"error", file:Dropzone.DropzoneFile, message:string|Error):Dropzone;
- emit(eventName:"errormultiple", files:Dropzone.DropzoneFile[], message:string|Error):Dropzone;
+ emit(eventName: "error", file: Dropzone.DropzoneFile, message: string | Error): Dropzone;
+ emit(eventName: "errormultiple", files: Dropzone.DropzoneFile[], message: string | Error): Dropzone;
- emit(eventName:"processing", file:Dropzone.DropzoneFile):Dropzone;
- emit(eventName:"processingmultiple", files:Dropzone.DropzoneFile[]):Dropzone;
+ emit(eventName: "processing", file: Dropzone.DropzoneFile): Dropzone;
+ emit(eventName: "processingmultiple", files: Dropzone.DropzoneFile[]): Dropzone;
- emit(eventName:"uploadprogress", file:Dropzone.DropzoneFile, progress:number, bytesSent:number):Dropzone;
- emit(eventName:"totaluploadprogress", totalProgress:number, totalBytes:number, totalBytesSent:number):Dropzone;
+ emit(eventName: "uploadprogress", file: Dropzone.DropzoneFile, progress: number, bytesSent: number): Dropzone;
+ emit(eventName: "totaluploadprogress", totalProgress: number, totalBytes: number, totalBytesSent: number): Dropzone;
- emit(eventName:"sending", file:Dropzone.DropzoneFile, xhr:XMLHttpRequest, formData:FormData):Dropzone;
- emit(eventName:"sendingmultiple", files:Dropzone.DropzoneFile[], xhr:XMLHttpRequest, formData:FormData):Dropzone;
+ emit(eventName: "sending", file: Dropzone.DropzoneFile, xhr: XMLHttpRequest, formData: FormData): Dropzone;
+ emit(eventName: "sendingmultiple", files: Dropzone.DropzoneFile[], xhr: XMLHttpRequest, formData: FormData): Dropzone;
- emit(eventName:"success", file:Dropzone.DropzoneFile):Dropzone;
- emit(eventName:"successmultiple", files:Dropzone.DropzoneFile[]):Dropzone;
+ emit(eventName: "success", file: Dropzone.DropzoneFile): Dropzone;
+ emit(eventName: "successmultiple", files: Dropzone.DropzoneFile[]): Dropzone;
- emit(eventName:"canceled", file:Dropzone.DropzoneFile):Dropzone;
- emit(eventName:"canceledmultiple", file:Dropzone.DropzoneFile[]):Dropzone;
+ emit(eventName: "canceled", file: Dropzone.DropzoneFile): Dropzone;
+ emit(eventName: "canceledmultiple", file: Dropzone.DropzoneFile[]): Dropzone;
- emit(eventName:"complete", file:Dropzone.DropzoneFile):Dropzone;
- emit(eventName:"completemultiple", file:Dropzone.DropzoneFile[]):Dropzone;
+ emit(eventName: "complete", file: Dropzone.DropzoneFile): Dropzone;
+ emit(eventName: "completemultiple", file: Dropzone.DropzoneFile[]): Dropzone;
- emit(eventName:"maxfilesexceeded", file:Dropzone.DropzoneFile):Dropzone;
- emit(eventName:"maxfilesreached", files:Dropzone.DropzoneFile[]):Dropzone;
- emit(eventName:"queuecomplete"):Dropzone;
+ emit(eventName: "maxfilesexceeded", file: Dropzone.DropzoneFile): Dropzone;
+ emit(eventName: "maxfilesreached", files: Dropzone.DropzoneFile[]): Dropzone;
+ emit(eventName: "queuecomplete"): Dropzone;
}
interface JQuery {
- dropzone(options:Dropzone.DropzoneOptions): Dropzone;
+ dropzone(options: Dropzone.DropzoneOptions): Dropzone;
}
export = Dropzone;
diff --git a/types/dropzone/v4/dropzone-tests.ts b/types/dropzone/v4/dropzone-tests.ts
new file mode 100644
index 0000000000..3b56c0c50a
--- /dev/null
+++ b/types/dropzone/v4/dropzone-tests.ts
@@ -0,0 +1,296 @@
+const dropzoneFromString = new Dropzone(".test");
+const dropzoneFromElement = new Dropzone(document.getElementById("test"));
+const dropzoneRenameFunction = function (name:string):string {
+ return name + 'new';
+};
+
+const dropzoneWithOptions = new Dropzone(".test", {
+ url: "/some/url",
+ method: "post",
+ withCredentials: false,
+ parallelUploads: 2,
+ uploadMultiple: true,
+ maxFilesize: 1024,
+ paramName: "file",
+ createImageThumbnails: true,
+ maxThumbnailFilesize: 1024,
+ thumbnailWidth: 50,
+ thumbnailHeight: 50,
+ filesizeBase: 1000,
+ maxFiles: 100,
+ params: {
+ additional: "param"
+ },
+ headers: {
+ "Some-Header": "Value"
+ },
+ clickable: true,
+ ignoreHiddenFiles: true,
+ acceptedFiles: "image/*",
+ renameFilename: dropzoneRenameFunction,
+ autoProcessQueue: true,
+ autoQueue: true,
+ addRemoveLinks: true,
+ previewsContainer: "",
+ hiddenInputContainer: document.createElement("input"),
+ capture: "camera",
+
+ dictDefaultMessage: "",
+ dictFallbackMessage: "",
+ dictFallbackText: "",
+ dictFileTooBig: "",
+ dictInvalidFileType: "",
+ dictResponseError: "",
+ dictCancelUpload: "",
+ dictCancelUploadConfirmation: "",
+ dictRemoveFile: "",
+ dictRemoveFileConfirmation: "",
+ dictMaxFilesExceeded: "",
+
+ accept: (file:Dropzone.DropzoneFile, done:(error?:string|Error) => void) => {
+ if (file.accepted) {
+ file.previewElement.classList.add("accepted");
+ file.previewTemplate.classList.add("accepted");
+ file.previewsContainer.classList.add("accepted");
+ done();
+ }
+ else {
+ done(new Error(file.status));
+ }
+ },
+ init: () => console.log("Initialized"),
+ forceFallback: false,
+ fallback: () => console.log("Fallback"),
+ resize: (file:Dropzone.DropzoneFile) => ({
+ srcX: 0,
+ srcY: 0,
+ trgX: 10,
+ trgY: 10,
+ srcWidth: 100,
+ srcHeight: 100,
+ trgWidth: 50,
+ trgHeight: 50,
+ optWidth: 50,
+ optHeight: 50
+ }),
+
+ drop: (e:DragEvent) => console.log("Drop"),
+ dragstart: (e:DragEvent) => console.log("Dragstart"),
+ dragend: (e:DragEvent) => console.log("Dragend"),
+ dragenter: (e:DragEvent) => console.log("Dragenter"),
+ dragover: (e:DragEvent) => console.log("Dragover"),
+ dragleave: (e:DragEvent) => console.log("Dragleave"),
+ paste: (e:DragEvent) => console.log("Paste"),
+
+ reset: () => console.log("Reset"),
+
+ addedfile: (file:Dropzone.DropzoneFile) => console.log("Addedfile"),
+ addedfiles: (files:Dropzone.DropzoneFile[]) => console.log("Addedfiles"),
+ removedfile: (file:Dropzone.DropzoneFile) => console.log("Removedfile"),
+ thumbnail: (file:Dropzone.DropzoneFile, dataUrl:string) => console.log("Thumbnail"),
+
+ error: (file:Dropzone.DropzoneFile, message:string|Error) => console.log("Error"),
+ errormultiple: (files:Dropzone.DropzoneFile[], message:string|Error) => console.log("Errormultiple"),
+
+ processing: (file:Dropzone.DropzoneFile) => console.log("Processing"),
+ processingmultiple: (files:Dropzone.DropzoneFile[]) => console.log("Processingmultiple"),
+
+ uploadprogress: (file:Dropzone.DropzoneFile, progress:number, bytesSent:number) => console.log("Uploadprogress"),
+ totaluploadprogress: (totalProgress:number, totalBytes:number, totalBytesSent:number) => console.log("Totaluploadprogress"),
+
+ sending: (file:Dropzone.DropzoneFile, xhr:XMLHttpRequest, formData:{}) => console.log("Sending"),
+ sendingmultiple: (files:Dropzone.DropzoneFile[], xhr:XMLHttpRequest, formData:{}) => console.log("Sendingmultiple"),
+
+ success: (file:Dropzone.DropzoneFile) => console.log("Success"),
+ successmultiple: (files:Dropzone.DropzoneFile[]) => console.log("Successmultiple"),
+
+ canceled: (file:Dropzone.DropzoneFile) => console.log("Canceled"),
+ canceledmultiple: (file:Dropzone.DropzoneFile[]) => console.log("Canceledmultiple"),
+
+ complete: (file:Dropzone.DropzoneFile) => console.log("Complete"),
+ completemultiple: (file:Dropzone.DropzoneFile[]) => console.log("Completemultiple"),
+
+ maxfilesexceeded: (file:Dropzone.DropzoneFile) => console.log("Maxfilesexceeded"),
+ maxfilesreached: (files:Dropzone.DropzoneFile[]) => console.log("Maxfilesreached"),
+ queuecomplete: () => console.log("Queuecomplete"),
+
+ previewTemplate: "",
+});
+
+var dropzoneWithOptionsVariations:Dropzone;
+dropzoneWithOptionsVariations = new Dropzone(".test", {
+ clickable: ".test"
+});
+dropzoneWithOptionsVariations = new Dropzone(".test", {
+ clickable: document.getElementById("test")
+});
+dropzoneWithOptionsVariations = new Dropzone(".test", {
+ clickable: [".test", ".test"]
+});
+dropzoneWithOptionsVariations = new Dropzone(".test", {
+ clickable: [document.getElementById("test"), document.getElementById("test")]
+});
+dropzoneWithOptionsVariations = new Dropzone(".test", {
+ clickable: ["test", document.getElementById("test")]
+});
+
+dropzoneWithOptionsVariations = new Dropzone(".test", {
+ success: (file:Dropzone.DropzoneFile, response:Object) => console.log(file, response)
+});
+dropzoneWithOptionsVariations = new Dropzone(".test", {
+ success: (file:Dropzone.DropzoneFile, response:string) => console.log(file, response)
+});
+
+const dropzone = new Dropzone(".test");
+
+dropzone.enable();
+dropzone.disable();
+
+dropzone.files.forEach(f => {
+ if (f.xhr) {
+ console.log(f.xhr.readyState)
+ }
+ if (f.accepted) {
+ f.previewElement.classList.add("accepted");
+ f.previewTemplate.classList.add("accepted");
+ f.previewsContainer.classList.add("accepted");
+ }
+ else {
+ console.log(f.status.toUpperCase());
+ }
+});
+
+const firstFile = dropzone.files[0];
+dropzone.removeFile(firstFile);
+dropzone.addFile(firstFile);
+dropzone.enqueueFile(firstFile);
+dropzone.processFile(firstFile);
+dropzone.uploadFile(firstFile);
+dropzone.cancelUpload(firstFile);
+dropzone.createThumbnail(firstFile, () => {
+ console.log("createThumbnail")
+});
+dropzone.createThumbnailFromUrl(firstFile, "/some/url", () => {
+ console.log("createThumbnailFromUrl")
+});
+dropzone.accept(firstFile, (e:string|Error) => {
+ console.log(e);
+});
+
+const acceptedFiles = dropzone.getAcceptedFiles();
+dropzone.processFiles(acceptedFiles);
+
+const rejectedFiles = dropzone.getRejectedFiles();
+dropzone.enqueueFiles(rejectedFiles);
+
+const queuedFiles = dropzone.getQueuedFiles();
+dropzone.processFiles(queuedFiles);
+
+const uploadingFiles = dropzone.getUploadingFiles();
+dropzone.processFiles(uploadingFiles);
+
+const activeFiles = dropzone.getActiveFiles();
+dropzone.processFiles(activeFiles);
+
+const addedFiles = dropzone.getFilesWithStatus(Dropzone.ADDED);
+dropzone.processFiles(addedFiles);
+
+dropzone.processQueue();
+dropzone.removeAllFiles(true);
+
+dropzone
+ .on("drop", () => {
+ console.count('drop');
+ })
+ .on("dragstart", () => {
+ console.count('dragstart');
+ })
+ .on("dragend", () => {
+ console.count('dragend');
+ })
+ .on("dragenter", () => {
+ console.count('dragenter');
+ })
+ .on("dragover", () => {
+ console.count('dragover');
+ })
+ .on("dragleave", () => {
+ console.count('dragleave');
+ })
+ .on("paste", () => {
+ console.count('paste');
+ })
+ .on("reset", () => {
+ console.count('reset');
+ })
+ .on("addedfile", () => {
+ console.count('addedfile');
+ })
+ .on("addedfiles", () => {
+ console.count('addedfiles');
+ })
+ .on("removedfile", () => {
+ console.count('removedfile');
+ })
+ .on("thumbnail", () => {
+ console.count('thumbnail');
+ })
+ .on("error", () => {
+ console.count('error');
+ })
+ .on("errormultiple", () => {
+ console.count('errormultiple');
+ })
+ .on("processing", () => {
+ console.count('processing');
+ })
+ .on("processingmultiple", () => {
+ console.count('processingmultiple');
+ })
+ .on("uploadprogress", () => {
+ console.count('uploadprogress');
+ })
+ .on("totaluploadprogress", () => {
+ console.count('totaluploadprogress');
+ })
+ .on("sending", () => {
+ console.count('sending');
+ })
+ .on("sendingmultiple", () => {
+ console.count('sendingmultiple');
+ })
+ .on("success", () => {
+ console.count('success');
+ })
+ .on("successmultiple", () => {
+ console.count('successmultiple');
+ })
+ .on("canceled", () => {
+ console.count('canceled');
+ })
+ .on("canceledmultiple", () => {
+ console.count('canceledmultiple');
+ })
+ .on("complete", () => {
+ console.count('complete');
+ })
+ .on("completemultiple", () => {
+ console.count('completemultiple');
+ })
+ .on("maxfilesexceeded", () => {
+ console.count('maxfilesexceeded');
+ })
+ .on("maxfilesreached", () => {
+ console.count('maxfilesreached');
+ })
+ .on("queuecomplete", () => {
+ console.count('queuecomplete');
+ });
+
+ dropzone.off("drop", () => {
+ console.count('drop');
+ })
+ .off("dragstart")
+ .off();
+
+dropzone.destroy();
\ No newline at end of file
diff --git a/types/dropzone/v4/index.d.ts b/types/dropzone/v4/index.d.ts
new file mode 100644
index 0000000000..171552a240
--- /dev/null
+++ b/types/dropzone/v4/index.d.ts
@@ -0,0 +1,279 @@
+// Type definitions for Dropzone 4.3.0
+// Project: http://www.dropzonejs.com/
+// Definitions by: Natan Vivo , Andy Hawkins , Vasya Aksyonov , Simon Huber , Sebastiaan de Rooij
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.3
+
+///
+
+import * as $ from "jquery";
+
+declare namespace Dropzone {
+ export interface DropzoneResizeInfo {
+ srcX?:number;
+ srcY?:number;
+ trgX?:number;
+ trgY?:number;
+ srcWidth?:number;
+ srcHeight?:number;
+ trgWidth?:number;
+ trgHeight?:number;
+ optWidth?:number;
+ optHeight?:number;
+ }
+
+ export interface DropzoneFile extends File {
+ previewElement: HTMLElement;
+ previewTemplate: HTMLElement;
+ previewsContainer: HTMLElement;
+ status: string;
+ accepted: boolean;
+ xhr?: XMLHttpRequest;
+ }
+
+ export interface DropzoneOptions {
+ url?: string;
+ method?: string;
+ withCredentials?: boolean;
+ parallelUploads?: number;
+ uploadMultiple?: boolean;
+ maxFilesize?: number;
+ paramName?: string;
+ createImageThumbnails?: boolean;
+ maxThumbnailFilesize?: number;
+ thumbnailWidth?: number;
+ thumbnailHeight?: number;
+ filesizeBase?: number;
+ maxFiles?: number;
+ params?: {};
+ headers?: {};
+ clickable?: boolean|string|HTMLElement|(string|HTMLElement)[];
+ ignoreHiddenFiles?: boolean;
+ acceptedFiles?: string;
+ renameFilename?(name:string): string;
+ autoProcessQueue?: boolean;
+ autoQueue?: boolean;
+ addRemoveLinks?: boolean;
+ previewsContainer?: boolean|string|HTMLElement;
+ hiddenInputContainer?: HTMLElement;
+ capture?: string;
+
+ dictDefaultMessage?: string;
+ dictFallbackMessage?: string;
+ dictFallbackText?: string;
+ dictFileTooBig?: string;
+ dictInvalidFileType?: string;
+ dictResponseError?: string;
+ dictCancelUpload?: string;
+ dictCancelUploadConfirmation?: string;
+ dictRemoveFile?: string;
+ dictRemoveFileConfirmation?: string;
+ dictMaxFilesExceeded?: string;
+
+ accept?(file:DropzoneFile, done:(error?:string|Error) => void):void;
+ init?():void;
+ forceFallback?: boolean;
+ fallback?():void;
+ resize?(file:DropzoneFile):DropzoneResizeInfo;
+
+ drop?(e:DragEvent):void;
+ dragstart?(e:DragEvent):void;
+ dragend?(e:DragEvent):void;
+ dragenter?(e:DragEvent):void;
+ dragover?(e:DragEvent):void;
+ dragleave?(e:DragEvent):void;
+ paste?(e:DragEvent):void;
+
+ reset?():void;
+
+ addedfile?(file:DropzoneFile):void;
+ addedfiles?(files:DropzoneFile[]):void;
+ removedfile?(file:DropzoneFile):void;
+ thumbnail?(file:DropzoneFile, dataUrl:string):void;
+
+ error?(file:DropzoneFile, message:string|Error, xhr:XMLHttpRequest):void;
+ errormultiple?(files:DropzoneFile[], message:string|Error, xhr:XMLHttpRequest):void;
+
+ processing?(file:DropzoneFile):void;
+ processingmultiple?(files:DropzoneFile[]):void;
+
+ uploadprogress?(file:DropzoneFile, progress:number, bytesSent:number):void;
+ totaluploadprogress?(totalProgress:number, totalBytes:number, totalBytesSent:number):void;
+
+ sending?(file:DropzoneFile, xhr:XMLHttpRequest, formData:FormData):void;
+ sendingmultiple?(files:DropzoneFile[], xhr:XMLHttpRequest, formData:FormData):void;
+
+ success?(file: DropzoneFile, response: Object|string): void;
+ successmultiple?(files:DropzoneFile[], responseText:string):void;
+
+ canceled?(file:DropzoneFile):void;
+ canceledmultiple?(file:DropzoneFile[]):void;
+
+ complete?(file:DropzoneFile):void;
+ completemultiple?(file:DropzoneFile[]):void;
+
+ maxfilesexceeded?(file:DropzoneFile):void;
+ maxfilesreached?(files:DropzoneFile[]):void;
+ queuecomplete?():void;
+
+ previewTemplate?: string;
+ }
+}
+
+declare class Dropzone {
+ constructor(container:string|HTMLElement, options?:Dropzone.DropzoneOptions);
+
+ static autoDiscover:boolean;
+ static options:any;
+ static confirm:(question:string, accepted:() => void, rejected?:() => void) => void;
+
+ static ADDED:string;
+ static QUEUED:string;
+ static ACCEPTED:string;
+ static UPLOADING:string;
+ static PROCESSING:string;
+ static CANCELED:string;
+ static ERROR:string;
+ static SUCCESS:string;
+
+ files:Dropzone.DropzoneFile[];
+
+ enable():void;
+
+ disable():void;
+
+ destroy():Dropzone;
+
+ addFile(file:Dropzone.DropzoneFile):void;
+
+ removeFile(file:Dropzone.DropzoneFile):void;
+
+ removeAllFiles(cancelIfNecessary?:boolean):void;
+
+ processQueue():void;
+
+ cancelUpload(file:Dropzone.DropzoneFile):void;
+
+ processFiles(files:Dropzone.DropzoneFile[]):void;
+
+ processFile(file:Dropzone.DropzoneFile):void;
+
+ uploadFile(file:Dropzone.DropzoneFile):void;
+
+ getAcceptedFiles():Dropzone.DropzoneFile[];
+
+ getRejectedFiles():Dropzone.DropzoneFile[];
+
+ getQueuedFiles():Dropzone.DropzoneFile[];
+
+ getUploadingFiles():Dropzone.DropzoneFile[];
+
+ accept(file:Dropzone.DropzoneFile, done:(error?:string|Error) => void):void;
+
+ getActiveFiles():Dropzone.DropzoneFile[];
+
+ getFilesWithStatus(status:string):Dropzone.DropzoneFile[];
+
+ enqueueFile(file:Dropzone.DropzoneFile):void;
+
+ enqueueFiles(file:Dropzone.DropzoneFile[]):void;
+
+ createThumbnail(file:Dropzone.DropzoneFile, callback?:(...args:any[]) => void):any;
+
+ createThumbnailFromUrl(file:Dropzone.DropzoneFile, url:string, callback?:(...args:any[]) => void):any;
+
+ on(eventName:string, callback:(...args:any[]) => void):Dropzone;
+
+ off(): Dropzone;
+ off(eventName:string, callback?:(...args:any[]) => void):Dropzone;
+
+ emit(eventName:string, ...args:any[]):Dropzone;
+
+ on(eventName:"drop", callback:(e:DragEvent) => any):Dropzone;
+ on(eventName:"dragstart", callback:(e:DragEvent) => any):Dropzone;
+ on(eventName:"dragend", callback:(e:DragEvent) => any):Dropzone;
+ on(eventName:"dragenter", callback:(e:DragEvent) => any):Dropzone;
+ on(eventName:"dragover", callback:(e:DragEvent) => any):Dropzone;
+ on(eventName:"dragleave", callback:(e:DragEvent) => any):Dropzone;
+ on(eventName:"paste", callback:(e:DragEvent) => any):Dropzone;
+
+ on(eventName:"reset"):Dropzone;
+
+ on(eventName:"addedfile", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
+ on(eventName:"addedfiles", callback:(files:Dropzone.DropzoneFile[]) => any):Dropzone;
+ on(eventName:"removedfile", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
+ on(eventName:"thumbnail", callback:(file:Dropzone.DropzoneFile, dataUrl:string) => any):Dropzone;
+
+ on(eventName:"error", callback:(file:Dropzone.DropzoneFile, message:string|Error) => any):Dropzone;
+ on(eventName:"errormultiple", callback:(files:Dropzone.DropzoneFile[], message:string|Error) => any):Dropzone;
+
+ on(eventName:"processing", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
+ on(eventName:"processingmultiple", callback:(files:Dropzone.DropzoneFile[]) => any):Dropzone;
+
+ on(eventName:"uploadprogress", callback:(file:Dropzone.DropzoneFile, progress:number, bytesSent:number) => any):Dropzone;
+ on(eventName:"totaluploadprogress", callback:(totalProgress:number, totalBytes:number, totalBytesSent:number) => any):Dropzone;
+
+ on(eventName:"sending", callback:(file:Dropzone.DropzoneFile, xhr:XMLHttpRequest, formData:FormData) => any):Dropzone;
+ on(eventName:"sendingmultiple", callback:(files:Dropzone.DropzoneFile[], xhr:XMLHttpRequest, formData:FormData) => any):Dropzone;
+
+ on(eventName:"success", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
+ on(eventName:"successmultiple", callback:(files:Dropzone.DropzoneFile[]) => any):Dropzone;
+
+ on(eventName:"canceled", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
+ on(eventName:"canceledmultiple", callback:(file:Dropzone.DropzoneFile[]) => any):Dropzone;
+
+ on(eventName:"complete", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
+ on(eventName:"completemultiple", callback:(file:Dropzone.DropzoneFile[]) => any):Dropzone;
+
+ on(eventName:"maxfilesexceeded", callback:(file:Dropzone.DropzoneFile) => any):Dropzone;
+ on(eventName:"maxfilesreached", callback:(files:Dropzone.DropzoneFile[]) => any):Dropzone;
+ on(eventName:"queuecomplete"):Dropzone;
+
+ emit(eventName:"drop", e:DragEvent):Dropzone;
+ emit(eventName:"dragstart", e:DragEvent):Dropzone;
+ emit(eventName:"dragend", e:DragEvent):Dropzone;
+ emit(eventName:"dragenter", e:DragEvent):Dropzone;
+ emit(eventName:"dragover", e:DragEvent):Dropzone;
+ emit(eventName:"dragleave", e:DragEvent):Dropzone;
+ emit(eventName:"paste", e:DragEvent):Dropzone;
+
+ emit(eventName:"reset"):Dropzone;
+
+ emit(eventName:"addedfile", file:Dropzone.DropzoneFile):Dropzone;
+ emit(eventName:"addedfiles", files:Dropzone.DropzoneFile[]):Dropzone;
+ emit(eventName:"removedfile", file:Dropzone.DropzoneFile):Dropzone;
+ emit(eventName:"thumbnail", file:Dropzone.DropzoneFile, dataUrl:string):Dropzone;
+
+ emit(eventName:"error", file:Dropzone.DropzoneFile, message:string|Error):Dropzone;
+ emit(eventName:"errormultiple", files:Dropzone.DropzoneFile[], message:string|Error):Dropzone;
+
+ emit(eventName:"processing", file:Dropzone.DropzoneFile):Dropzone;
+ emit(eventName:"processingmultiple", files:Dropzone.DropzoneFile[]):Dropzone;
+
+ emit(eventName:"uploadprogress", file:Dropzone.DropzoneFile, progress:number, bytesSent:number):Dropzone;
+ emit(eventName:"totaluploadprogress", totalProgress:number, totalBytes:number, totalBytesSent:number):Dropzone;
+
+ emit(eventName:"sending", file:Dropzone.DropzoneFile, xhr:XMLHttpRequest, formData:FormData):Dropzone;
+ emit(eventName:"sendingmultiple", files:Dropzone.DropzoneFile[], xhr:XMLHttpRequest, formData:FormData):Dropzone;
+
+ emit(eventName:"success", file:Dropzone.DropzoneFile):Dropzone;
+ emit(eventName:"successmultiple", files:Dropzone.DropzoneFile[]):Dropzone;
+
+ emit(eventName:"canceled", file:Dropzone.DropzoneFile):Dropzone;
+ emit(eventName:"canceledmultiple", file:Dropzone.DropzoneFile[]):Dropzone;
+
+ emit(eventName:"complete", file:Dropzone.DropzoneFile):Dropzone;
+ emit(eventName:"completemultiple", file:Dropzone.DropzoneFile[]):Dropzone;
+
+ emit(eventName:"maxfilesexceeded", file:Dropzone.DropzoneFile):Dropzone;
+ emit(eventName:"maxfilesreached", files:Dropzone.DropzoneFile[]):Dropzone;
+ emit(eventName:"queuecomplete"):Dropzone;
+
+}
+
+interface JQuery {
+ dropzone(options:Dropzone.DropzoneOptions): Dropzone;
+}
+
+export = Dropzone;
+export as namespace Dropzone;
\ No newline at end of file
diff --git a/types/dropzone/v4/tsconfig.json b/types/dropzone/v4/tsconfig.json
new file mode 100644
index 0000000000..36eb5f0aef
--- /dev/null
+++ b/types/dropzone/v4/tsconfig.json
@@ -0,0 +1,26 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6",
+ "dom"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": false,
+ "baseUrl": "../../",
+ "typeRoots": [
+ "../../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true,
+ "paths": {
+ "dropzone": ["dropzone/v4"]
+ }
+ },
+ "files": [
+ "index.d.ts",
+ "dropzone-tests.ts"
+ ]
+}
\ No newline at end of file