UNPKG

@microsoft/sp-webpart-base

Version:

SharePoint Framework support for building web parts

106 lines 5.12 kB
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