popper.js: update type definitions to 1.8.5 (#16159)

* popper.js: 1.8.5: update type definitions

* lints

* Update index.d.ts

* remove copy
This commit is contained in:
Joscha Feth
2017-04-29 03:45:36 +10:00
committed by Sheetal Nandi
parent 767259eaa9
commit 0cd29398f1
2 changed files with 68 additions and 52 deletions

View File

@@ -1,58 +1,73 @@
// Type definitions for popper.js v0.4.0
// Type definitions for popper.js v1.8.5
// Project: https://github.com/FezVrasta/popper.js/
// Definitions by: rhysd <https://rhysd.github.io>
// Definitions by: rhysd <https://rhysd.github.io>, joscha <https://github.com/joscha>
// 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;
};
};
}
export interface PopperOptions {
placement?: string;
boundariesPadding?: number;
modifiers?: {
order?: number,
enabled?: boolean,
fn?: Function,
'function'?: Function,
onLoad?: Function,
applyStyle?: {
gpuAcceleration?: boolean,
},
preventOverflow?: {
boundariesElement?: string | Element,
priority?: ('left' | 'right' | 'top' | 'bottom')[],
},
offset?: {
offset?: number,
},
flip?: {
behavior?: string | string[],
boundariesElement?: string | Element,
},
};
modifiersIgnored?: string[];
removeOnDestroy?: boolean;
arrowElement?: string | Element;
onCreate?(data: Popper.Data): void;
onUpdate?(data: Popper.Data): void;
}
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;
public modifiers: Popper.Modifiers;
public placement: string;
constructor(reference: Element, popper: Element | Object, options?: Popper.PopperOptions);
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;
destroy(): void;
update(): void;
parse(config: Object): Element;
runModifiers(data: Object, modifiers: string[], ends: Function): void;
isModifierRequired(): boolean;
}
declare module "popper.js" {
export = Popper;
declare module 'popper.js' {
export default Popper;
}

View File

@@ -1,5 +1,5 @@
import * as Popper from 'popper.js';
import Popper from 'popper.js';
var reference = document.querySelector('.my-button');
var thePopper = new Popper(
@@ -30,9 +30,10 @@ var anotherPopper = new 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}`);
var anotherPopper = new Popper(reference, popper, {
onCreate: (data => console.log(data)),
onUpdate: ((data) => {
var p = data.offsets.popper;
console.log(`top: ${p.top}, left: ${p.left}`);
})
});