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;