UNPKG

1.88 kBTypeScriptView Raw
1import * as React from 'react';
2
3export interface TETHER_PLACEMENT {
4 auto: 'auto';
5 topLeft: 'topLeft';
6 top: 'top';
7 topRight: 'topRight';
8 rightTop: 'rightTop';
9 right: 'right';
10 rightBottom: 'rightBottom';
11 bottomRight: 'bottomRight';
12 bottom: 'bottom';
13 bottomLeft: 'bottomLeft';
14 leftBottom: 'leftBottom';
15 left: 'left';
16 leftTop: 'leftTop';
17}
18
19export type TetherPlacement = TETHER_PLACEMENT;
20
21export interface NormalizedOffset {
22 top: number;
23 left: number;
24}
25
26export interface NormalizedOffsets {
27 arrow?: NormalizedOffset;
28 popper: NormalizedOffset;
29}
30
31export interface PopperOffset {
32 top?: number | null;
33 left?: number | null;
34}
35
36export interface PopperDataObject {
37 offsets: {
38 arrow?: PopperOffset;
39 popper: PopperOffset;
40 };
41 placement: string;
42}
43
44export interface TetherProps {
45 anchorRef?: React.Ref<HTMLElement>;
46 arrowRef?: React.Ref<HTMLElement>;
47 popperRef?: React.Ref<HTMLElement>;
48 children: React.ReactNode;
49 onPopperUpdate?: (
50 offsets: NormalizedOffsets,
51 popper: PopperDataObject,
52 ) => any;
53 placement?: TETHER_PLACEMENT[keyof TETHER_PLACEMENT];
54 popperOptions?: any;
55}
56export interface TetherState {
57 isMounted: boolean;
58}
59
60export class TetherBehavior extends React.Component<TetherProps, TetherState> {
61 state: {
62 isMounted: boolean;
63 };
64 initializePopper(): void;
65 onPopperUpdate(data: PopperDataObject): void;
66 destroyPopover(): void;
67}
68
69export interface LayersManagerProps {
70 children: React.ReactNode;
71 zIndex?: number;
72}
73export interface LayerProps {
74 children: React.ReactNode;
75 host?: HTMLElement;
76 index?: number;
77 mountNode?: HTMLElement;
78 onMount?: () => any;
79 onUnmount?: () => any;
80}
81export class LayersManager extends React.Component<LayersManagerProps> {
82 host: React.Ref<HTMLElement>;
83}
84export const Layer: React.FC<LayerProps>;
85
86export const TETHER_PLACEMENT: TETHER_PLACEMENT;