11import { Emitter } from '../lib/Emitter' ;
22
3- const BUBBLE_EVENTS_CHANNEL = 'rc- c2d-bubble-events' ;
3+ const BUBBLE_EVENTS_CHANNEL = 'c2d-bubble-events' ;
44
5- interface BaseWidgetProps {
5+ export interface BaseWidgetProps {
6+ prefix ?: string ;
67 bubbleInIframe ?: boolean ;
78}
89
@@ -14,15 +15,16 @@ interface BubbleEventMessage {
1415
1516export class BaseWidget extends Emitter {
1617 _shouldBubbleEvents : boolean ;
18+ _bubbleEventsChannel : string ;
1719 _selfObserver ?: MutationObserver ;
1820 _observeNodes : Map < Node , Node > = new Map ( ) ;
1921
20- constructor ( _props : BaseWidgetProps = { } ) {
22+ constructor ( { prefix = 'all' , bubbleInIframe } : BaseWidgetProps = { } ) {
2123 super ( ) ;
2224
23- this . _shouldBubbleEvents =
24- ! ! _props . bubbleInIframe && window !== window . parent ;
25- if ( _props . bubbleInIframe ) {
25+ this . _bubbleEventsChannel = ` ${ prefix } - ${ BUBBLE_EVENTS_CHANNEL } ` ;
26+ this . _shouldBubbleEvents = ! ! bubbleInIframe && window !== window . parent ;
27+ if ( bubbleInIframe ) {
2628 this . _addBubbleEventListeners ( ) ;
2729 }
2830 }
@@ -36,7 +38,7 @@ export class BaseWidget extends Emitter {
3638 return true ;
3739 }
3840 this . _applyBubbleEvent ( {
39- channel : BUBBLE_EVENTS_CHANNEL ,
41+ channel : this . _bubbleEventsChannel ,
4042 eventName,
4143 eventArgs : JSON . stringify ( eventArgs ) ,
4244 } ) ;
@@ -52,7 +54,7 @@ export class BaseWidget extends Emitter {
5254
5355 _onBubbleEvent = ( event : MessageEvent < BubbleEventMessage | undefined > ) => {
5456 const message = event . data ;
55- if ( message ?. channel === BUBBLE_EVENTS_CHANNEL ) {
57+ if ( message ?. channel === this . _bubbleEventsChannel ) {
5658 this . _applyBubbleEvent ( message ) ;
5759 }
5860 } ;
@@ -111,10 +113,8 @@ export class BaseWidget extends Emitter {
111113 }
112114
113115 _disconnectObserver ( ) {
114- if ( this . _selfObserver ) {
115- this . _selfObserver . disconnect ( ) ;
116- this . _selfObserver = undefined ;
117- }
116+ this . _selfObserver ?. disconnect ( ) ;
117+ this . _selfObserver = undefined ;
118118 }
119119
120120 override dispose ( ) {
0 commit comments