@@ -83,7 +83,7 @@ define([
83
83
modelStep : 1 ,
84
84
step : [
85
85
{ name : 'ml_dataSplit' , label : 'Data Split' , useApp : true } ,
86
- { name : 'ml_regression' , label : 'Regressor' , useApp : true } ,
86
+ { name : 'ml_regression' , label : 'Regressor' , useApp : true , child : [ 'pp_fit' , 'pp_predict' ] } ,
87
87
{ name : 'pp_fit' , label : 'Fit' } ,
88
88
{ name : 'pp_predict' , label : 'Predict' } ,
89
89
{ name : 'ml_evaluation' , label : 'Evaluation' , useApp : true , state : { modelType : 'rgs' } } ,
@@ -94,7 +94,7 @@ define([
94
94
modelStep : 1 ,
95
95
step : [
96
96
{ name : 'ml_dataSplit' , label : 'Data Split' , useApp : true } ,
97
- { name : 'ml_classification' , label : 'Classifier' , useApp : true } ,
97
+ { name : 'ml_classification' , label : 'Classifier' , useApp : true , child : [ 'pp_fit' , 'pp_predict' ] } ,
98
98
{ name : 'pp_fit' , label : 'Fit' } ,
99
99
{ name : 'pp_predict' , label : 'Predict' } ,
100
100
{ name : 'ml_evaluation' , label : 'Evaluation' , useApp : true , state : { modelType : 'clf' } } ,
@@ -104,7 +104,7 @@ define([
104
104
label : 'Clustering' ,
105
105
modelStep : 0 ,
106
106
step : [
107
- { name : 'ml_clustering' , label : 'Clustering' , useApp : true } ,
107
+ { name : 'ml_clustering' , label : 'Clustering' , useApp : true , child : [ 'pp_fit' , 'pp_predict' , 'pp_transform' ] } ,
108
108
{ name : 'pp_fit' , label : 'Fit' } ,
109
109
{ name : 'pp_predict' , label : 'Predict' } ,
110
110
{ name : 'pp_transform' , label : 'Transform' } ,
@@ -115,7 +115,7 @@ define([
115
115
label : 'Dimension Reduction' ,
116
116
modelStep : 0 ,
117
117
step : [
118
- { name : 'ml_dimensionReduction' , label : 'Dimension Reduction' , useApp : true } ,
118
+ { name : 'ml_dimensionReduction' , label : 'Dimension Reduction' , useApp : true , child : [ 'pp_fit' , 'pp_transform' ] } ,
119
119
{ name : 'pp_fit' , label : 'Fit' } ,
120
120
{ name : 'pp_transform' , label : 'Transform' }
121
121
]
@@ -125,7 +125,7 @@ define([
125
125
modelStep : 1 ,
126
126
step : [
127
127
{ name : 'ml_dataSplit' , label : 'Data Split' , useApp : true } ,
128
- { name : 'ml_gridSearch' , label : 'GridSearch' , useApp : true } ,
128
+ { name : 'ml_gridSearch' , label : 'GridSearch' , useApp : true , child : [ 'pp_fit' , 'pp_predict' ] } ,
129
129
{ name : 'pp_fit' , label : 'Fit' } ,
130
130
{ name : 'pp_predict' , label : 'Predict' } ,
131
131
{ name : 'ml_evaluation' , label : 'Evaluation' , useApp : true } ,
@@ -283,7 +283,7 @@ define([
283
283
let appFileList = [ ] ;
284
284
// load pipeline items
285
285
tplObj . step . forEach ( ( stepObj , idx ) => {
286
- let { name, label, useApp= false , state= { } } = stepObj ;
286
+ let { name, label, useApp= false , child = [ ] , state= { } } = stepObj ;
287
287
ppTag . appendFormatLine ( `<div class="vp-pp-item" data-flag="enabled" data-name="{0}" data-seq="{1}" data-label="{2}">
288
288
<span>{3}</span>
289
289
<div class="vp-pp-item-menu">
@@ -308,6 +308,7 @@ define([
308
308
} ;
309
309
if ( tplObj . modelStep === idx ) {
310
310
pipeObj . modelStep = true ;
311
+ pipeObj . child = child ;
311
312
}
312
313
that . state . pipeline . push ( pipeObj ) ;
313
314
// append pages
@@ -329,9 +330,9 @@ define([
329
330
let MlComponent = that . MlAppComponent [ obj . name ] ;
330
331
if ( MlComponent ) {
331
332
// DUP AREA: pp-1
332
- let { name, label , index, file } = obj ;
333
+ let { name, index, file } = obj ;
333
334
let mlComponent = new MlComponent ( {
334
- config : { id : name , name : label , path : file , category : 'Pipeline' , resizable : false } ,
335
+ config : { id : name , name : that . state . pipeline [ index ] . label , path : file , category : 'Pipeline' , resizable : false } ,
335
336
...that . state . pipeline [ index ] . state
336
337
} ) ;
337
338
mlComponent . loadState ( ) ;
@@ -363,7 +364,7 @@ define([
363
364
// DUP AREA: pp-1
364
365
let { name, label, index, file } = obj ;
365
366
let mlComponent = new MlComponent ( {
366
- config : { id : name , name : label , path : file , category : 'Pipeline' , resizable : false } ,
367
+ config : { id : name , name : that . state . pipeline [ index ] . label , path : file , category : 'Pipeline' , resizable : false } ,
367
368
...that . state . pipeline [ index ] . state
368
369
} ) ;
369
370
mlComponent . loadState ( ) ;
@@ -375,6 +376,10 @@ define([
375
376
that . state . modelType = mlComponent . state . modelType ;
376
377
let modelObj = that . modelConfig [ that . state . modelType ] ;
377
378
that . state . modelTypeName = modelObj . code . split ( '(' ) [ 0 ] ;
379
+
380
+ that . state . pipeline [ index ] . child . forEach ( childId => {
381
+ that . renderApp ( childId ) ;
382
+ } ) ;
378
383
}
379
384
// handle app view
380
385
that . handleAppView ( name , mlComponent ) ;
@@ -477,7 +482,11 @@ define([
477
482
label = com_util . optionToLabel ( label ) ;
478
483
optBox . appendFormatLine ( '<label for="{0}" title="{1}">{2}</label>'
479
484
, opt . name , opt . name , label ) ;
480
- let content = com_generator . renderContent ( this , opt . component [ 0 ] , opt , this . state ) ;
485
+ let tmpState = { } ;
486
+ if ( opt . value && opt . value !== '' ) {
487
+ tmpState [ opt . name ] = opt . value ;
488
+ }
489
+ let content = com_generator . renderContent ( this , opt . component [ 0 ] , opt , tmpState ) ;
481
490
optBox . appendLine ( content [ 0 ] . outerHTML ) ;
482
491
} ) ;
483
492
return optBox . toString ( ) ;
@@ -590,18 +599,30 @@ define([
590
599
code . appendLine ( ) ;
591
600
code . appendLine ( ) ;
592
601
}
593
- code . appendFormatLine ( "# [{0}] {1}" , stepNo , label ) ;
594
602
if ( useApp ) {
595
- code . append ( app . generateCode ( ) ) ;
603
+ let appCode = app . generateCode ( ) ;
604
+ if ( appCode instanceof Array ) {
605
+ appCode = appCode . join ( '\n' ) ;
606
+ }
607
+ if ( appCode && appCode . trim ( ) !== '' ) {
608
+ code . appendFormatLine ( "# [{0}] {1}" , stepNo ++ , label ) ;
609
+ if ( name === 'ml_evaluation' ) {
610
+ // import auto generate
611
+ code . appendLine ( app . generateImportCode ( ) . join ( '\n' ) ) ;
612
+ }
613
+ code . append ( appCode ) ;
614
+ }
596
615
// save state
597
616
that . state . pipeline [ idx ] . state = app . state ;
598
617
} else {
599
618
let ppResult = that . generateCodeForOptionPage ( name ) ;
600
- code . append ( ppResult . code ) ;
619
+ if ( ppResult && ppResult ?. code ?. trim ( ) !== '' ) {
620
+ code . appendFormatLine ( "# [{0}] {1}" , stepNo ++ , label ) ;
621
+ code . append ( ppResult . code ) ;
622
+ }
601
623
// save state
602
624
that . state . pipeline [ idx ] . state = ppResult . state ;
603
625
}
604
- stepNo ++ ;
605
626
}
606
627
} ) ;
607
628
0 commit comments