office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
58 lines (57 loc) • 2.19 kB
TypeScript
/// <reference types="react" />
import * as React from 'react';
import { ICalloutProps } from './Callout.types';
import { DirectionalHint } from '../../common/DirectionalHint';
import { BaseComponent } from '../../Utilities';
import { ICalloutPositionedInfo } from '../../utilities/positioning';
export interface ICalloutState {
positions?: ICalloutPositionedInfo;
slideDirectionalClassName?: string;
calloutElementRect?: ClientRect;
heightOffset?: number;
}
export declare class CalloutContentBase extends BaseComponent<ICalloutProps, ICalloutState> {
static defaultProps: {
preventDismissOnLostFocus: boolean;
preventDismissOnScroll: boolean;
isBeakVisible: boolean;
beakWidth: number;
gapSpace: number;
minPagePadding: number;
directionalHint: DirectionalHint;
};
private _classNames;
private _didSetInitialFocus;
private _hostElement;
private _calloutElement;
private _targetWindow;
private _bounds;
private _positionAttempts;
private _target;
private _setHeightOffsetTimer;
private _hasListeners;
private _maxHeight;
constructor(props: ICalloutProps);
componentDidUpdate(): void;
componentWillMount(): void;
componentWillUpdate(newProps: ICalloutProps): void;
componentDidMount(): void;
render(): JSX.Element | null;
dismiss: (ev?: Event | React.KeyboardEvent<HTMLElement> | React.MouseEvent<HTMLElement> | undefined) => void;
protected _dismissOnScroll(ev: Event): void;
protected _dismissOnLostFocus(ev: Event): void;
protected _setInitialFocus: () => void;
protected _onComponentDidMount: () => void;
private _addListeners();
private _removeListeners();
private _updateAsyncPosition();
private _getBeakPosition();
private _updatePosition();
private _getBounds();
private _getMaxHeight();
private _arePositionsEqual(positions, newPosition);
private _comparePositions(oldPositions, newPositions);
private _setTargetWindowAndElement(target);
private _setHeightOffsetEveryFrame();
private _getTarget(props?);
}