Add popper.d.ts (#9266)

https://github.com/FezVrasta/popper.js/
This commit is contained in:
Linda_pp
2016-05-15 00:03:34 +09:00
committed by Masahiro Wakame
parent dfb808f777
commit fc810d7671
2 changed files with 97 additions and 0 deletions

39
popper.js/popper-tests.ts Normal file
View File

@@ -0,0 +1,39 @@
/// <reference path="./popper.d.ts" />
import * as Popper from 'popper.js';
var reference = document.querySelector('.my-button');
var thePopper = new Popper(
reference, {
content: 'My awesome popper!'
}
);
thePopper.update();
thePopper.destroy();
var options = {
placement: 'bottom',
offset: 0,
arrowElement: document.querySelector('.arrow'),
modifiersIgnored: ['applyStyle'],
} as Popper.PopperOptions;
var thePopperWithOptions = new Popper(
reference, {
content: 'My awesome popper!',
}, options);
var popper = document.querySelector('.my-popper');
var anotherPopper = new Popper(
reference,
popper
);
var reference = document.querySelector('.my-button');
var popper = document.querySelector('.my-popper');
var anotherPopper = new Popper(reference, popper).onCreate(function(instance) {
console.log(instance.offsets);
}).onUpdate(function(data) {
var p = data.offsets.popper;
console.log(`top: ${p.top}, left: ${p.left}`);
});

58
popper.js/popper.d.ts vendored Normal file
View File

@@ -0,0 +1,58 @@
// Type definitions for popper.js v0.4.0
// Project: https://github.com/FezVrasta/popper.js/
// Definitions by: rhysd <https://rhysd.github.io>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace Popper {
export interface PopperOptions {
placement?: string;
gpuAcceleration?: boolean;
offset?: number;
boundariesElement?: string | Element;
boundariesPadding?: number;
preventOverflowOrder?: ("left" | "right" | "top" | "bottom")[];
flipBehavior?: string | string[];
modifiers?: string[];
modifiersIgnored?: string[];
removeOnDestroy?: boolean;
arrowElement?: string | Element;
}
export class Modifiers {
applyStyle(data: Object): Object;
shift(data: Object): Object;
preventOverflow(data: Object): Object;
keepTogether(data: Object): Object;
flip(data: Object): Object;
offset(data: Object): Object;
arrow(data: Object): Object;
}
export interface Data {
placement: string;
offsets: {
popper: {
position: string;
top: number;
left: number;
};
};
}
}
declare class Popper {
public modifiers: Popper.Modifiers;
public placement: string;
constructor(reference: Element, popper: Element | Object, options?: Popper.PopperOptions);
destroy(): void;
update(): void;
onCreate(cb: (data: Popper.Data) => void): this;
onUpdate(cb: (data: Popper.Data) => void): this;
parse(config: Object): Element;
runModifiers(data: Object, modifiers: string[], ends: Function): void;
isModifierRequired(): boolean;
}
declare module "popper.js" {
export = Popper;
}