diff --git a/types/popper.js/index.d.ts b/types/popper.js/index.d.ts index 71713a2ae1..0f8f06a7ba 100644 --- a/types/popper.js/index.d.ts +++ b/types/popper.js/index.d.ts @@ -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 +// Definitions by: rhysd , 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; } diff --git a/types/popper.js/popper.js-tests.ts b/types/popper.js/popper.js-tests.ts index 872118aff4..326a23206c 100644 --- a/types/popper.js/popper.js-tests.ts +++ b/types/popper.js/popper.js-tests.ts @@ -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}`); + }) });