diff --git a/drop/drop-tests.ts b/drop/drop-tests.ts new file mode 100644 index 0000000000..b5ae47456c --- /dev/null +++ b/drop/drop-tests.ts @@ -0,0 +1,28 @@ +/// +/// + +var yellowBox = document.querySelector(".yellow"); +var greenBox = document.querySelector(".green"); + +var d = new Drop({ + position: "bottom left", + openOn: "click", + constrainToWindow: true, + constrainToScrollParent: true, + classes: "", + tetherOptions: {} +}); + +d.open(); +d.close(); +d.remove(); +d.toggle(); +d.position(); +d.destroy(); + +d.on("open", () => null); +d.on("close", () => null); +d.once("close", () => null); +d.off("close", () => null); +d.off("open"); + diff --git a/drop/drop.d.ts b/drop/drop.d.ts new file mode 100644 index 0000000000..18568afdd6 --- /dev/null +++ b/drop/drop.d.ts @@ -0,0 +1,48 @@ +// Type definitions for Drop v0.5 +// Project: http://github.hubspot.com/drop/ +// Definitions by: Adi Dahiya +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module drop { + + interface DropStatic { + new(options: IDropOptions): Drop; + } + + interface IDropOptions { + target?: Element; + content?: Element | string | (() => string); + position?: string; + openOn?: string; + constrainToWindow?: boolean; + constrainToScrollParent?: boolean; + remove?: boolean; + tetherOptions?: tether.ITetherOptions; + } + + interface Drop { + content: HTMLElement; + open(): void; + close(): void; + remove(): void; + toggle(): void; + position(): void; + destroy(): void; + /* + * Drop instances fire "open" and "close" events. + */ + on(event: string, handler: Function, context?: any): void; + once(event: string, handler: Function, context?: any): void; + off(event: string, handler?: Function): void; + } + +} + +declare module "drop" { + export = drop; +} + +declare var Drop: drop.DropStatic; +