@microsoft/sp-webpart-base
Version:
SharePoint Framework support for building web parts
106 lines • 5.12 kB
TypeScript
import type { ClearDomElementCallback } from './IClientSideWebPartStatusRenderer';
import type IClientSideWebPartStatusRenderer from './IClientSideWebPartStatusRenderer';
/**
* Options for rendering error messages
* @internal
*/
export interface IRenderErrorOptions {
clearDomElementCallback?: ClearDomElementCallback;
message?: string;
}
/**
* This class provides the default implementation for displaying loading indicator and error messages
* for web parts. The web part host can decide to provide custom implementation of how web parts display
* loading indicators and error messages.
*
* @internal
*/
export default class ClientSideWebPartStatusRenderer implements IClientSideWebPartStatusRenderer {
private _errorId;
private _activeIndicatorCache;
/**
* Returns additional time out before showing the spinner
*
* loadingDelayed - Time when asked Viewport loader to check and load web part post module load.
* inViewportLoaded - Time when web part was allowed to load by viewport loader.
*
* 1. If both loadingDelayed and inViewportLoaded are defined return the ViewportWait,
* difference between them would reflect total time in the waiting queue
* (i.e, inViewportLoaded - loadingDelayed).
* 2. If only loadingDelayed is defined (i.e, the rendering of the webpart is still in the queue)
* return a timeout of 500ms.
* 3. If both loadingDelayed and inViewportLoaded are undefined return 0 (i.e, let the things be as they are).
*
* @param webPartTag - event identifier used in written telemetry data for first party web
* parts, e.g., 'WebPart.NewsWebPart.8dd9dec2-c6b3-4d4a-819e-2a5431e901f2'.
*/
private static _getAdditionalTimeOut;
/**
* Display a loading spinner.
*
* @param domElement - the web part container div.
* @param loadingMessage - the message to be displayed when the loading spinner id displayed.
* @param timeout - (optional) timeout to render the loading indicator. Default is 1500ms.
*
* @privateRemarks
* First-party web parts should use _displayLoadingIndicator to log perf data.
*/
displayLoadingIndicator(domElement: HTMLElement, loadingMessage: string, timeout?: number, clearDomElementCallback?: ClearDomElementCallback): void;
/**
* Display a loading indicator.
*
* @param domElement - the web part container div.
* @param loadingMessage - the message to be displayed when the loading indicator id displayed.
* @param performanceLogEventName - event identifier used in written telemetry data for first party web
* parts, e.g., 'WebPart.NewsWebPart.8dd9dec2-c6b3-4d4a-819e-2a5431e901f2'.
* @param reservedHeight - reserved height
* @param isInternal - flag to indicate if web part is internal or external.
* @param timeout - (optional) timeout to render the loading indicator. Default is 1500ms.
* @param clearDomElementCallback - (optional) callback to clear the dom element.
* @param useShimmer - (optional) flag to indicate if shimmer should be used.
*
* @internal
*/
_displayLoadingIndicator(domElement: HTMLElement, loadingMessage: string, performanceLogEventName: string, reservedHeight: number | undefined, isInternal?: boolean, timeout?: number, clearDomElementCallback?: ClearDomElementCallback, useShimmer?: boolean): void;
/**
* Clear the loading indicator.
*
* @param domElement - the web part container div.
*/
clearLoadingIndicator(domElement: HTMLElement): void;
/**
* @deprecated use the IRenderErrorOptions interface instead.
*/
renderError(domElement: HTMLElement, error: Error | string, clearDomElementCallback?: ClearDomElementCallback): void;
/**
* Render the provided error message in the web part container div.
* @param domElement - the web part container div.
* @param error - the error message.
* @param options - (optional) additional options.
*/
renderError(domElement: HTMLElement, error: Error | string, options?: IRenderErrorOptions): void;
/**
* Clear the web part error message.
* @param domElement - the web part container div.
*/
clearError(domElement: HTMLElement): void;
private _createLoadingIndicator;
private _renderError;
/**
* Show the loading indicator
*
* @param domElement - the web part container div.
* @param loadingMessage - the message to be displayed when the loading Indicator id displayed.
* @param reservedHeight - the height of the loading indicator.
* @param performanceLogEventName - event identifier used in written telemetry data for first party web
* parts, e.g., 'WebPart.NewsWebPart.8dd9dec2-c6b3-4d4a-819e-2a5431e901f2'.
*/
private _showLoadingIndicator;
private _renderLoadingIndicator;
private _getCacheEntry;
private _createLoadingIndicatorElement;
private _createSpinnerElement;
private _clearChildren;
private _logEngagement;
}
//# sourceMappingURL=ClientSideWebPartStatusRenderer.d.ts.map