You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
3.0 KiB
156 lines
3.0 KiB
// @flow |
|
|
|
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 Offset = { |
|
top: number, |
|
left: number, |
|
width: number, |
|
height: number, |
|
position: Position, |
|
}; |
|
|
|
export type Boundary = 'scrollParent' | 'viewport' | 'window'; |
|
|
|
export type Behavior = 'flip' | 'clockwise' | 'counterclockwise'; |
|
|
|
export type Data = { |
|
instance: Popper, |
|
placement: Placement, |
|
originalPlacement: Placement, |
|
flipped: boolean, |
|
hide: boolean, |
|
arrowElement: Element, |
|
styles: CSSStyleDeclaration, |
|
arrowStyles: CSSStyleDeclaration, |
|
boundaries: Object, |
|
offsets: { |
|
popper: Offset, |
|
reference: Offset, |
|
arrow: { |
|
top: number, |
|
left: number, |
|
}, |
|
}, |
|
}; |
|
|
|
export type ModifierFn = (data: Data, options: Object) => Data; |
|
|
|
export type Padding = { |
|
top?: number, |
|
bottom?: number, |
|
left?: number, |
|
right?: number, |
|
}; |
|
|
|
export type BaseModifier = { |
|
order?: number, |
|
enabled?: boolean, |
|
fn?: ModifierFn, |
|
}; |
|
|
|
export type 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 | null, |
|
}, |
|
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 & { [string]: * }) | null, |
|
}; |
|
|
|
export type Options = { |
|
placement?: Placement, |
|
positionFixed?: boolean, |
|
eventsEnabled?: boolean, |
|
modifiers?: Modifiers, |
|
removeOnDestroy?: boolean, |
|
|
|
onCreate?: (data: Data) => void, |
|
|
|
onUpdate?: (data: Data) => void, |
|
}; |
|
|
|
export type ReferenceObject = { |
|
+clientHeight: number, |
|
+clientWidth: number, |
|
+referenceNode?: Node, |
|
|
|
getBoundingClientRect(): |
|
| ClientRect |
|
| { |
|
width: number, |
|
height: number, |
|
top: number, |
|
right: number, |
|
bottom: number, |
|
left: number, |
|
}, |
|
}; |
|
|
|
export type Instance = { |
|
destroy: () => void, |
|
scheduleUpdate: () => void, |
|
update: () => void, |
|
enableEventListeners: () => void, |
|
disableEventListeners: () => void, |
|
}; |
|
|
|
declare class Popper { |
|
static placements: Placement; |
|
|
|
popper: Element; |
|
reference: Element | ReferenceObject; |
|
|
|
constructor( |
|
reference: Element | ReferenceObject, |
|
popper: Element, |
|
options?: Options |
|
): Instance; |
|
} |
|
|
|
declare export default typeof Popper;
|
|
|