diff --git a/types/reactstrap/lib/Popover.d.ts b/types/reactstrap/lib/Popover.d.ts index cc98748f0a..07634cd787 100644 --- a/types/reactstrap/lib/Popover.d.ts +++ b/types/reactstrap/lib/Popover.d.ts @@ -1,7 +1,7 @@ /// -/// import { CSSModule } from '../index'; +import {Popper} from './Popper'; export interface PopoverProps extends React.HTMLAttributes { isOpen?: boolean; diff --git a/types/reactstrap/lib/Popper.d.ts b/types/reactstrap/lib/Popper.d.ts index ee89b5a16b..b28c61bd30 100644 --- a/types/reactstrap/lib/Popper.d.ts +++ b/types/reactstrap/lib/Popper.d.ts @@ -6,128 +6,129 @@ // It should not define internal pieces such as utils or modifier details. // It has been copied from: https://raw.githubusercontent.com/FezVrasta/popper.js/master/packages/popper/index.d.ts -declare namespace Popper { - export type Position = 'top' | 'right' | 'bottom' | 'left'; +export as namespace Popper; - 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 Position = "top" | "right" | "bottom" | "left"; - export type Boundary = 'scrollParent' | 'viewport' | 'window'; +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 ModifierFn = (data: Data, options: Object) => Data; +export type Boundary = "scrollParent" | "viewport" | "window"; - export interface BaseModifier { - order?: number; - enabled?: boolean; - fn?: ModifierFn; - } +export type ModifierFn = (data: Data, options: Object) => Data; - export interface Modifiers { - shift?: BaseModifier; - offset?: BaseModifier & { - offset?: number | string, - }; - preventOverflow?: BaseModifier & { - priority?: Position[], - padding?: number, - boundariesElement?: Boundary | Element, - escapeWithReference?: boolean - }; - keepTogether?: BaseModifier; - arrow?: BaseModifier & { - element?: string | Element, - }; - flip?: BaseModifier & { - behavior?: 'flip' | 'clockwise' | 'counterclockwise' | Position[], - padding?: number, - boundariesElement?: Boundary | Element, - }; - inner?: BaseModifier; - hide?: BaseModifier; - applyStyle?: BaseModifier & { - onLoad?: Function, - gpuAcceleration?: boolean, - }; - computeStyle?: BaseModifier & { - gpuAcceleration?: boolean; - x?: 'bottom' | 'top', - y?: 'left' | 'right' - }; - [name: string]: (BaseModifier & Record) | undefined; - } +export interface BaseModifier { + order?: number; + enabled?: boolean; + fn?: ModifierFn; +} - export interface Offset { - top: number; - left: number; - width: number; - height: number; - } +export interface Modifiers { + shift?: BaseModifier; + offset?: BaseModifier & { + offset?: number | string; + }; + preventOverflow?: BaseModifier & { + priority?: Position[]; + padding?: number; + boundariesElement?: Boundary | Element; + escapeWithReference?: boolean; + }; + keepTogether?: BaseModifier; + arrow?: BaseModifier & { + element?: string | Element; + }; + flip?: BaseModifier & { + behavior?: "flip" | "clockwise" | "counterclockwise" | Position[]; + padding?: number; + boundariesElement?: Boundary | Element; + }; + inner?: BaseModifier; + hide?: BaseModifier; + applyStyle?: BaseModifier & { + onLoad?: Function; + gpuAcceleration?: boolean; + }; + computeStyle?: BaseModifier & { + gpuAcceleration?: boolean; + x?: "bottom" | "top"; + y?: "left" | "right"; + }; + [name: string]: (BaseModifier & Record) | undefined; +} - export interface Data { - instance: Popper; - placement: Placement; - originalPlacement: Placement; - flipped: boolean; - hide: boolean; - arrowElement: Element; - styles: CSSStyleDeclaration; - boundaries: Object; - offsets: { - popper: Offset, - reference: Offset, +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; + boundaries: Object; + offsets: { + popper: Offset; + reference: Offset; arrow: { - top: number, - left: number, - }, - }; - } + 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 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; - getBoundingClientRect(): ClientRect; - } - } +export interface ReferenceObject { + clientHeight: number; + clientWidth: number; + getBoundingClientRect(): ClientRect; +} - declare class Popper { +export class Popper { static modifiers: (Popper.BaseModifier & { name: string })[]; static placements: Popper.Placement[]; static Defaults: Popper.PopperOptions; options: Popper.PopperOptions; - constructor(reference: Element | Popper.ReferenceObject, popper: Element, options?: Popper.PopperOptions); + constructor( + reference: Element | Popper.ReferenceObject, + popper: Element, + options?: Popper.PopperOptions + ); destroy(): void; update(): void; scheduleUpdate(): void; enableEventListeners(): void; disableEventListeners(): void; - } - - declare module 'popper.js' { - export default Popper; - } +} diff --git a/types/reactstrap/lib/Tooltip.d.ts b/types/reactstrap/lib/Tooltip.d.ts index 6dd58efca2..bf472477c6 100644 --- a/types/reactstrap/lib/Tooltip.d.ts +++ b/types/reactstrap/lib/Tooltip.d.ts @@ -1,7 +1,7 @@ /// -/// import { CSSModule } from '../index'; +import {Popper} from './Popper'; export interface UncontrolledProps extends React.HTMLAttributes { target: string | HTMLElement;