88 Path ,
99 StepValidatorContext
1010} from 'sequential-workflow-editor-model' ;
11- import { EditorServices , ValueEditorEditorFactoryResolver } from './value-editors' ;
11+ import { EditorServices , ValueEditorFactoryResolver } from './value-editors' ;
1212import {
1313 GlobalEditorContext ,
1414 RootEditorProvider ,
@@ -30,19 +30,21 @@ export class EditorProvider<TDefinition extends Definition> {
3030 const definitionWalker = configuration . definitionWalker ?? new DefinitionWalker ( ) ;
3131 const activator = ModelActivator . create ( definitionModel , configuration . uidGenerator ) ;
3232 const validator = DefinitionValidator . create ( definitionModel , definitionWalker ) ;
33- return new EditorProvider ( activator , validator , definitionModel , definitionWalker , configuration ) ;
33+ const valueEditorFactoryResolver = ValueEditorFactoryResolver . create ( configuration . extensions ) ;
34+ return new EditorProvider ( activator , validator , definitionModel , definitionWalker , valueEditorFactoryResolver , configuration ) ;
3435 }
3536
3637 private readonly services : EditorServices = {
3738 activator : this . activator ,
38- valueEditorFactoryResolver : ValueEditorEditorFactoryResolver . resolve
39+ valueEditorFactoryResolver : this . valueEditorFactoryResolver
3940 } ;
4041
4142 private constructor (
4243 private readonly activator : ModelActivator < TDefinition > ,
4344 private readonly validator : DefinitionValidator ,
4445 private readonly definitionModel : DefinitionModel ,
4546 private readonly definitionWalker : DefinitionWalker ,
47+ private readonly valueEditorFactoryResolver : ValueEditorFactoryResolver ,
4648 private readonly configuration : EditorProviderConfiguration
4749 ) { }
4850
@@ -82,11 +84,17 @@ export class EditorProvider<TDefinition extends Definition> {
8284 const editor = Editor . create ( headerData , validator , propertyModels , definitionContext , this . services , typeClassName ) ;
8385
8486 editor . onValuesChanged . subscribe ( ( paths : Path [ ] ) => {
85- if ( paths . some ( path => path . equals ( stepModel . name . value . path ) ) ) {
87+ const isNameChanged = paths . some ( path => path . equals ( stepModel . name . value . path ) ) ;
88+ if ( isNameChanged ) {
8689 context . notifyNameChanged ( ) ;
87- } else {
88- context . notifyPropertiesChanged ( ) ;
90+ return ;
8991 }
92+ const areBranchesChanged = paths . some ( path => path . equals ( 'branches' ) ) ;
93+ if ( areBranchesChanged ) {
94+ context . notifyChildrenChanged ( ) ;
95+ return ;
96+ }
97+ context . notifyPropertiesChanged ( ) ;
9098 } ) ;
9199 return editor . root ;
92100 } ;
0 commit comments