Merge pull request #3794 from adidahiya/drop

add drop & tether typings
This commit is contained in:
Masahiro Wakame
2015-03-05 22:51:24 +09:00
4 changed files with 179 additions and 0 deletions

28
drop/drop-tests.ts Normal file
View File

@@ -0,0 +1,28 @@
///<reference path="../tether/tether.d.ts" />
///<reference path="drop.d.ts" />
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");

48
drop/drop.d.ts vendored Normal file
View File

@@ -0,0 +1,48 @@
// Type definitions for Drop v0.5
// Project: http://github.hubspot.com/drop/
// Definitions by: Adi Dahiya <https://github.com/adidahiya>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
///<reference path="../tether/tether.d.ts" />
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;

53
tether/tether-tests.ts Normal file
View File

@@ -0,0 +1,53 @@
///<reference path="../jquery/jquery.d.ts" />
///<reference path="tether.d.ts" />
var yellowBox = document.querySelector(".yellow");
var greenBox = document.querySelector(".green");
new Tether({
attachment: "bottom middle",
targetAttachment: "top middle",
targetModifier: "visible",
offset: "-15px 0",
targetOffset: "0 0"
});
new Tether({
element: yellowBox,
target: greenBox,
attachment: "top left",
optimizations: {
gpu: false
}
});
new Tether({
element: yellowBox,
target: greenBox,
attachment: "top left",
targetAttachment: "bottom left",
constraints: [
{
to: "scrollParent",
pin: true
},
{
to: "window",
attachment: "together"
}
]
});
new Tether({
element: yellowBox,
target: greenBox,
attachment: "middle left",
targetAttachment: "middle left",
constraints: [
{
to: "scrollParent",
pin: ["top"]
}
]
});

50
tether/tether.d.ts vendored Normal file
View File

@@ -0,0 +1,50 @@
// Type definitions for Tether v0.6
// Project: http://github.hubspot.com/tether/
// Definitions by: Adi Dahiya <https://github.com/adidahiya>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module tether {
interface TetherStatic {
new(options: ITetherOptions): Tether;
}
interface ITetherOptions {
attachment?: string;
classes?: {[className: string]: boolean};
classPrefix?: string;
constraints?: ITetherConstraint[];
element?: Element | string | any /* JQuery */;
enabled?: boolean;
offset?: string;
optimizations?: any;
target?: Element | string | any /* JQuery */;
targetAttachment?: string;
targetOffset?: string;
targetModifier?: string;
}
interface ITetherConstraint {
attachment?: string;
outOfBoundsClass?: string;
pin?: boolean | string[];
pinnedClass?: string;
to?: string | Element | number[];
}
interface Tether {
setOptions(options: ITetherOptions): void;
disable(): void;
enable(): void;
destroy(): void;
position(): void;
}
}
declare module "tether" {
export = tether;
}
declare var Tether: tether.TetherStatic;