[reactstrap] Don't declare "popper.js" module, prevent TypeScript conflict error (#22680)

* [reactstrap] Define Popper.js only internally

* [reactstrap] Switching 'declare namespace' to 'export as namespace'
This commit is contained in:
Kurt Preston
2018-01-05 11:25:20 -08:00
committed by Mohamed Hegazy
parent 10e2aa1652
commit cea02f1111
3 changed files with 105 additions and 104 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
/// <reference types='react' />
/// <reference path="./Popper.d.ts" />
import { CSSModule } from '../index';
import {Popper} from './Popper';
export interface PopoverProps extends React.HTMLAttributes<HTMLElement> {
isOpen?: boolean;
+103 -102
View File
@@ -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<string, any>) | 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<string, any>) | 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;
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
/// <reference types='react' />
/// <reference path="./Popper.d.ts" />
import { CSSModule } from '../index';
import {Popper} from './Popper';
export interface UncontrolledProps extends React.HTMLAttributes<HTMLElement> {
target: string | HTMLElement;