@uifabric/experiments
Version:
Experimental React components for building experiences for Office 365.
88 lines (87 loc) • 3.45 kB
TypeScript
import { ImageLoadState, IBaseProps } from 'office-ui-fabric-react';
import { IComponentStyles, IHTMLSlot, ISlotProp, IComponent, IStyleableComponentProps } from '../../Foundation';
import { IPersonaPresenceSlot } from '../../utilities/factoryComponents.types';
import { IPersonaCoinImageSlot } from './PersonaCoinImage/PersonaCoinImage.types';
import { IPersonaCoinSize10Slot } from './PersonaCoinSize10/PersonaCoinSize10';
export declare type IPersonaCoinComponent = IComponent<IPersonaCoinProps, IPersonaCoinTokens, IPersonaCoinStyles, IPersonaCoinViewProps>;
export declare type IPersonaCoinTokenReturnType = ReturnType<Extract<IPersonaCoinComponent['tokens'], Function>>;
export declare type IPersonaCoinStylesReturnType = ReturnType<Extract<IPersonaCoinComponent['styles'], Function>>;
export declare type IPersonaCoinSlot = ISlotProp<IPersonaCoinProps, string>;
export interface IPersonaCoinSlots {
/**
* Slot for the root element.
*/
root?: IHTMLSlot;
/**
* Slot for the image element
*/
image?: IPersonaCoinImageSlot;
/**
* Slot for the initials element
*/
initials?: IPersonaCoinSlot;
/**
* Slot for the presence element
*/
presence?: IPersonaPresenceSlot;
/**
* Slot for the alternative coin for the smallest persona size
*/
personaCoinSize10?: IPersonaCoinSize10Slot;
}
export declare type PersonaCoinSize = 10 | 16 | 24 | 28 | 32 | 40 | 48 | 56 | 72 | 100;
export interface IPersonaCoinProps extends IPersonaCoinSlots, IStyleableComponentProps<IPersonaCoinProps, IPersonaCoinTokens, IPersonaCoinStyles>, IBaseProps<IPersonaCoinComponent> {
/**
* Whether initials are calculated for phone numbers and number sequences.
* Example: Set property to true to get initials for project names consisting of numbers only.
* @defaultvalue false
*/
allowPhoneInitials?: boolean;
/**
* The color that should be used when rendering the coin.
*/
coinColor?: string;
/**
* This will be used to extract initials from if `initials` is not passed.
*/
text?: string;
/**
* Size of the coin
* @defaultvalue 48
*/
size?: PersonaCoinSize;
/**
* Url to the image to use, should be a square aspect ratio and big enough to fit in the image area.
*/
imageUrl?: string;
/**
* If true, adds the css class 'is-fadeIn' to the image.
* @defaultvalue true
*/
imageShouldFadeIn?: boolean;
/**
* If true, the image starts as visible and is hidden on error. Otherwise, the image is hidden until
* it is successfully loaded. This disables imageShouldFadeIn.
* @defaultvalue true
*/
imageShouldStartVisible?: boolean;
/**
* Alt text for the image to use. Defaults to an empty string.
*/
imageAlt?: string;
/**
* Optional callback for when loading state of the photo changes
*/
onPhotoLoadingStateChange?: (newImageLoadState: ImageLoadState) => void;
/**
* The color of the user's initials that are displayed.
* @defaultvalue 'white'
*/
initialsColor?: string;
}
export interface IPersonaCoinViewProps extends IPersonaCoinProps {
isPictureLoaded?: boolean;
}
export interface IPersonaCoinTokens {
}
export declare type IPersonaCoinStyles = IComponentStyles<IPersonaCoinSlots>;