diff --git a/src/ts/main.ts b/src/ts/main.ts index bee32a7c..99a7b94e 100755 --- a/src/ts/main.ts +++ b/src/ts/main.ts @@ -11,6 +11,7 @@ import { createWaterfallSvg } from "./waterfall/svg-chart"; const defaultOptions: Readonly = { leftColumnWith: 25, legendHolder: undefined, + onParsed: undefined, pageSelector: undefined, rowHeight: 23, selectedPage: 0, @@ -20,7 +21,7 @@ const defaultOptions: Readonly = { }; function PerfCascade(waterfallDocsData: WaterfallDocs, chartOptions: Partial = {}): SVGSVGElement { - const options: ChartOptions = validateOptions({...defaultOptions, ...chartOptions}); + const options: ChartOptions = validateOptions({ ...defaultOptions, ...chartOptions }); // setup paging helper let paging = new Paging(waterfallDocsData, options.selectedPage); @@ -53,24 +54,14 @@ function PerfCascade(waterfallDocsData: WaterfallDocs, chartOptions: Partial = {}): SVGSVGElement { - return PerfCascade(HarTransformer.transformDoc(harData), options); -} - -/** - * Create new PerfCascade from PerfCascade's internal WaterfallData format - * @param {WaterfallDocs} waterfallDocsData Object containing data to render - * @param {ChartOptions} options - PerfCascade options object - * @returns {SVGSVGElement} - Chart SVG Element - */ -function fromPerfCascadeFormat(waterfallDocsData: WaterfallDocs, options: Partial = {}): SVGSVGElement { - return PerfCascade(waterfallDocsData, options); + const data = HarTransformer.transformDoc(harData); + if (typeof options.onParsed === "function") { + options.onParsed(data); + } + return PerfCascade(data, options); } -let transformHarToPerfCascade = HarTransformer.transformDoc; - // global members that get exported via UMD export { fromHar }; -export { fromPerfCascadeFormat }; -export { transformHarToPerfCascade }; export { makeLegend }; export { ChartOptions }; diff --git a/src/ts/typing/options.ts b/src/ts/typing/options.ts index 89b75d60..06399a37 100644 --- a/src/ts/typing/options.ts +++ b/src/ts/typing/options.ts @@ -1,3 +1,5 @@ +import { WaterfallDocs } from "./waterfall"; + export interface ChartOptions { /** Height of every request bar block plus spacer pixel (in px) */ rowHeight: number; @@ -15,4 +17,6 @@ export interface ChartOptions { selectedPage: number; /** Element that holds the Legend (if not set no Legend is sendered) */ legendHolder: HTMLElement; + /** Callback called when the HAR doc has been parsed into PerfCascases */ + onParsed: (data: WaterfallDocs) => void; }