@allthings/structured-ticket-form 3.0.1 → 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.
- package/lib/assets/svg/VectorIcon.d.ts +3 -1
- package/lib/assets/svg/VectorIcon.js +10 -13
- package/lib/assets/svg/VectorIcon.js.map +1 -1
- package/lib/components/atoms/ErrorMessage.js +52 -20
- package/lib/components/atoms/ErrorMessage.js.map +1 -1
- package/lib/components/atoms/LanguageSelector.js +131 -49
- package/lib/components/atoms/LanguageSelector.js.map +1 -1
- package/lib/components/atoms/SchemaHeader.js +70 -28
- package/lib/components/atoms/SchemaHeader.js.map +1 -1
- package/lib/components/molecules/CustomForm.d.ts +3 -1
- package/lib/components/molecules/CustomForm.js +51 -54
- package/lib/components/molecules/CustomForm.js.map +1 -1
- package/lib/components/molecules/SchemaEditor.js +29 -40
- package/lib/components/molecules/SchemaEditor.js.map +1 -1
- package/lib/components/organism/StructuredTicketEditor.js +59 -55
- package/lib/components/organism/StructuredTicketEditor.js.map +1 -1
- package/package.json +24 -22
- package/coverage/clover.xml +0 -142
- package/coverage/coverage-final.json +0 -3
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/jsonFormUtils.ts.html +0 -988
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/translator.tsx.html +0 -427
- package/coverage/lcov.info +0 -383
|
@@ -1,427 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for translator.tsx</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> translator.tsx</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">68.97% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>20/29</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">42.86% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>15/35</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">77.78% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>7/9</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">67.86% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>19/28</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
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line medium'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
181
|
-
<span class="cline-any cline-yes">1x</span>
|
|
182
|
-
<span class="cline-any cline-yes">3x</span>
|
|
183
|
-
<span class="cline-any cline-yes">1x</span>
|
|
184
|
-
<span class="cline-any cline-yes">90x</span>
|
|
185
|
-
<span class="cline-any cline-yes">1x</span>
|
|
186
|
-
<span class="cline-any cline-yes">57x</span>
|
|
187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
191
|
-
<span class="cline-any cline-neutral"> </span>
|
|
192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
193
|
-
<span class="cline-any cline-yes">1x</span>
|
|
194
|
-
<span class="cline-any cline-neutral"> </span>
|
|
195
|
-
<span class="cline-any cline-neutral"> </span>
|
|
196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-neutral"> </span>
|
|
199
|
-
<span class="cline-any cline-yes">150x</span>
|
|
200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-neutral"> </span>
|
|
202
|
-
<span class="cline-any cline-neutral"> </span>
|
|
203
|
-
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-neutral"> </span>
|
|
205
|
-
<span class="cline-any cline-neutral"> </span>
|
|
206
|
-
<span class="cline-any cline-neutral"> </span>
|
|
207
|
-
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-neutral"> </span>
|
|
209
|
-
<span class="cline-any cline-neutral"> </span>
|
|
210
|
-
<span class="cline-any cline-neutral"> </span>
|
|
211
|
-
<span class="cline-any cline-neutral"> </span>
|
|
212
|
-
<span class="cline-any cline-yes">150x</span>
|
|
213
|
-
<span class="cline-any cline-yes">3x</span>
|
|
214
|
-
<span class="cline-any cline-neutral"> </span>
|
|
215
|
-
<span class="cline-any cline-neutral"> </span>
|
|
216
|
-
<span class="cline-any cline-yes">90x</span>
|
|
217
|
-
<span class="cline-any cline-neutral"> </span>
|
|
218
|
-
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
221
|
-
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-neutral"> </span>
|
|
225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
226
|
-
<span class="cline-any cline-yes">150x</span>
|
|
227
|
-
<span class="cline-any cline-yes">48x</span>
|
|
228
|
-
<span class="cline-any cline-neutral"> </span>
|
|
229
|
-
<span class="cline-any cline-neutral"> </span>
|
|
230
|
-
<span class="cline-any cline-yes">57x</span>
|
|
231
|
-
<span class="cline-any cline-neutral"> </span>
|
|
232
|
-
<span class="cline-any cline-neutral"> </span>
|
|
233
|
-
<span class="cline-any cline-neutral"> </span>
|
|
234
|
-
<span class="cline-any cline-neutral"> </span>
|
|
235
|
-
<span class="cline-any cline-neutral"> </span>
|
|
236
|
-
<span class="cline-any cline-neutral"> </span>
|
|
237
|
-
<span class="cline-any cline-neutral"> </span>
|
|
238
|
-
<span class="cline-any cline-neutral"> </span>
|
|
239
|
-
<span class="cline-any cline-yes">150x</span>
|
|
240
|
-
<span class="cline-any cline-yes">84x</span>
|
|
241
|
-
<span class="cline-any cline-yes">519x</span>
|
|
242
|
-
<span class="cline-any cline-neutral"> </span>
|
|
243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-neutral"> </span>
|
|
245
|
-
<span class="cline-any cline-yes">150x</span>
|
|
246
|
-
<span class="cline-any cline-no"> </span>
|
|
247
|
-
<span class="cline-any cline-no"> </span>
|
|
248
|
-
<span class="cline-any cline-no"> </span>
|
|
249
|
-
<span class="cline-any cline-no"> </span>
|
|
250
|
-
<span class="cline-any cline-no"> </span>
|
|
251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
252
|
-
<span class="cline-any cline-no"> </span>
|
|
253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
256
|
-
<span class="cline-any cline-no"> </span>
|
|
257
|
-
<span class="cline-any cline-no"> </span>
|
|
258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-no"> </span>
|
|
263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
267
|
-
<span class="cline-any cline-neutral"> </span>
|
|
268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
270
|
-
<span class="cline-any cline-neutral"> </span>
|
|
271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
273
|
-
<span class="cline-any cline-yes">150x</span>
|
|
274
|
-
<span class="cline-any cline-neutral"> </span>
|
|
275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-neutral"> </span>
|
|
277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-neutral"> </span>
|
|
279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
291
|
-
<span class="cline-any cline-neutral"> </span>
|
|
292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-neutral"> </span>
|
|
294
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { JSONSchema7 } from 'json-schema'
|
|
295
|
-
import _ from 'lodash'
|
|
296
|
-
const getDefaultTitle = (name: string) => name && name.replace(/[_-]/g, ' ')
|
|
297
|
-
const getTypeScope = (scope: string, typeName: string) =>
|
|
298
|
-
`${scope}.types.${typeName}`
|
|
299
|
-
const getPropScope = (scope: string, propName: string) =>
|
|
300
|
-
`${scope}.fields.${propName}`
|
|
301
|
-
|
|
302
|
-
// Recursively localises given json schema object. Original schema is not modified.
|
|
303
|
-
// schema is json schema object
|
|
304
|
-
// scope is path to root of form/type localised text in i18n object. eg 'forms.editUser'
|
|
305
|
-
// i18n is object containing localised text for schema
|
|
306
|
-
// name is default name for root property, leave undefined for root
|
|
307
|
-
export function translateSchema(
|
|
308
|
-
schema: JSONSchema7 & { enumNames?: string[] },
|
|
309
|
-
scope: string,
|
|
310
|
-
messages: { [x: string]: string },
|
|
311
|
-
name?: string,
|
|
312
|
-
) {
|
|
313
|
-
const newSchema = {
|
|
314
|
-
...schema,
|
|
315
|
-
..._.pickBy({
|
|
316
|
-
title:
|
|
317
|
-
messages[scope] ||
|
|
318
|
-
messages[`${scope}.title`] ||
|
|
319
|
-
schema.title ||
|
|
320
|
-
(!schema.$ref && name ? getDefaultTitle(name) : <span class="branch-1 cbranch-no" title="branch not covered" >undefined)</span>,
|
|
321
|
-
description: messages[`${scope}.description`] || schema.description,
|
|
322
|
-
help: messages[`${scope}.help`],
|
|
323
|
-
}),
|
|
324
|
-
} as JSONSchema7 & { enumNames?: string[] }
|
|
325
|
-
|
|
326
|
-
if (schema.definitions) {
|
|
327
|
-
newSchema.definitions = _.mapValues(
|
|
328
|
-
schema.definitions,
|
|
329
|
-
(typeSchema: any, typeName: string) => {
|
|
330
|
-
return translateSchema(
|
|
331
|
-
typeSchema,
|
|
332
|
-
getTypeScope(scope, typeName),
|
|
333
|
-
messages,
|
|
334
|
-
typeName,
|
|
335
|
-
)
|
|
336
|
-
},
|
|
337
|
-
)
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
if (schema.type === 'object') {
|
|
341
|
-
newSchema.properties = _.mapValues(
|
|
342
|
-
schema.properties,
|
|
343
|
-
(propSchema: any, propName: string) =>
|
|
344
|
-
translateSchema(
|
|
345
|
-
propSchema,
|
|
346
|
-
getPropScope(scope, propName),
|
|
347
|
-
messages,
|
|
348
|
-
propName,
|
|
349
|
-
),
|
|
350
|
-
)
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
if (schema.enum) {
|
|
354
|
-
newSchema.enumNames = schema.enum.map((option: any) => {
|
|
355
|
-
return _.defaultTo(messages[`${scope}.options.${option}`], option)
|
|
356
|
-
})
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (schema.items && <span class="branch-1 cbranch-no" title="branch not covered" >schema.type === 'array')</span> {
|
|
360
|
-
const si = <span class="cstat-no" title="statement not covered" >schema.items as JSONSchema7 & { enumNames?: string[] }</span>
|
|
361
|
-
const nsi = <span class="cstat-no" title="statement not covered" >newSchema.items as typeof si</span>
|
|
362
|
-
<span class="cstat-no" title="statement not covered" > if (si.enum && !si.enumNames) {</span>
|
|
363
|
-
const enumNames = <span class="cstat-no" title="statement not covered" >si.enum?.map(</span>
|
|
364
|
-
<span class="fstat-no" title="function not covered" > (e</span>o) => <span class="cstat-no" title="statement not covered" >messages[`${scope}.options.${eo}`] || eo?.toString(),</span>
|
|
365
|
-
)
|
|
366
|
-
<span class="cstat-no" title="statement not covered" > newSchema.items = {</span>
|
|
367
|
-
...nsi,
|
|
368
|
-
enumNames,
|
|
369
|
-
} as typeof si
|
|
370
|
-
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (si.properties && si.type === 'object') {</span>
|
|
371
|
-
<span class="cstat-no" title="statement not covered" > newSchema.items = {</span>
|
|
372
|
-
...nsi,
|
|
373
|
-
properties: _.mapValues(
|
|
374
|
-
si.properties,
|
|
375
|
-
<span class="fstat-no" title="function not covered" > (p</span>ropSchema: any, propName: string) =>
|
|
376
|
-
<span class="cstat-no" title="statement not covered" > translateSchema(</span>
|
|
377
|
-
propSchema,
|
|
378
|
-
getPropScope(scope, propName),
|
|
379
|
-
messages,
|
|
380
|
-
propName,
|
|
381
|
-
),
|
|
382
|
-
),
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
return newSchema
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
// This is the format used by react-intl-redux. I'm using it directly, but would normally access it using redux connector from `state.intl.messages`.
|
|
391
|
-
// I normally store my strings in hierarchical yaml format and let Webpack convert to JSON and use 'https://www.npmjs.com/package/flat' to flatten hierarchy.
|
|
392
|
-
// You should be able to define strings in component file and use intl tools to extract and gather from all components for translation.
|
|
393
|
-
// const messages = {
|
|
394
|
-
// 'forms.editUser.title': 'Edit User',
|
|
395
|
-
// 'forms.editUser.fields.name': 'Full Name',
|
|
396
|
-
// 'forms.editUser.fields.age.title': 'Age',
|
|
397
|
-
// 'forms.editUser.fields.age.description': 'Must be over 18',
|
|
398
|
-
// 'forms.editUser.fields.address': 'Home Address',
|
|
399
|
-
// 'forms.editUser.fields.color.title': 'Favorite Color',
|
|
400
|
-
// 'forms.editUser.fields.color.options.red': 'Red',
|
|
401
|
-
// 'forms.editUser.fields.color.options.green': 'Green',
|
|
402
|
-
// 'forms.editUser.fields.color.options.blue': 'Blue',
|
|
403
|
-
// 'types.address.title': 'Address',
|
|
404
|
-
// 'types.address.fields.street': 'Street',
|
|
405
|
-
// 'types.address.fields.suburb': 'Suburb',
|
|
406
|
-
// 'types.address.fields.postcode': 'Post Code',
|
|
407
|
-
// };
|
|
408
|
-
</pre></td></tr></table></pre>
|
|
409
|
-
|
|
410
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
411
|
-
</div><!-- /wrapper -->
|
|
412
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
413
|
-
Code coverage generated by
|
|
414
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
415
|
-
at Tue Nov 29 2022 18:38:00 GMT+0100 (Central European Standard Time)
|
|
416
|
-
</div>
|
|
417
|
-
<script src="prettify.js"></script>
|
|
418
|
-
<script>
|
|
419
|
-
window.onload = function () {
|
|
420
|
-
prettyPrint();
|
|
421
|
-
};
|
|
422
|
-
</script>
|
|
423
|
-
<script src="sorter.js"></script>
|
|
424
|
-
<script src="block-navigation.js"></script>
|
|
425
|
-
</body>
|
|
426
|
-
</html>
|
|
427
|
-
|