azure-devops-ui
Version:
React components for building web UI in Azure DevOps
165 lines (164 loc) • 5.75 kB
TypeScript
import "../../CommonImports";
import "../../Core/core.css";
import "./Splitter.css";
import * as React from "react";
import { FixedSizeLimitsFormat, ISplitterProps, SplitterDirection, SplitterElementPosition } from "../../Components/Splitter/Splitter.Props";
export declare class Splitter extends React.Component<ISplitterProps> {
protected static defaultProps: {
fixedElement: SplitterElementPosition;
splitterDirection: SplitterDirection;
fixedSizeLimitsFormat: FixedSizeLimitsFormat;
};
/**
* The position where the drag started
*/
private _dragAnchorPos;
/**
* The size of the fixed element before the drag started
*/
private _previousFixedSize;
private _fixedRef;
private _splitterContainer;
private _cachedNearElement;
private _cachedFarElement;
private events;
private uncontrolledFixedSize;
private placeholderPosition;
private fixedPaneId;
private get maxFixedSize();
private get minFixedSize();
constructor(props: ISplitterProps, context: any);
componentDidMount(): void;
componentWillUnmount(): void;
render(): JSX.Element;
private collapse;
private expand;
/**
* Renders the first child
*/
private _renderNearElement;
/**
* Renders the last child. If there are 0-1 children, will render a flexible pane
*/
private _renderFarElement;
/**
* Render the fixed pane, with size determined by state
*/
private _renderFixedPane;
private getCollapsedButtonIconName;
/**
* Render the flexible pane
*/
private _renderFlexiblePane;
/**
* Render the divider
*/
private _renderDivider;
/**
* Render the placeholder if the user is dragging
*/
private _renderDragPlaceHolder;
/**
* Keyboard handler for the divider
*/
private _onDividerKeyDown;
/**
* Fired when the user mouses down on the divider
* If there is a fixed pane, records its initial size, and attaches mouse move and mouse up events to the window
*/
private _onDividerMouseDown;
/**
* Fired when the user touches down on the divider
* If there is a fixed pane, records its initial size, and attaches mouse move and mouse up events to the window
*/
private _onDividerTouchDown;
private _onDividerDown;
/**
* Fired when the user moves their mouse, after having moused down on the divider
* Computes the new location of the placeholder
* @param event
*/
private _onDividerMouseMove;
/**
* Fired when the user moves their mouse, after having moused down on the divider
* Computes the new location of the placeholder
* @param event
*/
private _onDividerTouchMove;
/**
* Computes the new location of the placeholder based on the mouse event.
* @param event
*/
private _handleDragEvent;
/**
* Fired when the user releases their mouse, after having moused down on the divider
* Updates the size of the fixed pane, and stops the drag
* Removes window events
*/
private _onDividerMouseUp;
/**
* Fired when the user releases their touch, after having touched down on the divider
* Updates the size of the fixed pane, and stops the drag
* Removes window events
*/
private _onDividerTouchEnd;
private _onDividerEnd;
private _setFixedSize;
/**
* Move the divider in a near or far direction
* @param direction The Direction
*/
private _moveDivider;
/** Attaches mouse events to the window */
private _attachMouseWindowEvents;
/** Detaches mouse events to the window */
private _detachMouseWindowEvents;
/** Attaches touch events to the window */
private _attachTouchWindowEvents;
/** Detaches touch events to the window */
private _detachTouchWindowEvents;
/**
* Get a X/Y position of a mouse event, relative to the splitter container and depending on the splitter direction
* The position will be bounded within the splitter container and the min/max widths of the fixed panel
* @param event
*/
private _getEventBoundedClientPos;
/**
* Given a position relative to the window, get a position relative to the splitter container and depending on the splitter direction
* The position will be bounded within the splitter container and the min/max widths of the fixed panel
* @param clientPos The position relative to the window
* @param props The props to use
*/
private _getBoundedClientPos;
/**
* Compute the allowable pixel value bounds for the splitter
* @param props The props to use
*/
private _getSplitterBoundaries;
/**
* Gets a new width from the initial size, a delta, and splitter props
*
* @param initialSize The initial width
* @param delta The new position minus the drag anchor
* @param props The splitter props to use
*/
private _getNewFixedSize;
private isCollapsed;
/**
* Indicates if a drag operation is in process
*/
private _isDragging;
/**
* Get the size (width or height) of an element, based on the splitter direction
* @param element The element
*/
private _getElementSize;
/**
* Get the start position (left or top) of an element, based on the splitter direction
* @param element The element
*/
private _getElementStartPos;
private _fireWindowResize;
private _getSizeLimitValue;
private refresh;
}