* Add `recordCrossOriginIframe` setting * Set up messaging between iframes * should emit full snapshot event from iframe as mutation event * this.mirror was dropped on attachIframe * should use unique id for child of iframe * Cross origin iframe recording in `yarn live-stream` * Root iframe check thats supported by firefox * Live stream: Inject script in all frames * Record same origin and cross origin iframes differently * Should map Input events correctly * Turn on other tests * Fix compatibility with newer puppeteer * puppeteer vs 12 seems stable without to many changes needed * normalize port numbers in snapshots * Handle scroll and ViewportResize events in cross origin iframe * Correctly map cross origin mutations * Map selection events for cross origin iframes * Map canvas mutations for cross origin iframes * Update snapshot to include canvas events * Skip all meta events * Support custom events as best we can in cross origin iframes * Use earliest version of puppeteer that works with cross origin live-stream * Map mouse/touch interaction events * Update snapshots for correctly mapped click events * Tweak tests for new puppeteer version * Map MediaInteraction correctly for cross origin iframes * Make tests consistent between high and low dpi devices * Make test less flaky * Make test less flaky * Make test less flaky * Make test less flaky * Add support for styles in cross origin iframes * Map traditional stylesheet mutations on cross origin iframes * Add todo * Add iframe mirror * Get iframe manager to use iframe mirrors internally * Rename `IframeMirror` to `CrossOriginIframeMirror` * Setup basic cross origin canvas webrtc streaming * Clean up removed canvas elements * reset style mirror on new full snapshot * Fix cross origin canvas webrtc streaming * Make emit optional * Run tests on github actions * Upload image artifacts from failed tests * Use newer github actions * Test: hopefully adding more wait will fix it * add extra wait * Fix image snapshot tests * Make tests run with new puppeteer version * upgrade eslint-plugin-jest * Chore: Remove travis ci as ci's running on github actions * Chore: Support recording cross origin iframe in repl * Force developers to update the cross origin iframe mapping when adding new events https://github.com/rrweb-io/rrweb/pull/1035#discussion_r1012516277 * Document cross origin iframe recording * Docs: cross origin iframes recording methods * Docs: AI translated, cross origin iframe recording * rename getParentId to getId * Migrate to @rrweb/types * Run on pull request * doc: improve Chinese doc * Rename `parentId` to `Id` Co-authored-by: Mark-Fenng <f18846188605@gmail.com>
80 lines
2.0 KiB
TypeScript
Executable File
80 lines
2.0 KiB
TypeScript
Executable File
import { playerConfig } from 'rrweb/typings/types';
|
|
import { eventWithTime } from '@rrweb/types';
|
|
import { Replayer, mirror } from 'rrweb';
|
|
import { SvelteComponent } from 'svelte';
|
|
|
|
export type RRwebPlayerOptions = {
|
|
target: HTMLElement;
|
|
props: {
|
|
/**
|
|
* The events to replay.
|
|
* @default `[]`
|
|
*/
|
|
events: eventWithTime[];
|
|
/**
|
|
* The width of the replayer
|
|
* @defaultValue `1024`
|
|
*/
|
|
width?: number;
|
|
/**
|
|
* The height of the replayer
|
|
* @defaultValue `576`
|
|
*/
|
|
height?: number;
|
|
/**
|
|
* The maximum scale of the replayer (1 = 100%). Set to 0 for unlimited
|
|
* @defaultValue `1`
|
|
*/
|
|
maxScale?: number;
|
|
/**
|
|
* Whether to autoplay
|
|
* @defaultValue `true`
|
|
*/
|
|
autoPlay?: boolean;
|
|
/**
|
|
* The default speed to play at
|
|
* @defaultValue `1`
|
|
*/
|
|
speed?: number;
|
|
/**
|
|
* Speed options in UI
|
|
* @defaultValue `[1, 2, 4, 8]`
|
|
*/
|
|
speedOption?: number[];
|
|
/**
|
|
* Whether to show the controller UI
|
|
* @defaultValue `true`
|
|
*/
|
|
showController?: boolean;
|
|
/**
|
|
* Customize the custom events style with a key-value map
|
|
* @defaultValue `{}`
|
|
*/
|
|
tags?: Record<string, string>;
|
|
/**
|
|
* Customize the color of inactive periods indicator in the progress bar with a valid CSS color string.
|
|
* @defaultValue `#D4D4D4`
|
|
*/
|
|
inactiveColor?: string;
|
|
} & Partial<playerConfig>;
|
|
};
|
|
|
|
export default class rrwebPlayer extends SvelteComponent {
|
|
constructor(options: RRwebPlayerOptions);
|
|
|
|
addEventListener(event: string, handler: (params: any) => unknown): void;
|
|
|
|
addEvent(event: eventWithTime): void;
|
|
getMetaData: Replayer['getMetaData'];
|
|
getReplayer: () => Replayer;
|
|
getMirror: () => typeof mirror;
|
|
|
|
toggle: () => void;
|
|
setSpeed: (speed: number) => void;
|
|
toggleSkipInactive: () => void;
|
|
triggerResize: () => void;
|
|
play: () => void;
|
|
pause: () => void;
|
|
goto: (timeOffset: number, play?: boolean) => void;
|
|
}
|