new feature: add custom style in replayer (#87)
* new feature: add custom style in replayer * concat style rules for loop
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,6 +1,7 @@
|
|||||||
.vscode
|
.vscode
|
||||||
node_modules
|
node_modules
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
yarn.lock
|
||||||
build
|
build
|
||||||
dist
|
dist
|
||||||
es
|
es
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import {
|
|||||||
Emitter,
|
Emitter,
|
||||||
} from '../types';
|
} from '../types';
|
||||||
import { mirror } from '../utils';
|
import { mirror } from '../utils';
|
||||||
import getInjectStyleRules from './styles/inject-style';
|
import getInjectStyleRules from './styles/inject-style';
|
||||||
import './styles/style.css';
|
import './styles/style.css';
|
||||||
|
|
||||||
const SKIP_TIME_THRESHOLD = 10 * 1000;
|
const SKIP_TIME_THRESHOLD = 10 * 1000;
|
||||||
@@ -72,6 +72,7 @@ export class Replayer {
|
|||||||
showDebug: false,
|
showDebug: false,
|
||||||
blockClass: 'rr-block',
|
blockClass: 'rr-block',
|
||||||
liveMode: false,
|
liveMode: false,
|
||||||
|
insertStyleRules: [],
|
||||||
};
|
};
|
||||||
this.config = Object.assign({}, defaultConfig, config);
|
this.config = Object.assign({}, defaultConfig, config);
|
||||||
|
|
||||||
@@ -286,9 +287,9 @@ export class Replayer {
|
|||||||
const styleEl = document.createElement('style');
|
const styleEl = document.createElement('style');
|
||||||
const { documentElement, head } = this.iframe.contentDocument!;
|
const { documentElement, head } = this.iframe.contentDocument!;
|
||||||
documentElement!.insertBefore(styleEl, head);
|
documentElement!.insertBefore(styleEl, head);
|
||||||
const injectStyleRules = getInjectStyleRules(this.config.blockClass);
|
const injectStylesRules = getInjectStyleRules(this.config.blockClass).concat(this.config.insertStyleRules);
|
||||||
for (let idx = 0; idx < injectStyleRules.length; idx++) {
|
for (let idx = 0; idx < injectStylesRules.length; idx++) {
|
||||||
(styleEl.sheet! as CSSStyleSheet).insertRule(injectStyleRules[idx], idx);
|
(styleEl.sheet! as CSSStyleSheet).insertRule(injectStylesRules[idx], idx);
|
||||||
}
|
}
|
||||||
this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded);
|
this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded);
|
||||||
this.waitForStylesheetLoad();
|
this.waitForStylesheetLoad();
|
||||||
|
|||||||
@@ -244,6 +244,7 @@ export type playerConfig = {
|
|||||||
showDebug: boolean;
|
showDebug: boolean;
|
||||||
blockClass: string;
|
blockClass: string;
|
||||||
liveMode: boolean;
|
liveMode: boolean;
|
||||||
|
insertStyleRules: string[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type playerMetaData = {
|
export type playerMetaData = {
|
||||||
|
|||||||
1
typings/types.d.ts
vendored
1
typings/types.d.ts
vendored
@@ -195,6 +195,7 @@ export declare type playerConfig = {
|
|||||||
showDebug: boolean;
|
showDebug: boolean;
|
||||||
blockClass: string;
|
blockClass: string;
|
||||||
liveMode: boolean;
|
liveMode: boolean;
|
||||||
|
insertStyleRules: string[];
|
||||||
};
|
};
|
||||||
export declare type playerMetaData = {
|
export declare type playerMetaData = {
|
||||||
totalTime: number;
|
totalTime: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user