| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| declare namespace Popper { |
| export type Position = 'top' | 'right' | 'bottom' | 'left'; |
|
|
| export type Placement = 'auto-start' |
| | 'auto' |
| | 'auto-end' |
| | 'top-start' |
| | 'top' |
| | 'top-end' |
| | 'right-start' |
| | 'right' |
| | 'right-end' |
| | 'bottom-end' |
| | 'bottom' |
| | 'bottom-start' |
| | 'left-end' |
| | 'left' |
| | 'left-start'; |
|
|
| export type Boundary = 'scrollParent' | 'viewport' | 'window'; |
|
|
| export type Behavior = 'flip' | 'clockwise' | 'counterclockwise'; |
|
|
| export type ModifierFn = (data: Data, options: Object) => Data; |
|
|
| export interface Attributes { |
| 'x-out-of-boundaries': '' | false; |
| 'x-placement': Placement; |
| } |
|
|
| export interface Padding { |
| top?: number, |
| bottom?: number, |
| left?: number, |
| right?: number, |
| } |
|
|
| export interface BaseModifier { |
| order?: number; |
| enabled?: boolean; |
| fn?: ModifierFn; |
| } |
|
|
| export interface Modifiers { |
| shift?: BaseModifier; |
| offset?: BaseModifier & { |
| offset?: number | string, |
| }; |
| preventOverflow?: BaseModifier & { |
| priority?: Position[], |
| padding?: number | Padding, |
| boundariesElement?: Boundary | Element, |
| escapeWithReference?: boolean |
| }; |
| keepTogether?: BaseModifier; |
| arrow?: BaseModifier & { |
| element?: string | Element, |
| }; |
| flip?: BaseModifier & { |
| behavior?: Behavior | Position[], |
| padding?: number | Padding, |
| boundariesElement?: Boundary | Element, |
| flipVariations?: boolean, |
| flipVariationsByContent?: boolean, |
| }; |
| inner?: BaseModifier; |
| hide?: BaseModifier; |
| applyStyle?: BaseModifier & { |
| onLoad?: Function, |
| gpuAcceleration?: boolean, |
| }; |
| computeStyle?: BaseModifier & { |
| gpuAcceleration?: boolean; |
| x?: 'bottom' | 'top', |
| y?: 'left' | 'right' |
| }; |
|
|
| [name: string]: (BaseModifier & Record<string, any>) | undefined; |
| } |
|
|
| export interface Offset { |
| top: number; |
| left: number; |
| width: number; |
| height: number; |
| } |
|
|
| export interface Data { |
| instance: Popper; |
| placement: Placement; |
| originalPlacement: Placement; |
| flipped: boolean; |
| hide: boolean; |
| arrowElement: Element; |
| styles: CSSStyleDeclaration; |
| arrowStyles: CSSStyleDeclaration; |
| attributes: Attributes; |
| boundaries: Object; |
| offsets: { |
| popper: Offset, |
| reference: Offset, |
| arrow: { |
| top: number, |
| left: number, |
| }, |
| }; |
| } |
|
|
| export interface PopperOptions { |
| placement?: Placement; |
| positionFixed?: boolean; |
| eventsEnabled?: boolean; |
| modifiers?: Modifiers; |
| removeOnDestroy?: boolean; |
|
|
| onCreate?(data: Data): void; |
|
|
| onUpdate?(data: Data): void; |
| } |
|
|
| export interface ReferenceObject { |
| clientHeight: number; |
| clientWidth: number; |
| referenceNode?: Node; |
|
|
| getBoundingClientRect(): ClientRect; |
| } |
| } |
|
|
| |
| |
| export type Padding = Popper.Padding; |
| export type Position = Popper.Position; |
| export type Placement = Popper.Placement; |
| export type Boundary = Popper.Boundary; |
| export type Behavior = Popper.Behavior; |
| export type ModifierFn = Popper.ModifierFn; |
| export type BaseModifier = Popper.BaseModifier; |
| export type Modifiers = Popper.Modifiers; |
| export type Offset = Popper.Offset; |
| export type Data = Popper.Data; |
| export type PopperOptions = Popper.PopperOptions; |
| export type ReferenceObject = Popper.ReferenceObject; |
|
|
| declare class Popper { |
| static modifiers: (BaseModifier & { name: string })[]; |
| static placements: Placement[]; |
| static Defaults: PopperOptions; |
|
|
| options: PopperOptions; |
| popper: Element; |
| reference: Element | ReferenceObject; |
|
|
| constructor(reference: Element | ReferenceObject, popper: Element, options?: PopperOptions); |
|
|
| destroy(): void; |
|
|
| update(): void; |
|
|
| scheduleUpdate(): void; |
|
|
| enableEventListeners(): void; |
|
|
| disableEventListeners(): void; |
| } |
|
|
| export default Popper; |
|
|