@@ -37,6 +37,8 @@ enum EVENT_NAMES {
3737 expandableChanged = 'expandableChanged' ,
3838
3939 conditionChanged = 'conditionChanged' ,
40+
41+ loopChanged = 'loopChanged' ,
4042}
4143
4244export default class TreeNode {
@@ -160,6 +162,10 @@ export default class TreeNode {
160162 return this . node . hasCondition ( ) && ! this . node . conditionGroup ;
161163 }
162164
165+ get loop ( ) : boolean {
166+ return this . node . hasLoop ( ) ;
167+ }
168+
163169 get children ( ) : TreeNode [ ] | null {
164170 return this . node . children ?. map ( ( node ) => this . tree . getTreeNode ( node ) ) || null ;
165171 }
@@ -222,6 +228,14 @@ export default class TreeNode {
222228 } ;
223229 }
224230
231+ onLoopChanged ( fn : ( treeNode : TreeNode ) => void ) : IPublicTypeDisposable {
232+ this . event . on ( EVENT_NAMES . loopChanged , fn ) ;
233+
234+ return ( ) => {
235+ this . event . off ( EVENT_NAMES . loopChanged , fn ) ;
236+ } ;
237+ }
238+
225239 onExpandableChanged ( fn : ( expandable : boolean ) => void ) : IPublicTypeDisposable {
226240 this . event . on ( EVENT_NAMES . expandableChanged , fn ) ;
227241 return ( ) => {
@@ -244,6 +258,10 @@ export default class TreeNode {
244258 this . event . emit ( EVENT_NAMES . conditionChanged , this . condition ) ;
245259 }
246260
261+ notifyLoopChanged ( ) : void {
262+ this . event . emit ( EVENT_NAMES . loopChanged , this . loop ) ;
263+ }
264+
247265 setHidden ( flag : boolean ) {
248266 if ( this . node . conditionGroup ) {
249267 return ;
0 commit comments