(fn: (target: IPublicTypeActiveTarget) => void)
| 29 | } |
| 30 | |
| 31 | onChange(fn: (target: IPublicTypeActiveTarget) => void): () => void { |
| 32 | if (!fn) { |
| 33 | return () => {}; |
| 34 | } |
| 35 | return this[activeTrackerSymbol].onChange((t: ActiveTarget) => { |
| 36 | const { node: innerNode, detail, instance } = t; |
| 37 | const publicNode = ShellNode.create(innerNode); |
| 38 | const publicActiveTarget = { |
| 39 | node: publicNode!, |
| 40 | detail, |
| 41 | instance, |
| 42 | }; |
| 43 | fn(publicActiveTarget); |
| 44 | }); |
| 45 | } |
| 46 | |
| 47 | track(node: IPublicModelNode) { |
| 48 | this[activeTrackerSymbol].track((node as any)[nodeSymbol]); |