UNPKG

chrome-devtools-frontend

Version:
68 lines (57 loc) 2.28 kB
// Copyright 2024 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import type {InsightModel} from '../../../../models/trace/insights/types.js'; import type * as Trace from '../../../../models/trace/trace.js'; import type * as Overlays from '../../overlays/overlays.js'; export interface InsightDetails { title: string; description: string; internalName: string; expanded: boolean; estimatedSavingsTime?: Trace.Types.Timing.Milli; estimatedSavingsBytes?: number; } export class InsightActivated extends Event { static readonly eventName = 'insightactivated'; constructor( // eslint-disable-next-line @typescript-eslint/no-explicit-any public model: InsightModel<any, any>, public insightSetKey: string) { super(InsightActivated.eventName, {bubbles: true, composed: true}); } } export class InsightDeactivated extends Event { static readonly eventName = 'insightdeactivated'; constructor() { super(InsightDeactivated.eventName, {bubbles: true, composed: true}); } } export class InsightSetHovered extends Event { static readonly eventName = 'insightsethovered'; constructor(public bounds?: Trace.Types.Timing.TraceWindowMicro) { super(InsightSetHovered.eventName, {bubbles: true, composed: true}); } } export class InsightSetZoom extends Event { static readonly eventName = 'insightsetzoom'; constructor(public bounds: Trace.Types.Timing.TraceWindowMicro) { super(InsightSetZoom.eventName, {bubbles: true, composed: true}); } } export class InsightProvideOverlays extends Event { static readonly eventName = 'insightprovideoverlays'; constructor( public overlays: Array<Overlays.Overlays.TimelineOverlay>, public options: Overlays.Overlays.TimelineOverlaySetOptions) { super(InsightProvideOverlays.eventName, {bubbles: true, composed: true}); } } declare global { interface GlobalEventHandlersEventMap { [InsightActivated.eventName]: InsightActivated; [InsightDeactivated.eventName]: InsightDeactivated; [InsightSetHovered.eventName]: InsightSetHovered; [InsightSetZoom.eventName]: InsightSetZoom; [InsightProvideOverlays.eventName]: InsightProvideOverlays; } }