@@ -70,17 +70,25 @@ export class DataInputSchemaService {
70
70
71
71
private getInputSchemaSteps (
72
72
schema : ComposedSchema ,
73
- isAssessment : boolean ,
74
73
workflowData ?: JsonObject ,
74
+ assessmentWorkflowData ?: JsonObject ,
75
75
) : WorkflowInputSchemaStep [ ] {
76
76
return Object . entries ( schema . properties ) . map ( ( [ key , curSchema ] ) => {
77
- const data = ( workflowData ?. [ key ] as JsonObject ) ?? { } ;
77
+ const data = this . extractInnerProperty ( workflowData , key ) ;
78
+ const assessmentData = this . extractInnerProperty (
79
+ assessmentWorkflowData ,
80
+ key ,
81
+ ) ;
82
+ const assessmentInitialState = this . extractInitialStateFromWorkflowData (
83
+ assessmentData ,
84
+ curSchema . properties ,
85
+ ) ;
78
86
return {
79
87
title : curSchema . title || key ,
80
88
key,
81
89
schema : curSchema ,
82
90
data,
83
- readonlyKeys : isAssessment ? Object . keys ( data ) : [ ] ,
91
+ readonlyKeys : this . extractObjectKeys ( assessmentInitialState ) ,
84
92
} ;
85
93
} ) ;
86
94
}
@@ -91,11 +99,11 @@ export class DataInputSchemaService {
91
99
instanceVariables ?: ProcessInstanceVariables ,
92
100
assessmentInstanceVariables ?: ProcessInstanceVariables ,
93
101
) : WorkflowInputSchemaResponse {
94
- const variables = instanceVariables ?? assessmentInstanceVariables ;
95
- const isAssessment = ! ! assessmentInstanceVariables ;
96
- const workflowData = variables
97
- ? ( variables [ WORKFLOW_DATA_KEY ] as JsonObject )
98
- : undefined ;
102
+ const instanceWorkflowData = this . extractWorkflowData ( instanceVariables ) ;
103
+ const assessmentInstanceWorkflowData = this . extractWorkflowData (
104
+ assessmentInstanceVariables ,
105
+ ) ;
106
+ const workflowData = instanceWorkflowData ?? assessmentInstanceWorkflowData ;
99
107
100
108
const res : WorkflowInputSchemaResponse = {
101
109
definition,
@@ -115,8 +123,8 @@ export class DataInputSchemaService {
115
123
if ( isComposedSchema ( resolvedSchema ) ) {
116
124
res . schemaSteps = this . getInputSchemaSteps (
117
125
resolvedSchema ,
118
- isAssessment ,
119
126
workflowData ,
127
+ assessmentInstanceWorkflowData ,
120
128
) ;
121
129
res . isComposedSchema = true ;
122
130
} else {
@@ -126,13 +134,19 @@ export class DataInputSchemaService {
126
134
resolvedSchema . properties ,
127
135
)
128
136
: { } ;
137
+ const assessmentData =
138
+ assessmentInstanceWorkflowData &&
139
+ this . extractInitialStateFromWorkflowData (
140
+ assessmentInstanceWorkflowData ,
141
+ resolvedSchema . properties ,
142
+ ) ;
129
143
res . schemaSteps = [
130
144
{
131
145
schema : resolvedSchema ,
132
146
title : resolvedSchema . title ?? SINGLE_SCHEMA_TITLE ,
133
147
key : SINGLE_SCHEMA_KEY ,
134
148
data,
135
- readonlyKeys : isAssessment ? Object . keys ( data ) : [ ] ,
149
+ readonlyKeys : this . extractObjectKeys ( assessmentData ) ,
136
150
} ,
137
151
] ;
138
152
}
@@ -144,4 +158,21 @@ export class DataInputSchemaService {
144
158
}
145
159
return res ;
146
160
}
161
+
162
+ private extractWorkflowData (
163
+ variables ?: ProcessInstanceVariables ,
164
+ ) : JsonObject | undefined {
165
+ return variables ? ( variables [ WORKFLOW_DATA_KEY ] as JsonObject ) : undefined ;
166
+ }
167
+
168
+ private extractObjectKeys ( obj : JsonObject | undefined ) : string [ ] {
169
+ return obj ? Object . keys ( obj ) : [ ] ;
170
+ }
171
+
172
+ private extractInnerProperty (
173
+ obj : JsonObject | undefined ,
174
+ key : string ,
175
+ ) : JsonObject {
176
+ return ( obj ?. [ key ] as JsonObject ) ?? { } ;
177
+ }
147
178
}
0 commit comments