office-ui-fabric-react
Version:
Reusable React components for building experiences for Microsoft 365.
129 lines (128 loc) • 3.66 kB
TypeScript
import * as React from 'react';
import { ITheme, IStyle } from '../../Styling';
import { IRefObject, IStyleFunctionOrObject } from '../../Utilities';
import { IButtonProps } from '../../Button';
import { IIconProps } from '../../Icon';
/**
* {@docCategory SearchBox}
*/
export interface ISearchBox {
/**
* Sets focus inside the search input box.
*/
focus(): void;
/**
* Returns whether or not the SearchBox has focus
*/
hasFocus(): boolean;
}
/**
* {@docCategory SearchBox}
*/
export interface ISearchBoxProps extends React.InputHTMLAttributes<HTMLInputElement> {
/**
* Optional callback to access the ISearchBox interface. Use this instead of ref for accessing
* the public methods and properties of the component.
*/
componentRef?: IRefObject<ISearchBox>;
/**
* Placeholder for the search box.
*/
placeholder?: string;
/**
* Deprecated. Use `placeholder` instead.
* @deprecated Use `placeholder` instead.
*/
labelText?: string;
/**
* Callback function for when the typed input for the SearchBox has changed.
*/
onChange?: (event?: React.ChangeEvent<HTMLInputElement>, newValue?: string) => void;
/**
* Callback executed when the user presses enter in the search box.
*/
onSearch?: (newValue: any) => void;
/**
* Callback executed when the user clears the search box by either clicking 'X' or hitting escape.
*/
onClear?: (ev?: any) => void;
/**
* Callback executed when the user presses escape in the search box.
*/
onEscape?: (ev?: any) => void;
/**
* Deprecated at v0.52.2, use `onChange` instead.
* @deprecated Use `onChange` instead.
*/
onChanged?: (newValue: any) => void;
/**
* The value of the text in the SearchBox.
*/
value?: string;
/**
* The default value of the text in the SearchBox, in the case of an uncontrolled component.
* This prop is being deprecated since so far, uncontrolled behavior has not been implemented.
* @deprecated Not implemented.
*/
defaultValue?: string;
/**
* CSS class to apply to the SearchBox.
*/
className?: string;
/**
* The aria label of the SearchBox for the benefit of screen readers.
*/
ariaLabel?: string;
/**
* The props for the clear button.
*/
clearButtonProps?: IButtonProps;
/**
* The props for the icon.
*/
iconProps?: Pick<IIconProps, Exclude<keyof IIconProps, 'className'>>;
/**
* The role assigned to the root DIV element of the SearchBox, useful for defining a landmark role, such as "search".
*/
role?: string;
/**
* Whether or not the SearchBox is underlined.
* @defaultvalue false
*/
underlined?: boolean;
/**
* Theme (provided through customization).
*/
theme?: ITheme;
/**
* Call to provide customized styling that will layer on top of the variant rules.
*/
styles?: IStyleFunctionOrObject<ISearchBoxStyleProps, ISearchBoxStyles>;
/**
* Whether or not to animate the SearchBox icon on focus.
* @defaultvalue false
*/
disableAnimation?: boolean;
}
/**
* {@docCategory SearchBox}
*/
export interface ISearchBoxStyleProps {
theme: ITheme;
className?: string;
disabled?: boolean;
hasFocus?: boolean;
underlined?: boolean;
hasInput?: boolean;
disableAnimation?: boolean;
}
/**
* {@docCategory SearchBox}
*/
export interface ISearchBoxStyles {
root?: IStyle;
iconContainer?: IStyle;
icon?: IStyle;
field?: IStyle;
clearButton?: IStyle;
}