From 46f9be54433f2869c6f8639d09cd0734a6c8a0a9 Mon Sep 17 00:00:00 2001 From: Kelsey Jackson Date: Thu, 18 Dec 2025 09:02:31 -0600 Subject: [PATCH] got it working, but may revert to use on repo --- packages/webawesome/src/events/events.ts | 1 + .../webawesome/src/events/video-change.ts | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 packages/webawesome/src/events/video-change.ts diff --git a/packages/webawesome/src/events/events.ts b/packages/webawesome/src/events/events.ts index c0c8681f8..0571baf7d 100644 --- a/packages/webawesome/src/events/events.ts +++ b/packages/webawesome/src/events/events.ts @@ -28,3 +28,4 @@ export type { WaSlideChangeEvent } from './slide-change.js'; export type { WaStartEvent } from './start.js'; export type { WaTabHideEvent } from './tab-hide.js'; export type { WaTabShowEvent } from './tab-show.js'; +export type { WaVideoChangeEvent } from './video-change.js'; diff --git a/packages/webawesome/src/events/video-change.ts b/packages/webawesome/src/events/video-change.ts new file mode 100644 index 000000000..b292d4b1a --- /dev/null +++ b/packages/webawesome/src/events/video-change.ts @@ -0,0 +1,26 @@ +export class WaVideoChangeEvent extends Event { + readonly detail: WaVideoChangeEventDetail; + + constructor(detail: WaVideoChangeEventDetail) { + super('wa-video-change', { bubbles: true, cancelable: false, composed: true }); + this.detail = detail; + } +} + +export interface WaVideoChangeEventDetail { + previousIndex: number; + currentIndex: number; + video: { + title?: string; + poster?: string; + duration?: string; + sources: { src: string; type: string }[]; + tracks: { src: string; kind: string; srclang: string; label: string }[]; + }; +} + +declare global { + interface GlobalEventHandlersEventMap { + 'wa-video-change': WaVideoChangeEvent; + } +}