@allthings/structured-ticket-form 3.0.0 → 3.0.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/lib/assets/svg/VectorIcon.d.ts +3 -1
  2. package/lib/assets/svg/VectorIcon.js +10 -13
  3. package/lib/assets/svg/VectorIcon.js.map +1 -1
  4. package/lib/components/atoms/ErrorMessage.js +52 -20
  5. package/lib/components/atoms/ErrorMessage.js.map +1 -1
  6. package/lib/components/atoms/LanguageSelector.js +131 -49
  7. package/lib/components/atoms/LanguageSelector.js.map +1 -1
  8. package/lib/components/atoms/SchemaHeader.js +70 -28
  9. package/lib/components/atoms/SchemaHeader.js.map +1 -1
  10. package/lib/components/molecules/CustomForm.d.ts +3 -1
  11. package/lib/components/molecules/CustomForm.js +51 -54
  12. package/lib/components/molecules/CustomForm.js.map +1 -1
  13. package/lib/components/molecules/SchemaEditor.js +29 -40
  14. package/lib/components/molecules/SchemaEditor.js.map +1 -1
  15. package/lib/components/organism/StructuredTicketEditor.js +59 -55
  16. package/lib/components/organism/StructuredTicketEditor.js.map +1 -1
  17. package/lib/models.d.ts +1 -1
  18. package/package.json +28 -26
  19. package/coverage/clover.xml +0 -142
  20. package/coverage/coverage-final.json +0 -3
  21. package/coverage/lcov-report/base.css +0 -224
  22. package/coverage/lcov-report/block-navigation.js +0 -79
  23. package/coverage/lcov-report/favicon.png +0 -0
  24. package/coverage/lcov-report/jsonFormUtils.ts.html +0 -983
  25. package/coverage/lcov-report/prettify.css +0 -1
  26. package/coverage/lcov-report/prettify.js +0 -2
  27. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  28. package/coverage/lcov-report/sorter.js +0 -170
  29. package/coverage/lcov-report/translator.tsx.html +0 -422
  30. package/coverage/lcov.info +0 -406
@@ -1,983 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for jsonFormUtils.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="prettify.css" />
9
- <link rel="stylesheet" href="base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="index.html">All files</a> jsonFormUtils.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">88.07% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>96/109</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">71.53% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>103/144</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>28/28</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">87.25% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>89/102</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- </div>
58
- <div class='status-line high'></div>
59
- <pre><table class="coverage">
60
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
- <a name='L2'></a><a href='#L2'>2</a>
62
- <a name='L3'></a><a href='#L3'>3</a>
63
- <a name='L4'></a><a href='#L4'>4</a>
64
- <a name='L5'></a><a href='#L5'>5</a>
65
- <a name='L6'></a><a href='#L6'>6</a>
66
- <a name='L7'></a><a href='#L7'>7</a>
67
- <a name='L8'></a><a href='#L8'>8</a>
68
- <a name='L9'></a><a href='#L9'>9</a>
69
- <a name='L10'></a><a href='#L10'>10</a>
70
- <a name='L11'></a><a href='#L11'>11</a>
71
- <a name='L12'></a><a href='#L12'>12</a>
72
- <a name='L13'></a><a href='#L13'>13</a>
73
- <a name='L14'></a><a href='#L14'>14</a>
74
- <a name='L15'></a><a href='#L15'>15</a>
75
- <a name='L16'></a><a href='#L16'>16</a>
76
- <a name='L17'></a><a href='#L17'>17</a>
77
- <a name='L18'></a><a href='#L18'>18</a>
78
- <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a>
80
- <a name='L21'></a><a href='#L21'>21</a>
81
- <a name='L22'></a><a href='#L22'>22</a>
82
- <a name='L23'></a><a href='#L23'>23</a>
83
- <a name='L24'></a><a href='#L24'>24</a>
84
- <a name='L25'></a><a href='#L25'>25</a>
85
- <a name='L26'></a><a href='#L26'>26</a>
86
- <a name='L27'></a><a href='#L27'>27</a>
87
- <a name='L28'></a><a href='#L28'>28</a>
88
- <a name='L29'></a><a href='#L29'>29</a>
89
- <a name='L30'></a><a href='#L30'>30</a>
90
- <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a>
97
- <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a>
107
- <a name='L48'></a><a href='#L48'>48</a>
108
- <a name='L49'></a><a href='#L49'>49</a>
109
- <a name='L50'></a><a href='#L50'>50</a>
110
- <a name='L51'></a><a href='#L51'>51</a>
111
- <a name='L52'></a><a href='#L52'>52</a>
112
- <a name='L53'></a><a href='#L53'>53</a>
113
- <a name='L54'></a><a href='#L54'>54</a>
114
- <a name='L55'></a><a href='#L55'>55</a>
115
- <a name='L56'></a><a href='#L56'>56</a>
116
- <a name='L57'></a><a href='#L57'>57</a>
117
- <a name='L58'></a><a href='#L58'>58</a>
118
- <a name='L59'></a><a href='#L59'>59</a>
119
- <a name='L60'></a><a href='#L60'>60</a>
120
- <a name='L61'></a><a href='#L61'>61</a>
121
- <a name='L62'></a><a href='#L62'>62</a>
122
- <a name='L63'></a><a href='#L63'>63</a>
123
- <a name='L64'></a><a href='#L64'>64</a>
124
- <a name='L65'></a><a href='#L65'>65</a>
125
- <a name='L66'></a><a href='#L66'>66</a>
126
- <a name='L67'></a><a href='#L67'>67</a>
127
- <a name='L68'></a><a href='#L68'>68</a>
128
- <a name='L69'></a><a href='#L69'>69</a>
129
- <a name='L70'></a><a href='#L70'>70</a>
130
- <a name='L71'></a><a href='#L71'>71</a>
131
- <a name='L72'></a><a href='#L72'>72</a>
132
- <a name='L73'></a><a href='#L73'>73</a>
133
- <a name='L74'></a><a href='#L74'>74</a>
134
- <a name='L75'></a><a href='#L75'>75</a>
135
- <a name='L76'></a><a href='#L76'>76</a>
136
- <a name='L77'></a><a href='#L77'>77</a>
137
- <a name='L78'></a><a href='#L78'>78</a>
138
- <a name='L79'></a><a href='#L79'>79</a>
139
- <a name='L80'></a><a href='#L80'>80</a>
140
- <a name='L81'></a><a href='#L81'>81</a>
141
- <a name='L82'></a><a href='#L82'>82</a>
142
- <a name='L83'></a><a href='#L83'>83</a>
143
- <a name='L84'></a><a href='#L84'>84</a>
144
- <a name='L85'></a><a href='#L85'>85</a>
145
- <a name='L86'></a><a href='#L86'>86</a>
146
- <a name='L87'></a><a href='#L87'>87</a>
147
- <a name='L88'></a><a href='#L88'>88</a>
148
- <a name='L89'></a><a href='#L89'>89</a>
149
- <a name='L90'></a><a href='#L90'>90</a>
150
- <a name='L91'></a><a href='#L91'>91</a>
151
- <a name='L92'></a><a href='#L92'>92</a>
152
- <a name='L93'></a><a href='#L93'>93</a>
153
- <a name='L94'></a><a href='#L94'>94</a>
154
- <a name='L95'></a><a href='#L95'>95</a>
155
- <a name='L96'></a><a href='#L96'>96</a>
156
- <a name='L97'></a><a href='#L97'>97</a>
157
- <a name='L98'></a><a href='#L98'>98</a>
158
- <a name='L99'></a><a href='#L99'>99</a>
159
- <a name='L100'></a><a href='#L100'>100</a>
160
- <a name='L101'></a><a href='#L101'>101</a>
161
- <a name='L102'></a><a href='#L102'>102</a>
162
- <a name='L103'></a><a href='#L103'>103</a>
163
- <a name='L104'></a><a href='#L104'>104</a>
164
- <a name='L105'></a><a href='#L105'>105</a>
165
- <a name='L106'></a><a href='#L106'>106</a>
166
- <a name='L107'></a><a href='#L107'>107</a>
167
- <a name='L108'></a><a href='#L108'>108</a>
168
- <a name='L109'></a><a href='#L109'>109</a>
169
- <a name='L110'></a><a href='#L110'>110</a>
170
- <a name='L111'></a><a href='#L111'>111</a>
171
- <a name='L112'></a><a href='#L112'>112</a>
172
- <a name='L113'></a><a href='#L113'>113</a>
173
- <a name='L114'></a><a href='#L114'>114</a>
174
- <a name='L115'></a><a href='#L115'>115</a>
175
- <a name='L116'></a><a href='#L116'>116</a>
176
- <a name='L117'></a><a href='#L117'>117</a>
177
- <a name='L118'></a><a href='#L118'>118</a>
178
- <a name='L119'></a><a href='#L119'>119</a>
179
- <a name='L120'></a><a href='#L120'>120</a>
180
- <a name='L121'></a><a href='#L121'>121</a>
181
- <a name='L122'></a><a href='#L122'>122</a>
182
- <a name='L123'></a><a href='#L123'>123</a>
183
- <a name='L124'></a><a href='#L124'>124</a>
184
- <a name='L125'></a><a href='#L125'>125</a>
185
- <a name='L126'></a><a href='#L126'>126</a>
186
- <a name='L127'></a><a href='#L127'>127</a>
187
- <a name='L128'></a><a href='#L128'>128</a>
188
- <a name='L129'></a><a href='#L129'>129</a>
189
- <a name='L130'></a><a href='#L130'>130</a>
190
- <a name='L131'></a><a href='#L131'>131</a>
191
- <a name='L132'></a><a href='#L132'>132</a>
192
- <a name='L133'></a><a href='#L133'>133</a>
193
- <a name='L134'></a><a href='#L134'>134</a>
194
- <a name='L135'></a><a href='#L135'>135</a>
195
- <a name='L136'></a><a href='#L136'>136</a>
196
- <a name='L137'></a><a href='#L137'>137</a>
197
- <a name='L138'></a><a href='#L138'>138</a>
198
- <a name='L139'></a><a href='#L139'>139</a>
199
- <a name='L140'></a><a href='#L140'>140</a>
200
- <a name='L141'></a><a href='#L141'>141</a>
201
- <a name='L142'></a><a href='#L142'>142</a>
202
- <a name='L143'></a><a href='#L143'>143</a>
203
- <a name='L144'></a><a href='#L144'>144</a>
204
- <a name='L145'></a><a href='#L145'>145</a>
205
- <a name='L146'></a><a href='#L146'>146</a>
206
- <a name='L147'></a><a href='#L147'>147</a>
207
- <a name='L148'></a><a href='#L148'>148</a>
208
- <a name='L149'></a><a href='#L149'>149</a>
209
- <a name='L150'></a><a href='#L150'>150</a>
210
- <a name='L151'></a><a href='#L151'>151</a>
211
- <a name='L152'></a><a href='#L152'>152</a>
212
- <a name='L153'></a><a href='#L153'>153</a>
213
- <a name='L154'></a><a href='#L154'>154</a>
214
- <a name='L155'></a><a href='#L155'>155</a>
215
- <a name='L156'></a><a href='#L156'>156</a>
216
- <a name='L157'></a><a href='#L157'>157</a>
217
- <a name='L158'></a><a href='#L158'>158</a>
218
- <a name='L159'></a><a href='#L159'>159</a>
219
- <a name='L160'></a><a href='#L160'>160</a>
220
- <a name='L161'></a><a href='#L161'>161</a>
221
- <a name='L162'></a><a href='#L162'>162</a>
222
- <a name='L163'></a><a href='#L163'>163</a>
223
- <a name='L164'></a><a href='#L164'>164</a>
224
- <a name='L165'></a><a href='#L165'>165</a>
225
- <a name='L166'></a><a href='#L166'>166</a>
226
- <a name='L167'></a><a href='#L167'>167</a>
227
- <a name='L168'></a><a href='#L168'>168</a>
228
- <a name='L169'></a><a href='#L169'>169</a>
229
- <a name='L170'></a><a href='#L170'>170</a>
230
- <a name='L171'></a><a href='#L171'>171</a>
231
- <a name='L172'></a><a href='#L172'>172</a>
232
- <a name='L173'></a><a href='#L173'>173</a>
233
- <a name='L174'></a><a href='#L174'>174</a>
234
- <a name='L175'></a><a href='#L175'>175</a>
235
- <a name='L176'></a><a href='#L176'>176</a>
236
- <a name='L177'></a><a href='#L177'>177</a>
237
- <a name='L178'></a><a href='#L178'>178</a>
238
- <a name='L179'></a><a href='#L179'>179</a>
239
- <a name='L180'></a><a href='#L180'>180</a>
240
- <a name='L181'></a><a href='#L181'>181</a>
241
- <a name='L182'></a><a href='#L182'>182</a>
242
- <a name='L183'></a><a href='#L183'>183</a>
243
- <a name='L184'></a><a href='#L184'>184</a>
244
- <a name='L185'></a><a href='#L185'>185</a>
245
- <a name='L186'></a><a href='#L186'>186</a>
246
- <a name='L187'></a><a href='#L187'>187</a>
247
- <a name='L188'></a><a href='#L188'>188</a>
248
- <a name='L189'></a><a href='#L189'>189</a>
249
- <a name='L190'></a><a href='#L190'>190</a>
250
- <a name='L191'></a><a href='#L191'>191</a>
251
- <a name='L192'></a><a href='#L192'>192</a>
252
- <a name='L193'></a><a href='#L193'>193</a>
253
- <a name='L194'></a><a href='#L194'>194</a>
254
- <a name='L195'></a><a href='#L195'>195</a>
255
- <a name='L196'></a><a href='#L196'>196</a>
256
- <a name='L197'></a><a href='#L197'>197</a>
257
- <a name='L198'></a><a href='#L198'>198</a>
258
- <a name='L199'></a><a href='#L199'>199</a>
259
- <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a>
261
- <a name='L202'></a><a href='#L202'>202</a>
262
- <a name='L203'></a><a href='#L203'>203</a>
263
- <a name='L204'></a><a href='#L204'>204</a>
264
- <a name='L205'></a><a href='#L205'>205</a>
265
- <a name='L206'></a><a href='#L206'>206</a>
266
- <a name='L207'></a><a href='#L207'>207</a>
267
- <a name='L208'></a><a href='#L208'>208</a>
268
- <a name='L209'></a><a href='#L209'>209</a>
269
- <a name='L210'></a><a href='#L210'>210</a>
270
- <a name='L211'></a><a href='#L211'>211</a>
271
- <a name='L212'></a><a href='#L212'>212</a>
272
- <a name='L213'></a><a href='#L213'>213</a>
273
- <a name='L214'></a><a href='#L214'>214</a>
274
- <a name='L215'></a><a href='#L215'>215</a>
275
- <a name='L216'></a><a href='#L216'>216</a>
276
- <a name='L217'></a><a href='#L217'>217</a>
277
- <a name='L218'></a><a href='#L218'>218</a>
278
- <a name='L219'></a><a href='#L219'>219</a>
279
- <a name='L220'></a><a href='#L220'>220</a>
280
- <a name='L221'></a><a href='#L221'>221</a>
281
- <a name='L222'></a><a href='#L222'>222</a>
282
- <a name='L223'></a><a href='#L223'>223</a>
283
- <a name='L224'></a><a href='#L224'>224</a>
284
- <a name='L225'></a><a href='#L225'>225</a>
285
- <a name='L226'></a><a href='#L226'>226</a>
286
- <a name='L227'></a><a href='#L227'>227</a>
287
- <a name='L228'></a><a href='#L228'>228</a>
288
- <a name='L229'></a><a href='#L229'>229</a>
289
- <a name='L230'></a><a href='#L230'>230</a>
290
- <a name='L231'></a><a href='#L231'>231</a>
291
- <a name='L232'></a><a href='#L232'>232</a>
292
- <a name='L233'></a><a href='#L233'>233</a>
293
- <a name='L234'></a><a href='#L234'>234</a>
294
- <a name='L235'></a><a href='#L235'>235</a>
295
- <a name='L236'></a><a href='#L236'>236</a>
296
- <a name='L237'></a><a href='#L237'>237</a>
297
- <a name='L238'></a><a href='#L238'>238</a>
298
- <a name='L239'></a><a href='#L239'>239</a>
299
- <a name='L240'></a><a href='#L240'>240</a>
300
- <a name='L241'></a><a href='#L241'>241</a>
301
- <a name='L242'></a><a href='#L242'>242</a>
302
- <a name='L243'></a><a href='#L243'>243</a>
303
- <a name='L244'></a><a href='#L244'>244</a>
304
- <a name='L245'></a><a href='#L245'>245</a>
305
- <a name='L246'></a><a href='#L246'>246</a>
306
- <a name='L247'></a><a href='#L247'>247</a>
307
- <a name='L248'></a><a href='#L248'>248</a>
308
- <a name='L249'></a><a href='#L249'>249</a>
309
- <a name='L250'></a><a href='#L250'>250</a>
310
- <a name='L251'></a><a href='#L251'>251</a>
311
- <a name='L252'></a><a href='#L252'>252</a>
312
- <a name='L253'></a><a href='#L253'>253</a>
313
- <a name='L254'></a><a href='#L254'>254</a>
314
- <a name='L255'></a><a href='#L255'>255</a>
315
- <a name='L256'></a><a href='#L256'>256</a>
316
- <a name='L257'></a><a href='#L257'>257</a>
317
- <a name='L258'></a><a href='#L258'>258</a>
318
- <a name='L259'></a><a href='#L259'>259</a>
319
- <a name='L260'></a><a href='#L260'>260</a>
320
- <a name='L261'></a><a href='#L261'>261</a>
321
- <a name='L262'></a><a href='#L262'>262</a>
322
- <a name='L263'></a><a href='#L263'>263</a>
323
- <a name='L264'></a><a href='#L264'>264</a>
324
- <a name='L265'></a><a href='#L265'>265</a>
325
- <a name='L266'></a><a href='#L266'>266</a>
326
- <a name='L267'></a><a href='#L267'>267</a>
327
- <a name='L268'></a><a href='#L268'>268</a>
328
- <a name='L269'></a><a href='#L269'>269</a>
329
- <a name='L270'></a><a href='#L270'>270</a>
330
- <a name='L271'></a><a href='#L271'>271</a>
331
- <a name='L272'></a><a href='#L272'>272</a>
332
- <a name='L273'></a><a href='#L273'>273</a>
333
- <a name='L274'></a><a href='#L274'>274</a>
334
- <a name='L275'></a><a href='#L275'>275</a>
335
- <a name='L276'></a><a href='#L276'>276</a>
336
- <a name='L277'></a><a href='#L277'>277</a>
337
- <a name='L278'></a><a href='#L278'>278</a>
338
- <a name='L279'></a><a href='#L279'>279</a>
339
- <a name='L280'></a><a href='#L280'>280</a>
340
- <a name='L281'></a><a href='#L281'>281</a>
341
- <a name='L282'></a><a href='#L282'>282</a>
342
- <a name='L283'></a><a href='#L283'>283</a>
343
- <a name='L284'></a><a href='#L284'>284</a>
344
- <a name='L285'></a><a href='#L285'>285</a>
345
- <a name='L286'></a><a href='#L286'>286</a>
346
- <a name='L287'></a><a href='#L287'>287</a>
347
- <a name='L288'></a><a href='#L288'>288</a>
348
- <a name='L289'></a><a href='#L289'>289</a>
349
- <a name='L290'></a><a href='#L290'>290</a>
350
- <a name='L291'></a><a href='#L291'>291</a>
351
- <a name='L292'></a><a href='#L292'>292</a>
352
- <a name='L293'></a><a href='#L293'>293</a>
353
- <a name='L294'></a><a href='#L294'>294</a>
354
- <a name='L295'></a><a href='#L295'>295</a>
355
- <a name='L296'></a><a href='#L296'>296</a>
356
- <a name='L297'></a><a href='#L297'>297</a>
357
- <a name='L298'></a><a href='#L298'>298</a>
358
- <a name='L299'></a><a href='#L299'>299</a>
359
- <a name='L300'></a><a href='#L300'>300</a>
360
- <a name='L301'></a><a href='#L301'>301</a>
361
- <a name='L302'></a><a href='#L302'>302</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-yes">1x</span>
368
- <span class="cline-any cline-yes">154x</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-yes">1x</span>
373
- <span class="cline-any cline-yes">148x</span>
374
- <span class="cline-any cline-yes">329x</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-no">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">329x</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">1x</span>
386
- <span class="cline-any cline-yes">245x</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-yes">122x</span>
392
- <span class="cline-any cline-yes">122x</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-yes">123x</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-yes">1x</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-yes">17x</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-yes">14x</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">14x</span>
404
- <span class="cline-any cline-yes">54x</span>
405
- <span class="cline-any cline-yes">27x</span>
406
- <span class="cline-any cline-yes">1x</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-yes">26x</span>
409
- <span class="cline-any cline-yes">11x</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-yes">15x</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-yes">1x</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-yes">177x</span>
425
- <span class="cline-any cline-yes">131x</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-yes">46x</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-yes">1x</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-yes">177x</span>
438
- <span class="cline-any cline-yes">177x</span>
439
- <span class="cline-any cline-yes">131x</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-yes">46x</span>
443
- <span class="cline-any cline-yes">46x</span>
444
- <span class="cline-any cline-yes">46x</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-no">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">1x</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-yes">85x</span>
457
- <span class="cline-any cline-yes">85x</span>
458
- <span class="cline-any cline-yes">85x</span>
459
- <span class="cline-any cline-yes">59x</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-yes">26x</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-no">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-yes">1x</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-yes">154x</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-yes">1x</span>
479
- <span class="cline-any cline-yes">490x</span>
480
- <span class="cline-any cline-yes">490x</span>
481
- <span class="cline-any cline-yes">296x</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-yes">194x</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-yes">1x</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-yes">46x</span>
497
- <span class="cline-any cline-yes">46x</span>
498
- <span class="cline-any cline-yes">64x</span>
499
- <span class="cline-any cline-yes">128x</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">68x</span>
502
- <span class="cline-any cline-yes">68x</span>
503
- <span class="cline-any cline-yes">68x</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-yes">1x</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-yes">46x</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-yes">46x</span>
518
- <span class="cline-any cline-yes">46x</span>
519
- <span class="cline-any cline-no">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-yes">46x</span>
522
- <span class="cline-any cline-yes">46x</span>
523
- <span class="cline-any cline-yes">46x</span>
524
- <span class="cline-any cline-yes">46x</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-no">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-yes">46x</span>
531
- <span class="cline-any cline-yes">46x</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-yes">46x</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-yes">46x</span>
537
- <span class="cline-any cline-yes">46x</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-no">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-yes">1x</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">1x</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-yes">19x</span>
575
- <span class="cline-any cline-yes">15x</span>
576
- <span class="cline-any cline-yes">12x</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-yes">3x</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-yes">1x</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-yes">26x</span>
585
- <span class="cline-any cline-yes">26x</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-no">&nbsp;</span>
588
- <span class="cline-any cline-no">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-no">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-yes">1x</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-yes">26x</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-yes">26x</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-yes">15x</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-no">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-no">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-yes">11x</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-yes">1x</span>
626
- <span class="cline-any cline-yes">26x</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-yes">1x</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-yes">3x</span>
641
- <span class="cline-any cline-yes">43x</span>
642
- <span class="cline-any cline-yes">26x</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-yes">26x</span>
648
- <span class="cline-any cline-yes">26x</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-yes">26x</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-no">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
663
- JSONSchema7,
664
- JSONSchema7Definition,
665
- JSONSchema7TypeName,
666
- } from 'json-schema'
667
- &nbsp;
668
- const isArray = (value: any): value is any[] =&gt; {
669
- return Object.prototype.hasOwnProperty.call(value, 'push')
670
- }
671
- &nbsp;
672
- // eslint-disable-next-line @typescript-eslint/ban-types
673
- const getByPath = &lt;TData extends object&gt;(obj: TData, path: string[]) =&gt; {
674
- return (path as any[]).reduce((acc, item) =&gt; {
675
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
676
- !acc ||
677
- typeof acc !== 'object' ||
678
- !Object.prototype.hasOwnProperty.call(acc, item)
679
- ) {
680
- <span class="cstat-no" title="statement not covered" > return undefined</span>
681
- }
682
- return acc[item]
683
- }, obj)
684
- }
685
- &nbsp;
686
- const dereference = (ref: JSONSchema7Definition, schema: JSONSchema7) =&gt; {
687
- if (
688
- typeof ref === 'object' &amp;&amp;
689
- typeof ref.$ref === 'string' &amp;&amp;
690
- ref.$ref.indexOf('#/') === 0
691
- ) {
692
- const path = ref.$ref.slice(2).split('/')
693
- return getByPath(schema, path as any)
694
- }
695
- return ref
696
- }
697
- &nbsp;
698
- const collectObjectPaths = (
699
- obj: Record&lt;string, any&gt;,
700
- path: string[] = [],
701
- ): Array&lt;Array&lt;string&gt;&gt; =&gt; {
702
- const entries = Object.entries(obj)
703
- &nbsp;
704
- return entries.reduce((acc, item) =&gt; {
705
- const [key, value] = item
706
- if (value === undefined) {
707
- return acc
708
- }
709
- if (typeof value === 'object' &amp;&amp; value !== null) {
710
- return [
711
- ...acc,
712
- [...path, key],
713
- ...collectObjectPaths(value, [...path, key]),
714
- ]
715
- }
716
- return [...acc, [...path, key]]
717
- }, [] as any[])
718
- }
719
- &nbsp;
720
- const findInProperties = (
721
- path: string[],
722
- schema: JSONSchema7,
723
- fullSchema: JSONSchema7,
724
- ) =&gt; {
725
- if (schema<span class="branch-0 cbranch-no" title="branch not covered" >?.p</span>roperties<span class="branch-0 cbranch-no" title="branch not covered" >?.[p</span>ath[0]]) {
726
- return dereference(schema<span class="branch-0 cbranch-no" title="branch not covered" >?.p</span>roperties<span class="branch-0 cbranch-no" title="branch not covered" >?.[p</span>ath[0]], fullSchema)
727
- }
728
- return null
729
- }
730
- &nbsp;
731
- const findInSchema = (
732
- path: string[],
733
- schema: JSONSchema7,
734
- fullSchema: JSONSchema7,
735
- fullPath: string[],
736
- formData: any,
737
- ): JSONSchema7 | null =&gt; {
738
- const prop = findInProperties(path, schema, fullSchema)
739
- if (prop) {
740
- return prop
741
- }
742
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
743
- const dep = findInDeps(path, schema, fullSchema, fullPath, formData)
744
- <span class="missing-if-branch" title="else path not taken" >E</span>if (dep) {
745
- return dep
746
- }
747
- <span class="cstat-no" title="statement not covered" > return null</span>
748
- }
749
- &nbsp;
750
- const findDefinition = (
751
- path: string[],
752
- schema: JSONSchema7,
753
- fullSchema: JSONSchema7,
754
- fullPath: string[],
755
- formData: any,
756
- ): JSONSchema7 | null =&gt; {
757
- const found = findInSchema(path, schema, fullSchema, fullPath, formData)
758
- <span class="missing-if-branch" title="else path not taken" >E</span>if (found) {
759
- if (path.length &gt; 1) {
760
- return findDefinition(
761
- path.slice(1),
762
- found,
763
- fullSchema,
764
- fullPath,
765
- formData,
766
- )
767
- }
768
- return found
769
- }
770
- <span class="cstat-no" title="statement not covered" > return null</span>
771
- }
772
- &nbsp;
773
- const isJsonSchema = (
774
- value: JSONSchema7Definition | string[],
775
- ): value is JSONSchema7 =&gt; {
776
- return value &amp;&amp; !isArray(value) &amp;&amp; typeof value !== 'boolean'
777
- }
778
- &nbsp;
779
- const getLeaves = (formData: Record&lt;string, any&gt;): Record&lt;string, any&gt; =&gt; {
780
- return Object.entries(formData).reduce((acc, [key, value]) =&gt; {
781
- if (typeof value !== 'object') {
782
- return { ...acc, [key]: value }
783
- }
784
- return {
785
- ...acc,
786
- ...getLeaves(value),
787
- }
788
- }, {})
789
- }
790
- &nbsp;
791
- const resolveOneOf = (
792
- path: string[],
793
- oneOf: any,
794
- formData: any,
795
- fullSchema: JSONSchema7,
796
- ) =&gt; {
797
- const leaves = getLeaves(formData)
798
- return oneOf.find((item: any) =&gt; {
799
- const constraints = Object.entries(item.properties).filter(
800
- ([key]) =&gt; !item.required?.includes(key),
801
- )
802
- return constraints.reduce((acc, [key, value]: any[]) =&gt; {
803
- const definition = dereference(value, fullSchema)
804
- return acc &amp;&amp; (definition<span class="branch-0 cbranch-no" title="branch not covered" >?.e</span>num?.includes(leaves[key]) ?? true)
805
- }, true)
806
- })
807
- }
808
- &nbsp;
809
- const findInDeps = (
810
- path: string[],
811
- schema: JSONSchema7,
812
- fullSchema: JSONSchema7,
813
- fullPath: string[],
814
- formData: any,
815
- ) =&gt; {
816
- const list = Object.entries(schema<span class="branch-0 cbranch-no" title="branch not covered" >?.d</span>ependencies ?? <span class="branch-1 cbranch-no" title="branch not covered" >{})</span>.reduce&lt;JSONSchema7[]&gt;(
817
- (acc, item) =&gt; {
818
- const [, value] = item
819
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!isJsonSchema(value)) {
820
- <span class="cstat-no" title="statement not covered" > return [...acc]</span>
821
- }
822
- const oneOf = value.oneOf<span class="branch-0 cbranch-no" title="branch not covered" >?.f</span>ilter&lt;JSONSchema7&gt;(isJsonSchema) ?? <span class="branch-1 cbranch-no" title="branch not covered" >[]</span>
823
- const resolvedOneOf = resolveOneOf(fullPath, oneOf, formData, fullSchema)
824
- <span class="missing-if-branch" title="else path not taken" >E</span>if (resolvedOneOf) {
825
- return [...acc, resolvedOneOf]
826
- }
827
- <span class="cstat-no" title="statement not covered" > return acc</span>
828
- },
829
- [] as JSONSchema7[],
830
- )
831
- const foundElement: JSONSchema7 | undefined = list.find((item) =&gt;
832
- findInSchema(path, item, fullSchema, fullPath, formData),
833
- )
834
- const found = foundElement
835
- ? findInSchema(path, foundElement, fullSchema, fullPath, formData)
836
- : <span class="branch-1 cbranch-no" title="branch not covered" >null</span>
837
- <span class="missing-if-branch" title="else path not taken" >E</span>if (found) {
838
- return dereference(found, fullSchema)
839
- }
840
- <span class="cstat-no" title="statement not covered" > return null</span>
841
- }
842
- &nbsp;
843
- const booleanInLanguages: { [k: string]: { [k: string]: string } } = {
844
- en_US: {
845
- true: 'true',
846
- false: 'false',
847
- },
848
- fr_FR: {
849
- true: 'vraie',
850
- false: 'faux',
851
- },
852
- de_DE: {
853
- true: 'wahr',
854
- false: 'falsch',
855
- },
856
- pt_PT: {
857
- true: 'verdadeira',
858
- false: 'falsa',
859
- },
860
- nl_NL: {
861
- true: 'waar',
862
- false: 'false',
863
- },
864
- it_IT: {
865
- true: 'vera',
866
- false: 'falsa',
867
- },
868
- }
869
- &nbsp;
870
- const tryTranslateResponse = (
871
- response: string,
872
- definition: JSONSchema7 &amp; { enumNames?: string[] },
873
- ) =&gt; {
874
- const enumIndex =
875
- definition.enum?.findIndex((value) =&gt; value === response) ?? -1
876
- if (enumIndex &gt; -1) {
877
- return definition<span class="branch-0 cbranch-no" title="branch not covered" >?.e</span>numNames<span class="branch-0 cbranch-no" title="branch not covered" >?.[e</span>numIndex] ?? <span class="branch-1 cbranch-no" title="branch not covered" >response</span>
878
- }
879
- return response
880
- }
881
- &nbsp;
882
- const getTypeName = (
883
- type: JSONSchema7TypeName | JSONSchema7TypeName[] | undefined,
884
- ) =&gt; {
885
- <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof type === 'string') {
886
- return type
887
- }
888
- <span class="cstat-no" title="statement not covered" > if (isArray(type) &amp;&amp; type.length &gt; 0) {</span>
889
- <span class="cstat-no" title="statement not covered" > return type[0]</span>
890
- }
891
- <span class="cstat-no" title="statement not covered" > return undefined</span>
892
- }
893
- &nbsp;
894
- const convertValue = (
895
- value: string | boolean,
896
- definition: JSONSchema7 &amp; { enumNames?: string[] },
897
- localLanguage: string,
898
- ) =&gt; {
899
- const type = getTypeName(definition.type)
900
- &nbsp;
901
- switch (type) {
902
- case 'string': {
903
- return tryTranslateResponse(value.toString(), definition)
904
- }
905
- <span class="branch-1 cbranch-no" title="branch not covered" > case 'number': {</span>
906
- <span class="cstat-no" title="statement not covered" > return value.toString()</span>
907
- }
908
- <span class="branch-2 cbranch-no" title="branch not covered" > case 'boolean': {</span>
909
- const val = <span class="cstat-no" title="statement not covered" >value === true || value === 'true'</span>
910
- <span class="cstat-no" title="statement not covered" > return (</span>
911
- booleanInLanguages?.[localLanguage]?.[val.toString()] ?? val.toString()
912
- )
913
- }
914
- default: {
915
- return null
916
- }
917
- }
918
- }
919
- &nbsp;
920
- interface StFormResponse {
921
- titleContent: string
922
- responseContent: string
923
- key: string
924
- }
925
- &nbsp;
926
- const isStFormResponse = (value: any): value is StFormResponse =&gt; {
927
- return (
928
- typeof value === 'object' &amp;&amp;
929
- value !== null &amp;&amp;
930
- value.titleContent &amp;&amp;
931
- value.key &amp;&amp;
932
- value.responseContent
933
- )
934
- }
935
- &nbsp;
936
- export const getAnswers = (
937
- formData: Record&lt;string, unknown&gt;,
938
- schema: JSONSchema7,
939
- localLanguage: string,
940
- ): Array&lt;StFormResponse&gt; =&gt;
941
- collectObjectPaths(formData)
942
- .sort((a, b) =&gt; a.length - b.length)
943
- .map((path) =&gt; ({
944
- path,
945
- definition: findDefinition(path, schema, schema, path, formData),
946
- }))
947
- .map((item) =&gt; {
948
- <span class="missing-if-branch" title="else path not taken" >E</span>if (item.definition) {
949
- const responseContent = convertValue(
950
- getByPath(formData, item.path),
951
- item.definition,
952
- localLanguage,
953
- )
954
- return {
955
- titleContent: item.definition.title,
956
- key: item.path.join('.'),
957
- responseContent,
958
- }
959
- }
960
- <span class="cstat-no" title="statement not covered" > return undefined</span>
961
- })
962
- .filter&lt;StFormResponse&gt;(isStFormResponse)
963
- &nbsp;</pre></td></tr></table></pre>
964
-
965
- <div class='push'></div><!-- for sticky footer -->
966
- </div><!-- /wrapper -->
967
- <div class='footer quiet pad2 space-top1 center small'>
968
- Code coverage generated by
969
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
970
- at Tue May 31 2022 09:41:33 GMT+0200 (Central European Summer Time)
971
- </div>
972
- </div>
973
- <script src="prettify.js"></script>
974
- <script>
975
- window.onload = function () {
976
- prettyPrint();
977
- };
978
- </script>
979
- <script src="sorter.js"></script>
980
- <script src="block-navigation.js"></script>
981
- </body>
982
- </html>
983
-