@@ -6,16 +6,22 @@ import {
66} from '@alilc/lowcode-types' ;
77import { isNode } from '@alilc/lowcode-utils' ;
88
9- export interface IActiveTracker extends Omit < IPublicModelActiveTracker , 'track' > {
10- track ( originalTarget : IPublicTypeActiveTarget | INode ) : void ;
9+ export interface IActiveTracker extends Omit < IPublicModelActiveTracker , 'track' | 'onChange' > {
10+ track ( originalTarget : ActiveTarget | INode ) : void ;
11+
12+ onChange ( fn : ( target : ActiveTarget ) => void ) : ( ) => void ;
13+ }
14+
15+ export interface ActiveTarget extends Omit < IPublicTypeActiveTarget , 'node' > {
16+ node : INode ;
1117}
1218
1319export class ActiveTracker implements IActiveTracker {
1420 private emitter : IEventBus = createModuleEventBus ( 'ActiveTracker' ) ;
1521
16- @obx . ref private _target ?: IPublicTypeActiveTarget | INode ;
22+ @obx . ref private _target ?: ActiveTarget | INode ;
1723
18- track ( originalTarget : IPublicTypeActiveTarget | INode ) {
24+ track ( originalTarget : ActiveTarget | INode ) {
1925 let target = originalTarget ;
2026 if ( isNode ( originalTarget ) ) {
2127 target = { node : originalTarget as INode } ;
@@ -25,11 +31,11 @@ export class ActiveTracker implements IActiveTracker {
2531 }
2632
2733 get currentNode ( ) {
28- return ( this . _target as IPublicTypeActiveTarget ) ?. node ;
34+ return ( this . _target as ActiveTarget ) ?. node ;
2935 }
3036
3137 get detail ( ) {
32- return ( this . _target as IPublicTypeActiveTarget ) ?. detail ;
38+ return ( this . _target as ActiveTarget ) ?. detail ;
3339 }
3440
3541 /**
@@ -41,10 +47,10 @@ export class ActiveTracker implements IActiveTracker {
4147 }
4248
4349 get instance ( ) {
44- return ( this . _target as IPublicTypeActiveTarget ) ?. instance ;
50+ return ( this . _target as ActiveTarget ) ?. instance ;
4551 }
4652
47- onChange ( fn : ( target : IPublicTypeActiveTarget ) => void ) : ( ) => void {
53+ onChange ( fn : ( target : ActiveTarget ) => void ) : ( ) => void {
4854 this . emitter . addListener ( 'change' , fn ) ;
4955 return ( ) => {
5056 this . emitter . removeListener ( 'change' , fn ) ;
0 commit comments