lighthouse
Version:
Automated auditing, performance metrics, and best practices for the web.
73 lines • 3.19 kB
TypeScript
export type DOM = import("./dom.js").DOM;
export type DetailsRenderer = import("./details-renderer.js").DetailsRenderer;
export type CRCSegment = {
node: LH.Audit.Details.SimpleCriticalRequestNode[string];
isLastChild: boolean;
hasChildren: boolean;
startTime: number;
transferSize: number;
treeMarkers: boolean[];
};
/** @typedef {import('./dom.js').DOM} DOM */
/** @typedef {import('./details-renderer.js').DetailsRenderer} DetailsRenderer */
/**
* @typedef CRCSegment
* @property {LH.Audit.Details.SimpleCriticalRequestNode[string]} node
* @property {boolean} isLastChild
* @property {boolean} hasChildren
* @property {number} startTime
* @property {number} transferSize
* @property {boolean[]} treeMarkers
*/
export class CriticalRequestChainRenderer {
/**
* Create render context for critical-request-chain tree display.
* @param {LH.Audit.Details.SimpleCriticalRequestNode} tree
* @return {{tree: LH.Audit.Details.SimpleCriticalRequestNode, startTime: number, transferSize: number}}
*/
static initTree(tree: LH.Audit.Details.SimpleCriticalRequestNode): {
tree: LH.Audit.Details.SimpleCriticalRequestNode;
startTime: number;
transferSize: number;
};
/**
* Helper to create context for each critical-request-chain node based on its
* parent. Calculates if this node is the last child, whether it has any
* children itself and what the tree looks like all the way back up to the root,
* so the tree markers can be drawn correctly.
* @param {LH.Audit.Details.SimpleCriticalRequestNode} parent
* @param {string} id
* @param {number} startTime
* @param {number} transferSize
* @param {Array<boolean>=} treeMarkers
* @param {boolean=} parentIsLastChild
* @return {CRCSegment}
*/
static createSegment(parent: LH.Audit.Details.SimpleCriticalRequestNode, id: string, startTime: number, transferSize: number, treeMarkers?: Array<boolean> | undefined, parentIsLastChild?: boolean | undefined): CRCSegment;
/**
* Creates the DOM for a tree segment.
* @param {DOM} dom
* @param {CRCSegment} segment
* @param {DetailsRenderer} detailsRenderer
* @return {Node}
*/
static createChainNode(dom: DOM, segment: CRCSegment, detailsRenderer: DetailsRenderer): Node;
/**
* Recursively builds a tree from segments.
* @param {DOM} dom
* @param {DocumentFragment} tmpl
* @param {CRCSegment} segment
* @param {Element} elem Parent element.
* @param {LH.Audit.Details.CriticalRequestChain} details
* @param {DetailsRenderer} detailsRenderer
*/
static buildTree(dom: DOM, tmpl: DocumentFragment, segment: CRCSegment, elem: Element, details: LH.Audit.Details.CriticalRequestChain, detailsRenderer: DetailsRenderer): void;
/**
* @param {DOM} dom
* @param {LH.Audit.Details.CriticalRequestChain} details
* @param {DetailsRenderer} detailsRenderer
* @return {Element}
*/
static render(dom: DOM, details: LH.Audit.Details.CriticalRequestChain, detailsRenderer: DetailsRenderer): Element;
}
//# sourceMappingURL=crc-details-renderer.d.ts.map