@comicrelief/storybook 1.30.2 → 1.30.4
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/build/index.js +1 -1
- package/coverage/clover.xml +177 -0
- package/coverage/coverage-final.json +9 -0
- package/coverage/lcov-report/base.css +212 -0
- package/coverage/lcov-report/index.html +125 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +1 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +158 -0
- package/coverage/lcov-report/src/components/FileUp/FileUp.js.html +543 -0
- package/coverage/lcov-report/src/components/FileUp/index.html +73 -0
- package/coverage/lcov-report/src/components/FileUp/src/service/S3FileUploadService.js.html +177 -0
- package/coverage/lcov-report/src/components/FileUp/src/service/index.html +73 -0
- package/coverage/lcov-report/src/components/SchoolsLookUp/SchoolsLookUp.js.html +1725 -0
- package/coverage/lcov-report/src/components/SchoolsLookUp/index.html +73 -0
- package/coverage/lcov-report/src/utils/index.html +73 -0
- package/coverage/lcov-report/src/utils/newid.js.html +63 -0
- package/coverage/lcov-report/tests/mocks/enzyme.js.html +69 -0
- package/coverage/lcov-report/tests/mocks/fileMock.js.html +48 -0
- package/coverage/lcov-report/tests/mocks/index.html +112 -0
- package/coverage/lcov-report/tests/mocks/shim.js.html +54 -0
- package/coverage/lcov-report/tests/mocks/styleMock.js.html +48 -0
- package/coverage/lcov.info +400 -0
- package/cypress/snapshots/All Specs/__diff_output__/Browser Support message -- should load default story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Checkbox Field -- should click checkbox.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Checkbox Field -- should load default story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Cookie Consent Message -- should load default story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/File Upload -- should load default story.diff.png +0 -0
- package/package.json +1 -1
- package/src/components/PostcodeLookup/PostcodeLookup.js +6 -1
- package/cypress/snapshots/All Specs/__diff_output__/Grants Infographics -- should load default story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Input Field -- should load Checkbox story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Input Field -- should load Email Field story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Input Field -- should load Number Field story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Input Field -- should load Number Field with all props possible story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Input Field -- should load Optional text Field with only required props story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Input Field -- should load Telephone Field story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Input Field -- should load Text Field story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Input Field -- should load Text Field with inline button story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Just In Time Message -- should load default story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Marketing Consent -- should load default story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Postcode Lookup -- should load default story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Postcode Lookup -- should load results.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Radio Buttons -- should load default story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Schools Lookup -- should load EDCO selected school story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Schools Lookup -- should load manual fields errors story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Schools Lookup -- should load manually entered school story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Schools Lookup -- should load nothing is selected story.diff.png +0 -0
- package/cypress/snapshots/All Specs/__diff_output__/Schools Lookup -- should load results.diff.png +0 -0
- package/yarn-error.log +0 -15344
|
@@ -0,0 +1,1725 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<title>Code coverage report for src/components/SchoolsLookUp/SchoolsLookUp.js</title>
|
|
5
|
+
<meta charset="utf-8" />
|
|
6
|
+
<link rel="stylesheet" href="../../../prettify.css" />
|
|
7
|
+
<link rel="stylesheet" href="../../../base.css" />
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
+
<style type='text/css'>
|
|
10
|
+
.coverage-summary .sorter {
|
|
11
|
+
background-image: url(../../../sort-arrow-sprite.png);
|
|
12
|
+
}
|
|
13
|
+
</style>
|
|
14
|
+
</head>
|
|
15
|
+
<body>
|
|
16
|
+
<div class='wrapper'>
|
|
17
|
+
<div class='pad1'>
|
|
18
|
+
<h1>
|
|
19
|
+
<a href="../../../index.html">All files</a> / <a href="index.html">src/components/SchoolsLookUp</a> SchoolsLookUp.js
|
|
20
|
+
</h1>
|
|
21
|
+
<div class='clearfix'>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
<div class='status-line medium'></div>
|
|
25
|
+
<pre><table class="coverage">
|
|
26
|
+
<tr><td class="line-count quiet">1
|
|
27
|
+
2
|
|
28
|
+
3
|
|
29
|
+
4
|
|
30
|
+
5
|
|
31
|
+
6
|
|
32
|
+
7
|
|
33
|
+
8
|
|
34
|
+
9
|
|
35
|
+
10
|
|
36
|
+
11
|
|
37
|
+
12
|
|
38
|
+
13
|
|
39
|
+
14
|
|
40
|
+
15
|
|
41
|
+
16
|
|
42
|
+
17
|
|
43
|
+
18
|
|
44
|
+
19
|
|
45
|
+
20
|
|
46
|
+
21
|
|
47
|
+
22
|
|
48
|
+
23
|
|
49
|
+
24
|
|
50
|
+
25
|
|
51
|
+
26
|
|
52
|
+
27
|
|
53
|
+
28
|
|
54
|
+
29
|
|
55
|
+
30
|
|
56
|
+
31
|
|
57
|
+
32
|
|
58
|
+
33
|
|
59
|
+
34
|
|
60
|
+
35
|
|
61
|
+
36
|
|
62
|
+
37
|
|
63
|
+
38
|
|
64
|
+
39
|
|
65
|
+
40
|
|
66
|
+
41
|
|
67
|
+
42
|
|
68
|
+
43
|
|
69
|
+
44
|
|
70
|
+
45
|
|
71
|
+
46
|
|
72
|
+
47
|
|
73
|
+
48
|
|
74
|
+
49
|
|
75
|
+
50
|
|
76
|
+
51
|
|
77
|
+
52
|
|
78
|
+
53
|
|
79
|
+
54
|
|
80
|
+
55
|
|
81
|
+
56
|
|
82
|
+
57
|
|
83
|
+
58
|
|
84
|
+
59
|
|
85
|
+
60
|
|
86
|
+
61
|
|
87
|
+
62
|
|
88
|
+
63
|
|
89
|
+
64
|
|
90
|
+
65
|
|
91
|
+
66
|
|
92
|
+
67
|
|
93
|
+
68
|
|
94
|
+
69
|
|
95
|
+
70
|
|
96
|
+
71
|
|
97
|
+
72
|
|
98
|
+
73
|
|
99
|
+
74
|
|
100
|
+
75
|
|
101
|
+
76
|
|
102
|
+
77
|
|
103
|
+
78
|
|
104
|
+
79
|
|
105
|
+
80
|
|
106
|
+
81
|
|
107
|
+
82
|
|
108
|
+
83
|
|
109
|
+
84
|
|
110
|
+
85
|
|
111
|
+
86
|
|
112
|
+
87
|
|
113
|
+
88
|
|
114
|
+
89
|
|
115
|
+
90
|
|
116
|
+
91
|
|
117
|
+
92
|
|
118
|
+
93
|
|
119
|
+
94
|
|
120
|
+
95
|
|
121
|
+
96
|
|
122
|
+
97
|
|
123
|
+
98
|
|
124
|
+
99
|
|
125
|
+
100
|
|
126
|
+
101
|
|
127
|
+
102
|
|
128
|
+
103
|
|
129
|
+
104
|
|
130
|
+
105
|
|
131
|
+
106
|
|
132
|
+
107
|
|
133
|
+
108
|
|
134
|
+
109
|
|
135
|
+
110
|
|
136
|
+
111
|
|
137
|
+
112
|
|
138
|
+
113
|
|
139
|
+
114
|
|
140
|
+
115
|
|
141
|
+
116
|
|
142
|
+
117
|
|
143
|
+
118
|
|
144
|
+
119
|
|
145
|
+
120
|
|
146
|
+
121
|
|
147
|
+
122
|
|
148
|
+
123
|
|
149
|
+
124
|
|
150
|
+
125
|
|
151
|
+
126
|
|
152
|
+
127
|
|
153
|
+
128
|
|
154
|
+
129
|
|
155
|
+
130
|
|
156
|
+
131
|
|
157
|
+
132
|
|
158
|
+
133
|
|
159
|
+
134
|
|
160
|
+
135
|
|
161
|
+
136
|
|
162
|
+
137
|
|
163
|
+
138
|
|
164
|
+
139
|
|
165
|
+
140
|
|
166
|
+
141
|
|
167
|
+
142
|
|
168
|
+
143
|
|
169
|
+
144
|
|
170
|
+
145
|
|
171
|
+
146
|
|
172
|
+
147
|
|
173
|
+
148
|
|
174
|
+
149
|
|
175
|
+
150
|
|
176
|
+
151
|
|
177
|
+
152
|
|
178
|
+
153
|
|
179
|
+
154
|
|
180
|
+
155
|
|
181
|
+
156
|
|
182
|
+
157
|
|
183
|
+
158
|
|
184
|
+
159
|
|
185
|
+
160
|
|
186
|
+
161
|
|
187
|
+
162
|
|
188
|
+
163
|
|
189
|
+
164
|
|
190
|
+
165
|
|
191
|
+
166
|
|
192
|
+
167
|
|
193
|
+
168
|
|
194
|
+
169
|
|
195
|
+
170
|
|
196
|
+
171
|
|
197
|
+
172
|
|
198
|
+
173
|
|
199
|
+
174
|
|
200
|
+
175
|
|
201
|
+
176
|
|
202
|
+
177
|
|
203
|
+
178
|
|
204
|
+
179
|
|
205
|
+
180
|
|
206
|
+
181
|
|
207
|
+
182
|
|
208
|
+
183
|
|
209
|
+
184
|
|
210
|
+
185
|
|
211
|
+
186
|
|
212
|
+
187
|
|
213
|
+
188
|
|
214
|
+
189
|
|
215
|
+
190
|
|
216
|
+
191
|
|
217
|
+
192
|
|
218
|
+
193
|
|
219
|
+
194
|
|
220
|
+
195
|
|
221
|
+
196
|
|
222
|
+
197
|
|
223
|
+
198
|
|
224
|
+
199
|
|
225
|
+
200
|
|
226
|
+
201
|
|
227
|
+
202
|
|
228
|
+
203
|
|
229
|
+
204
|
|
230
|
+
205
|
|
231
|
+
206
|
|
232
|
+
207
|
|
233
|
+
208
|
|
234
|
+
209
|
|
235
|
+
210
|
|
236
|
+
211
|
|
237
|
+
212
|
|
238
|
+
213
|
|
239
|
+
214
|
|
240
|
+
215
|
|
241
|
+
216
|
|
242
|
+
217
|
|
243
|
+
218
|
|
244
|
+
219
|
|
245
|
+
220
|
|
246
|
+
221
|
|
247
|
+
222
|
|
248
|
+
223
|
|
249
|
+
224
|
|
250
|
+
225
|
|
251
|
+
226
|
|
252
|
+
227
|
|
253
|
+
228
|
|
254
|
+
229
|
|
255
|
+
230
|
|
256
|
+
231
|
|
257
|
+
232
|
|
258
|
+
233
|
|
259
|
+
234
|
|
260
|
+
235
|
|
261
|
+
236
|
|
262
|
+
237
|
|
263
|
+
238
|
|
264
|
+
239
|
|
265
|
+
240
|
|
266
|
+
241
|
|
267
|
+
242
|
|
268
|
+
243
|
|
269
|
+
244
|
|
270
|
+
245
|
|
271
|
+
246
|
|
272
|
+
247
|
|
273
|
+
248
|
|
274
|
+
249
|
|
275
|
+
250
|
|
276
|
+
251
|
|
277
|
+
252
|
|
278
|
+
253
|
|
279
|
+
254
|
|
280
|
+
255
|
|
281
|
+
256
|
|
282
|
+
257
|
|
283
|
+
258
|
|
284
|
+
259
|
|
285
|
+
260
|
|
286
|
+
261
|
|
287
|
+
262
|
|
288
|
+
263
|
|
289
|
+
264
|
|
290
|
+
265
|
|
291
|
+
266
|
|
292
|
+
267
|
|
293
|
+
268
|
|
294
|
+
269
|
|
295
|
+
270
|
|
296
|
+
271
|
|
297
|
+
272
|
|
298
|
+
273
|
|
299
|
+
274
|
|
300
|
+
275
|
|
301
|
+
276
|
|
302
|
+
277
|
|
303
|
+
278
|
|
304
|
+
279
|
|
305
|
+
280
|
|
306
|
+
281
|
|
307
|
+
282
|
|
308
|
+
283
|
|
309
|
+
284
|
|
310
|
+
285
|
|
311
|
+
286
|
|
312
|
+
287
|
|
313
|
+
288
|
|
314
|
+
289
|
|
315
|
+
290
|
|
316
|
+
291
|
|
317
|
+
292
|
|
318
|
+
293
|
|
319
|
+
294
|
|
320
|
+
295
|
|
321
|
+
296
|
|
322
|
+
297
|
|
323
|
+
298
|
|
324
|
+
299
|
|
325
|
+
300
|
|
326
|
+
301
|
|
327
|
+
302
|
|
328
|
+
303
|
|
329
|
+
304
|
|
330
|
+
305
|
|
331
|
+
306
|
|
332
|
+
307
|
|
333
|
+
308
|
|
334
|
+
309
|
|
335
|
+
310
|
|
336
|
+
311
|
|
337
|
+
312
|
|
338
|
+
313
|
|
339
|
+
314
|
|
340
|
+
315
|
|
341
|
+
316
|
|
342
|
+
317
|
|
343
|
+
318
|
|
344
|
+
319
|
|
345
|
+
320
|
|
346
|
+
321
|
|
347
|
+
322
|
|
348
|
+
323
|
|
349
|
+
324
|
|
350
|
+
325
|
|
351
|
+
326
|
|
352
|
+
327
|
|
353
|
+
328
|
|
354
|
+
329
|
|
355
|
+
330
|
|
356
|
+
331
|
|
357
|
+
332
|
|
358
|
+
333
|
|
359
|
+
334
|
|
360
|
+
335
|
|
361
|
+
336
|
|
362
|
+
337
|
|
363
|
+
338
|
|
364
|
+
339
|
|
365
|
+
340
|
|
366
|
+
341
|
|
367
|
+
342
|
|
368
|
+
343
|
|
369
|
+
344
|
|
370
|
+
345
|
|
371
|
+
346
|
|
372
|
+
347
|
|
373
|
+
348
|
|
374
|
+
349
|
|
375
|
+
350
|
|
376
|
+
351
|
|
377
|
+
352
|
|
378
|
+
353
|
|
379
|
+
354
|
|
380
|
+
355
|
|
381
|
+
356
|
|
382
|
+
357
|
|
383
|
+
358
|
|
384
|
+
359
|
|
385
|
+
360
|
|
386
|
+
361
|
|
387
|
+
362
|
|
388
|
+
363
|
|
389
|
+
364
|
|
390
|
+
365
|
|
391
|
+
366
|
|
392
|
+
367
|
|
393
|
+
368
|
|
394
|
+
369
|
|
395
|
+
370
|
|
396
|
+
371
|
|
397
|
+
372
|
|
398
|
+
373
|
|
399
|
+
374
|
|
400
|
+
375
|
|
401
|
+
376
|
|
402
|
+
377
|
|
403
|
+
378
|
|
404
|
+
379
|
|
405
|
+
380
|
|
406
|
+
381
|
|
407
|
+
382
|
|
408
|
+
383
|
|
409
|
+
384
|
|
410
|
+
385
|
|
411
|
+
386
|
|
412
|
+
387
|
|
413
|
+
388
|
|
414
|
+
389
|
|
415
|
+
390
|
|
416
|
+
391
|
|
417
|
+
392
|
|
418
|
+
393
|
|
419
|
+
394
|
|
420
|
+
395
|
|
421
|
+
396
|
|
422
|
+
397
|
|
423
|
+
398
|
|
424
|
+
399
|
|
425
|
+
400
|
|
426
|
+
401
|
|
427
|
+
402
|
|
428
|
+
403
|
|
429
|
+
404
|
|
430
|
+
405
|
|
431
|
+
406
|
|
432
|
+
407
|
|
433
|
+
408
|
|
434
|
+
409
|
|
435
|
+
410
|
|
436
|
+
411
|
|
437
|
+
412
|
|
438
|
+
413
|
|
439
|
+
414
|
|
440
|
+
415
|
|
441
|
+
416
|
|
442
|
+
417
|
|
443
|
+
418
|
|
444
|
+
419
|
|
445
|
+
420
|
|
446
|
+
421
|
|
447
|
+
422
|
|
448
|
+
423
|
|
449
|
+
424
|
|
450
|
+
425
|
|
451
|
+
426
|
|
452
|
+
427
|
|
453
|
+
428
|
|
454
|
+
429
|
|
455
|
+
430
|
|
456
|
+
431
|
|
457
|
+
432
|
|
458
|
+
433
|
|
459
|
+
434
|
|
460
|
+
435
|
|
461
|
+
436
|
|
462
|
+
437
|
|
463
|
+
438
|
|
464
|
+
439
|
|
465
|
+
440
|
|
466
|
+
441
|
|
467
|
+
442
|
|
468
|
+
443
|
|
469
|
+
444
|
|
470
|
+
445
|
|
471
|
+
446
|
|
472
|
+
447
|
|
473
|
+
448
|
|
474
|
+
449
|
|
475
|
+
450
|
|
476
|
+
451
|
|
477
|
+
452
|
|
478
|
+
453
|
|
479
|
+
454
|
|
480
|
+
455
|
|
481
|
+
456
|
|
482
|
+
457
|
|
483
|
+
458
|
|
484
|
+
459
|
|
485
|
+
460
|
|
486
|
+
461
|
|
487
|
+
462
|
|
488
|
+
463
|
|
489
|
+
464
|
|
490
|
+
465
|
|
491
|
+
466
|
|
492
|
+
467
|
|
493
|
+
468
|
|
494
|
+
469
|
|
495
|
+
470
|
|
496
|
+
471
|
|
497
|
+
472
|
|
498
|
+
473
|
|
499
|
+
474
|
|
500
|
+
475
|
|
501
|
+
476
|
|
502
|
+
477
|
|
503
|
+
478
|
|
504
|
+
479
|
|
505
|
+
480
|
|
506
|
+
481
|
|
507
|
+
482
|
|
508
|
+
483
|
|
509
|
+
484
|
|
510
|
+
485
|
|
511
|
+
486
|
|
512
|
+
487
|
|
513
|
+
488
|
|
514
|
+
489
|
|
515
|
+
490
|
|
516
|
+
491
|
|
517
|
+
492
|
|
518
|
+
493
|
|
519
|
+
494
|
|
520
|
+
495
|
|
521
|
+
496
|
|
522
|
+
497
|
|
523
|
+
498
|
|
524
|
+
499
|
|
525
|
+
500
|
|
526
|
+
501
|
|
527
|
+
502
|
|
528
|
+
503
|
|
529
|
+
504
|
|
530
|
+
505
|
|
531
|
+
506
|
|
532
|
+
507
|
|
533
|
+
508
|
|
534
|
+
509
|
|
535
|
+
510
|
|
536
|
+
511
|
|
537
|
+
512
|
|
538
|
+
513
|
|
539
|
+
514
|
|
540
|
+
515
|
|
541
|
+
516
|
|
542
|
+
517
|
|
543
|
+
518
|
|
544
|
+
519
|
|
545
|
+
520
|
|
546
|
+
521
|
|
547
|
+
522
|
|
548
|
+
523
|
|
549
|
+
524
|
|
550
|
+
525
|
|
551
|
+
526
|
|
552
|
+
527
|
|
553
|
+
528
|
|
554
|
+
529
|
|
555
|
+
530
|
|
556
|
+
531
|
|
557
|
+
532
|
|
558
|
+
533
|
|
559
|
+
534
|
|
560
|
+
535
|
|
561
|
+
536
|
|
562
|
+
537
|
|
563
|
+
538
|
|
564
|
+
539
|
|
565
|
+
540
|
|
566
|
+
541
|
|
567
|
+
542
|
|
568
|
+
543
|
|
569
|
+
544
|
|
570
|
+
545
|
|
571
|
+
546
|
|
572
|
+
547
|
|
573
|
+
548
|
|
574
|
+
549
|
|
575
|
+
550
|
|
576
|
+
551
|
|
577
|
+
552
|
|
578
|
+
553
|
|
579
|
+
554
|
|
580
|
+
555
|
|
581
|
+
556
|
|
582
|
+
557
|
|
583
|
+
558
|
|
584
|
+
559
|
|
585
|
+
560
|
|
586
|
+
561</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
587
|
+
<span class="cline-any cline-neutral"> </span>
|
|
588
|
+
<span class="cline-any cline-neutral"> </span>
|
|
589
|
+
<span class="cline-any cline-neutral"> </span>
|
|
590
|
+
<span class="cline-any cline-neutral"> </span>
|
|
591
|
+
<span class="cline-any cline-neutral"> </span>
|
|
592
|
+
<span class="cline-any cline-neutral"> </span>
|
|
593
|
+
<span class="cline-any cline-yes">1x</span>
|
|
594
|
+
<span class="cline-any cline-yes">1x</span>
|
|
595
|
+
<span class="cline-any cline-yes">1x</span>
|
|
596
|
+
<span class="cline-any cline-neutral"> </span>
|
|
597
|
+
<span class="cline-any cline-neutral"> </span>
|
|
598
|
+
<span class="cline-any cline-neutral"> </span>
|
|
599
|
+
<span class="cline-any cline-neutral"> </span>
|
|
600
|
+
<span class="cline-any cline-neutral"> </span>
|
|
601
|
+
<span class="cline-any cline-neutral"> </span>
|
|
602
|
+
<span class="cline-any cline-neutral"> </span>
|
|
603
|
+
<span class="cline-any cline-yes">6x</span>
|
|
604
|
+
<span class="cline-any cline-yes">6x</span>
|
|
605
|
+
<span class="cline-any cline-neutral"> </span>
|
|
606
|
+
<span class="cline-any cline-yes">6x</span>
|
|
607
|
+
<span class="cline-any cline-yes">2x</span>
|
|
608
|
+
<span class="cline-any cline-yes">4x</span>
|
|
609
|
+
<span class="cline-any cline-yes">1x</span>
|
|
610
|
+
<span class="cline-any cline-neutral"> </span>
|
|
611
|
+
<span class="cline-any cline-yes">3x</span>
|
|
612
|
+
<span class="cline-any cline-neutral"> </span>
|
|
613
|
+
<span class="cline-any cline-yes">6x</span>
|
|
614
|
+
<span class="cline-any cline-neutral"> </span>
|
|
615
|
+
<span class="cline-any cline-neutral"> </span>
|
|
616
|
+
<span class="cline-any cline-neutral"> </span>
|
|
617
|
+
<span class="cline-any cline-neutral"> </span>
|
|
618
|
+
<span class="cline-any cline-neutral"> </span>
|
|
619
|
+
<span class="cline-any cline-neutral"> </span>
|
|
620
|
+
<span class="cline-any cline-neutral"> </span>
|
|
621
|
+
<span class="cline-any cline-neutral"> </span>
|
|
622
|
+
<span class="cline-any cline-yes">6x</span>
|
|
623
|
+
<span class="cline-any cline-yes">6x</span>
|
|
624
|
+
<span class="cline-any cline-yes">6x</span>
|
|
625
|
+
<span class="cline-any cline-yes">6x</span>
|
|
626
|
+
<span class="cline-any cline-yes">6x</span>
|
|
627
|
+
<span class="cline-any cline-yes">6x</span>
|
|
628
|
+
<span class="cline-any cline-yes">6x</span>
|
|
629
|
+
<span class="cline-any cline-yes">6x</span>
|
|
630
|
+
<span class="cline-any cline-yes">6x</span>
|
|
631
|
+
<span class="cline-any cline-yes">6x</span>
|
|
632
|
+
<span class="cline-any cline-neutral"> </span>
|
|
633
|
+
<span class="cline-any cline-neutral"> </span>
|
|
634
|
+
<span class="cline-any cline-neutral"> </span>
|
|
635
|
+
<span class="cline-any cline-neutral"> </span>
|
|
636
|
+
<span class="cline-any cline-neutral"> </span>
|
|
637
|
+
<span class="cline-any cline-neutral"> </span>
|
|
638
|
+
<span class="cline-any cline-neutral"> </span>
|
|
639
|
+
<span class="cline-any cline-no"> </span>
|
|
640
|
+
<span class="cline-any cline-no"> </span>
|
|
641
|
+
<span class="cline-any cline-neutral"> </span>
|
|
642
|
+
<span class="cline-any cline-neutral"> </span>
|
|
643
|
+
<span class="cline-any cline-neutral"> </span>
|
|
644
|
+
<span class="cline-any cline-neutral"> </span>
|
|
645
|
+
<span class="cline-any cline-neutral"> </span>
|
|
646
|
+
<span class="cline-any cline-neutral"> </span>
|
|
647
|
+
<span class="cline-any cline-neutral"> </span>
|
|
648
|
+
<span class="cline-any cline-neutral"> </span>
|
|
649
|
+
<span class="cline-any cline-neutral"> </span>
|
|
650
|
+
<span class="cline-any cline-neutral"> </span>
|
|
651
|
+
<span class="cline-any cline-yes">3x</span>
|
|
652
|
+
<span class="cline-any cline-yes">3x</span>
|
|
653
|
+
<span class="cline-any cline-neutral"> </span>
|
|
654
|
+
<span class="cline-any cline-yes">3x</span>
|
|
655
|
+
<span class="cline-any cline-neutral"> </span>
|
|
656
|
+
<span class="cline-any cline-neutral"> </span>
|
|
657
|
+
<span class="cline-any cline-neutral"> </span>
|
|
658
|
+
<span class="cline-any cline-neutral"> </span>
|
|
659
|
+
<span class="cline-any cline-neutral"> </span>
|
|
660
|
+
<span class="cline-any cline-neutral"> </span>
|
|
661
|
+
<span class="cline-any cline-neutral"> </span>
|
|
662
|
+
<span class="cline-any cline-neutral"> </span>
|
|
663
|
+
<span class="cline-any cline-yes">3x</span>
|
|
664
|
+
<span class="cline-any cline-no"> </span>
|
|
665
|
+
<span class="cline-any cline-neutral"> </span>
|
|
666
|
+
<span class="cline-any cline-yes">3x</span>
|
|
667
|
+
<span class="cline-any cline-neutral"> </span>
|
|
668
|
+
<span class="cline-any cline-neutral"> </span>
|
|
669
|
+
<span class="cline-any cline-neutral"> </span>
|
|
670
|
+
<span class="cline-any cline-neutral"> </span>
|
|
671
|
+
<span class="cline-any cline-neutral"> </span>
|
|
672
|
+
<span class="cline-any cline-neutral"> </span>
|
|
673
|
+
<span class="cline-any cline-neutral"> </span>
|
|
674
|
+
<span class="cline-any cline-yes">2x</span>
|
|
675
|
+
<span class="cline-any cline-no"> </span>
|
|
676
|
+
<span class="cline-any cline-neutral"> </span>
|
|
677
|
+
<span class="cline-any cline-yes">2x</span>
|
|
678
|
+
<span class="cline-any cline-yes">2x</span>
|
|
679
|
+
<span class="cline-any cline-neutral"> </span>
|
|
680
|
+
<span class="cline-any cline-yes">2x</span>
|
|
681
|
+
<span class="cline-any cline-yes">2x</span>
|
|
682
|
+
<span class="cline-any cline-neutral"> </span>
|
|
683
|
+
<span class="cline-any cline-neutral"> </span>
|
|
684
|
+
<span class="cline-any cline-no"> </span>
|
|
685
|
+
<span class="cline-any cline-no"> </span>
|
|
686
|
+
<span class="cline-any cline-neutral"> </span>
|
|
687
|
+
<span class="cline-any cline-neutral"> </span>
|
|
688
|
+
<span class="cline-any cline-neutral"> </span>
|
|
689
|
+
<span class="cline-any cline-neutral"> </span>
|
|
690
|
+
<span class="cline-any cline-neutral"> </span>
|
|
691
|
+
<span class="cline-any cline-neutral"> </span>
|
|
692
|
+
<span class="cline-any cline-neutral"> </span>
|
|
693
|
+
<span class="cline-any cline-neutral"> </span>
|
|
694
|
+
<span class="cline-any cline-neutral"> </span>
|
|
695
|
+
<span class="cline-any cline-no"> </span>
|
|
696
|
+
<span class="cline-any cline-no"> </span>
|
|
697
|
+
<span class="cline-any cline-neutral"> </span>
|
|
698
|
+
<span class="cline-any cline-neutral"> </span>
|
|
699
|
+
<span class="cline-any cline-neutral"> </span>
|
|
700
|
+
<span class="cline-any cline-neutral"> </span>
|
|
701
|
+
<span class="cline-any cline-neutral"> </span>
|
|
702
|
+
<span class="cline-any cline-neutral"> </span>
|
|
703
|
+
<span class="cline-any cline-neutral"> </span>
|
|
704
|
+
<span class="cline-any cline-neutral"> </span>
|
|
705
|
+
<span class="cline-any cline-neutral"> </span>
|
|
706
|
+
<span class="cline-any cline-neutral"> </span>
|
|
707
|
+
<span class="cline-any cline-neutral"> </span>
|
|
708
|
+
<span class="cline-any cline-no"> </span>
|
|
709
|
+
<span class="cline-any cline-no"> </span>
|
|
710
|
+
<span class="cline-any cline-no"> </span>
|
|
711
|
+
<span class="cline-any cline-no"> </span>
|
|
712
|
+
<span class="cline-any cline-neutral"> </span>
|
|
713
|
+
<span class="cline-any cline-neutral"> </span>
|
|
714
|
+
<span class="cline-any cline-neutral"> </span>
|
|
715
|
+
<span class="cline-any cline-neutral"> </span>
|
|
716
|
+
<span class="cline-any cline-neutral"> </span>
|
|
717
|
+
<span class="cline-any cline-neutral"> </span>
|
|
718
|
+
<span class="cline-any cline-neutral"> </span>
|
|
719
|
+
<span class="cline-any cline-neutral"> </span>
|
|
720
|
+
<span class="cline-any cline-no"> </span>
|
|
721
|
+
<span class="cline-any cline-no"> </span>
|
|
722
|
+
<span class="cline-any cline-neutral"> </span>
|
|
723
|
+
<span class="cline-any cline-neutral"> </span>
|
|
724
|
+
<span class="cline-any cline-no"> </span>
|
|
725
|
+
<span class="cline-any cline-neutral"> </span>
|
|
726
|
+
<span class="cline-any cline-neutral"> </span>
|
|
727
|
+
<span class="cline-any cline-neutral"> </span>
|
|
728
|
+
<span class="cline-any cline-neutral"> </span>
|
|
729
|
+
<span class="cline-any cline-neutral"> </span>
|
|
730
|
+
<span class="cline-any cline-neutral"> </span>
|
|
731
|
+
<span class="cline-any cline-neutral"> </span>
|
|
732
|
+
<span class="cline-any cline-neutral"> </span>
|
|
733
|
+
<span class="cline-any cline-neutral"> </span>
|
|
734
|
+
<span class="cline-any cline-yes">6x</span>
|
|
735
|
+
<span class="cline-any cline-neutral"> </span>
|
|
736
|
+
<span class="cline-any cline-yes">6x</span>
|
|
737
|
+
<span class="cline-any cline-yes">6x</span>
|
|
738
|
+
<span class="cline-any cline-yes">6x</span>
|
|
739
|
+
<span class="cline-any cline-neutral"> </span>
|
|
740
|
+
<span class="cline-any cline-yes">6x</span>
|
|
741
|
+
<span class="cline-any cline-neutral"> </span>
|
|
742
|
+
<span class="cline-any cline-neutral"> </span>
|
|
743
|
+
<span class="cline-any cline-neutral"> </span>
|
|
744
|
+
<span class="cline-any cline-neutral"> </span>
|
|
745
|
+
<span class="cline-any cline-neutral"> </span>
|
|
746
|
+
<span class="cline-any cline-neutral"> </span>
|
|
747
|
+
<span class="cline-any cline-neutral"> </span>
|
|
748
|
+
<span class="cline-any cline-neutral"> </span>
|
|
749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
750
|
+
<span class="cline-any cline-yes">6x</span>
|
|
751
|
+
<span class="cline-any cline-yes">6x</span>
|
|
752
|
+
<span class="cline-any cline-yes">6x</span>
|
|
753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
754
|
+
<span class="cline-any cline-neutral"> </span>
|
|
755
|
+
<span class="cline-any cline-neutral"> </span>
|
|
756
|
+
<span class="cline-any cline-neutral"> </span>
|
|
757
|
+
<span class="cline-any cline-neutral"> </span>
|
|
758
|
+
<span class="cline-any cline-neutral"> </span>
|
|
759
|
+
<span class="cline-any cline-neutral"> </span>
|
|
760
|
+
<span class="cline-any cline-neutral"> </span>
|
|
761
|
+
<span class="cline-any cline-no"> </span>
|
|
762
|
+
<span class="cline-any cline-neutral"> </span>
|
|
763
|
+
<span class="cline-any cline-neutral"> </span>
|
|
764
|
+
<span class="cline-any cline-neutral"> </span>
|
|
765
|
+
<span class="cline-any cline-neutral"> </span>
|
|
766
|
+
<span class="cline-any cline-neutral"> </span>
|
|
767
|
+
<span class="cline-any cline-neutral"> </span>
|
|
768
|
+
<span class="cline-any cline-no"> </span>
|
|
769
|
+
<span class="cline-any cline-neutral"> </span>
|
|
770
|
+
<span class="cline-any cline-neutral"> </span>
|
|
771
|
+
<span class="cline-any cline-neutral"> </span>
|
|
772
|
+
<span class="cline-any cline-neutral"> </span>
|
|
773
|
+
<span class="cline-any cline-neutral"> </span>
|
|
774
|
+
<span class="cline-any cline-neutral"> </span>
|
|
775
|
+
<span class="cline-any cline-neutral"> </span>
|
|
776
|
+
<span class="cline-any cline-neutral"> </span>
|
|
777
|
+
<span class="cline-any cline-yes">3x</span>
|
|
778
|
+
<span class="cline-any cline-neutral"> </span>
|
|
779
|
+
<span class="cline-any cline-neutral"> </span>
|
|
780
|
+
<span class="cline-any cline-neutral"> </span>
|
|
781
|
+
<span class="cline-any cline-neutral"> </span>
|
|
782
|
+
<span class="cline-any cline-neutral"> </span>
|
|
783
|
+
<span class="cline-any cline-neutral"> </span>
|
|
784
|
+
<span class="cline-any cline-neutral"> </span>
|
|
785
|
+
<span class="cline-any cline-neutral"> </span>
|
|
786
|
+
<span class="cline-any cline-neutral"> </span>
|
|
787
|
+
<span class="cline-any cline-neutral"> </span>
|
|
788
|
+
<span class="cline-any cline-neutral"> </span>
|
|
789
|
+
<span class="cline-any cline-neutral"> </span>
|
|
790
|
+
<span class="cline-any cline-neutral"> </span>
|
|
791
|
+
<span class="cline-any cline-neutral"> </span>
|
|
792
|
+
<span class="cline-any cline-neutral"> </span>
|
|
793
|
+
<span class="cline-any cline-neutral"> </span>
|
|
794
|
+
<span class="cline-any cline-neutral"> </span>
|
|
795
|
+
<span class="cline-any cline-neutral"> </span>
|
|
796
|
+
<span class="cline-any cline-neutral"> </span>
|
|
797
|
+
<span class="cline-any cline-neutral"> </span>
|
|
798
|
+
<span class="cline-any cline-neutral"> </span>
|
|
799
|
+
<span class="cline-any cline-neutral"> </span>
|
|
800
|
+
<span class="cline-any cline-yes">36x</span>
|
|
801
|
+
<span class="cline-any cline-yes">4x</span>
|
|
802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
803
|
+
<span class="cline-any cline-yes">32x</span>
|
|
804
|
+
<span class="cline-any cline-neutral"> </span>
|
|
805
|
+
<span class="cline-any cline-neutral"> </span>
|
|
806
|
+
<span class="cline-any cline-neutral"> </span>
|
|
807
|
+
<span class="cline-any cline-neutral"> </span>
|
|
808
|
+
<span class="cline-any cline-neutral"> </span>
|
|
809
|
+
<span class="cline-any cline-neutral"> </span>
|
|
810
|
+
<span class="cline-any cline-neutral"> </span>
|
|
811
|
+
<span class="cline-any cline-neutral"> </span>
|
|
812
|
+
<span class="cline-any cline-neutral"> </span>
|
|
813
|
+
<span class="cline-any cline-yes">6x</span>
|
|
814
|
+
<span class="cline-any cline-yes">6x</span>
|
|
815
|
+
<span class="cline-any cline-neutral"> </span>
|
|
816
|
+
<span class="cline-any cline-neutral"> </span>
|
|
817
|
+
<span class="cline-any cline-neutral"> </span>
|
|
818
|
+
<span class="cline-any cline-neutral"> </span>
|
|
819
|
+
<span class="cline-any cline-neutral"> </span>
|
|
820
|
+
<span class="cline-any cline-neutral"> </span>
|
|
821
|
+
<span class="cline-any cline-neutral"> </span>
|
|
822
|
+
<span class="cline-any cline-neutral"> </span>
|
|
823
|
+
<span class="cline-any cline-neutral"> </span>
|
|
824
|
+
<span class="cline-any cline-neutral"> </span>
|
|
825
|
+
<span class="cline-any cline-neutral"> </span>
|
|
826
|
+
<span class="cline-any cline-neutral"> </span>
|
|
827
|
+
<span class="cline-any cline-neutral"> </span>
|
|
828
|
+
<span class="cline-any cline-neutral"> </span>
|
|
829
|
+
<span class="cline-any cline-neutral"> </span>
|
|
830
|
+
<span class="cline-any cline-neutral"> </span>
|
|
831
|
+
<span class="cline-any cline-neutral"> </span>
|
|
832
|
+
<span class="cline-any cline-neutral"> </span>
|
|
833
|
+
<span class="cline-any cline-neutral"> </span>
|
|
834
|
+
<span class="cline-any cline-neutral"> </span>
|
|
835
|
+
<span class="cline-any cline-neutral"> </span>
|
|
836
|
+
<span class="cline-any cline-neutral"> </span>
|
|
837
|
+
<span class="cline-any cline-neutral"> </span>
|
|
838
|
+
<span class="cline-any cline-neutral"> </span>
|
|
839
|
+
<span class="cline-any cline-neutral"> </span>
|
|
840
|
+
<span class="cline-any cline-neutral"> </span>
|
|
841
|
+
<span class="cline-any cline-neutral"> </span>
|
|
842
|
+
<span class="cline-any cline-neutral"> </span>
|
|
843
|
+
<span class="cline-any cline-neutral"> </span>
|
|
844
|
+
<span class="cline-any cline-neutral"> </span>
|
|
845
|
+
<span class="cline-any cline-neutral"> </span>
|
|
846
|
+
<span class="cline-any cline-yes">6x</span>
|
|
847
|
+
<span class="cline-any cline-neutral"> </span>
|
|
848
|
+
<span class="cline-any cline-yes">6x</span>
|
|
849
|
+
<span class="cline-any cline-neutral"> </span>
|
|
850
|
+
<span class="cline-any cline-neutral"> </span>
|
|
851
|
+
<span class="cline-any cline-neutral"> </span>
|
|
852
|
+
<span class="cline-any cline-neutral"> </span>
|
|
853
|
+
<span class="cline-any cline-neutral"> </span>
|
|
854
|
+
<span class="cline-any cline-neutral"> </span>
|
|
855
|
+
<span class="cline-any cline-neutral"> </span>
|
|
856
|
+
<span class="cline-any cline-neutral"> </span>
|
|
857
|
+
<span class="cline-any cline-neutral"> </span>
|
|
858
|
+
<span class="cline-any cline-neutral"> </span>
|
|
859
|
+
<span class="cline-any cline-neutral"> </span>
|
|
860
|
+
<span class="cline-any cline-neutral"> </span>
|
|
861
|
+
<span class="cline-any cline-neutral"> </span>
|
|
862
|
+
<span class="cline-any cline-neutral"> </span>
|
|
863
|
+
<span class="cline-any cline-neutral"> </span>
|
|
864
|
+
<span class="cline-any cline-neutral"> </span>
|
|
865
|
+
<span class="cline-any cline-neutral"> </span>
|
|
866
|
+
<span class="cline-any cline-neutral"> </span>
|
|
867
|
+
<span class="cline-any cline-neutral"> </span>
|
|
868
|
+
<span class="cline-any cline-neutral"> </span>
|
|
869
|
+
<span class="cline-any cline-neutral"> </span>
|
|
870
|
+
<span class="cline-any cline-neutral"> </span>
|
|
871
|
+
<span class="cline-any cline-neutral"> </span>
|
|
872
|
+
<span class="cline-any cline-neutral"> </span>
|
|
873
|
+
<span class="cline-any cline-neutral"> </span>
|
|
874
|
+
<span class="cline-any cline-neutral"> </span>
|
|
875
|
+
<span class="cline-any cline-neutral"> </span>
|
|
876
|
+
<span class="cline-any cline-neutral"> </span>
|
|
877
|
+
<span class="cline-any cline-neutral"> </span>
|
|
878
|
+
<span class="cline-any cline-neutral"> </span>
|
|
879
|
+
<span class="cline-any cline-neutral"> </span>
|
|
880
|
+
<span class="cline-any cline-neutral"> </span>
|
|
881
|
+
<span class="cline-any cline-neutral"> </span>
|
|
882
|
+
<span class="cline-any cline-neutral"> </span>
|
|
883
|
+
<span class="cline-any cline-neutral"> </span>
|
|
884
|
+
<span class="cline-any cline-neutral"> </span>
|
|
885
|
+
<span class="cline-any cline-neutral"> </span>
|
|
886
|
+
<span class="cline-any cline-neutral"> </span>
|
|
887
|
+
<span class="cline-any cline-neutral"> </span>
|
|
888
|
+
<span class="cline-any cline-neutral"> </span>
|
|
889
|
+
<span class="cline-any cline-neutral"> </span>
|
|
890
|
+
<span class="cline-any cline-neutral"> </span>
|
|
891
|
+
<span class="cline-any cline-neutral"> </span>
|
|
892
|
+
<span class="cline-any cline-neutral"> </span>
|
|
893
|
+
<span class="cline-any cline-neutral"> </span>
|
|
894
|
+
<span class="cline-any cline-neutral"> </span>
|
|
895
|
+
<span class="cline-any cline-neutral"> </span>
|
|
896
|
+
<span class="cline-any cline-neutral"> </span>
|
|
897
|
+
<span class="cline-any cline-neutral"> </span>
|
|
898
|
+
<span class="cline-any cline-neutral"> </span>
|
|
899
|
+
<span class="cline-any cline-neutral"> </span>
|
|
900
|
+
<span class="cline-any cline-neutral"> </span>
|
|
901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
902
|
+
<span class="cline-any cline-neutral"> </span>
|
|
903
|
+
<span class="cline-any cline-neutral"> </span>
|
|
904
|
+
<span class="cline-any cline-neutral"> </span>
|
|
905
|
+
<span class="cline-any cline-neutral"> </span>
|
|
906
|
+
<span class="cline-any cline-neutral"> </span>
|
|
907
|
+
<span class="cline-any cline-neutral"> </span>
|
|
908
|
+
<span class="cline-any cline-neutral"> </span>
|
|
909
|
+
<span class="cline-any cline-neutral"> </span>
|
|
910
|
+
<span class="cline-any cline-neutral"> </span>
|
|
911
|
+
<span class="cline-any cline-neutral"> </span>
|
|
912
|
+
<span class="cline-any cline-neutral"> </span>
|
|
913
|
+
<span class="cline-any cline-neutral"> </span>
|
|
914
|
+
<span class="cline-any cline-neutral"> </span>
|
|
915
|
+
<span class="cline-any cline-neutral"> </span>
|
|
916
|
+
<span class="cline-any cline-neutral"> </span>
|
|
917
|
+
<span class="cline-any cline-yes">1x</span>
|
|
918
|
+
<span class="cline-any cline-neutral"> </span>
|
|
919
|
+
<span class="cline-any cline-yes">1x</span>
|
|
920
|
+
<span class="cline-any cline-neutral"> </span>
|
|
921
|
+
<span class="cline-any cline-no"> </span>
|
|
922
|
+
<span class="cline-any cline-neutral"> </span>
|
|
923
|
+
<span class="cline-any cline-yes">1x</span>
|
|
924
|
+
<span class="cline-any cline-yes">1x</span>
|
|
925
|
+
<span class="cline-any cline-neutral"> </span>
|
|
926
|
+
<span class="cline-any cline-neutral"> </span>
|
|
927
|
+
<span class="cline-any cline-neutral"> </span>
|
|
928
|
+
<span class="cline-any cline-neutral"> </span>
|
|
929
|
+
<span class="cline-any cline-neutral"> </span>
|
|
930
|
+
<span class="cline-any cline-neutral"> </span>
|
|
931
|
+
<span class="cline-any cline-neutral"> </span>
|
|
932
|
+
<span class="cline-any cline-neutral"> </span>
|
|
933
|
+
<span class="cline-any cline-yes">3x</span>
|
|
934
|
+
<span class="cline-any cline-neutral"> </span>
|
|
935
|
+
<span class="cline-any cline-neutral"> </span>
|
|
936
|
+
<span class="cline-any cline-neutral"> </span>
|
|
937
|
+
<span class="cline-any cline-neutral"> </span>
|
|
938
|
+
<span class="cline-any cline-neutral"> </span>
|
|
939
|
+
<span class="cline-any cline-neutral"> </span>
|
|
940
|
+
<span class="cline-any cline-neutral"> </span>
|
|
941
|
+
<span class="cline-any cline-neutral"> </span>
|
|
942
|
+
<span class="cline-any cline-neutral"> </span>
|
|
943
|
+
<span class="cline-any cline-neutral"> </span>
|
|
944
|
+
<span class="cline-any cline-neutral"> </span>
|
|
945
|
+
<span class="cline-any cline-neutral"> </span>
|
|
946
|
+
<span class="cline-any cline-neutral"> </span>
|
|
947
|
+
<span class="cline-any cline-neutral"> </span>
|
|
948
|
+
<span class="cline-any cline-neutral"> </span>
|
|
949
|
+
<span class="cline-any cline-neutral"> </span>
|
|
950
|
+
<span class="cline-any cline-neutral"> </span>
|
|
951
|
+
<span class="cline-any cline-neutral"> </span>
|
|
952
|
+
<span class="cline-any cline-neutral"> </span>
|
|
953
|
+
<span class="cline-any cline-neutral"> </span>
|
|
954
|
+
<span class="cline-any cline-neutral"> </span>
|
|
955
|
+
<span class="cline-any cline-neutral"> </span>
|
|
956
|
+
<span class="cline-any cline-yes">15x</span>
|
|
957
|
+
<span class="cline-any cline-yes">15x</span>
|
|
958
|
+
<span class="cline-any cline-yes">15x</span>
|
|
959
|
+
<span class="cline-any cline-neutral"> </span>
|
|
960
|
+
<span class="cline-any cline-yes">15x</span>
|
|
961
|
+
<span class="cline-any cline-yes">15x</span>
|
|
962
|
+
<span class="cline-any cline-neutral"> </span>
|
|
963
|
+
<span class="cline-any cline-yes">15x</span>
|
|
964
|
+
<span class="cline-any cline-neutral"> </span>
|
|
965
|
+
<span class="cline-any cline-neutral"> </span>
|
|
966
|
+
<span class="cline-any cline-neutral"> </span>
|
|
967
|
+
<span class="cline-any cline-neutral"> </span>
|
|
968
|
+
<span class="cline-any cline-neutral"> </span>
|
|
969
|
+
<span class="cline-any cline-neutral"> </span>
|
|
970
|
+
<span class="cline-any cline-neutral"> </span>
|
|
971
|
+
<span class="cline-any cline-neutral"> </span>
|
|
972
|
+
<span class="cline-any cline-neutral"> </span>
|
|
973
|
+
<span class="cline-any cline-neutral"> </span>
|
|
974
|
+
<span class="cline-any cline-neutral"> </span>
|
|
975
|
+
<span class="cline-any cline-neutral"> </span>
|
|
976
|
+
<span class="cline-any cline-neutral"> </span>
|
|
977
|
+
<span class="cline-any cline-neutral"> </span>
|
|
978
|
+
<span class="cline-any cline-neutral"> </span>
|
|
979
|
+
<span class="cline-any cline-neutral"> </span>
|
|
980
|
+
<span class="cline-any cline-neutral"> </span>
|
|
981
|
+
<span class="cline-any cline-neutral"> </span>
|
|
982
|
+
<span class="cline-any cline-neutral"> </span>
|
|
983
|
+
<span class="cline-any cline-neutral"> </span>
|
|
984
|
+
<span class="cline-any cline-neutral"> </span>
|
|
985
|
+
<span class="cline-any cline-neutral"> </span>
|
|
986
|
+
<span class="cline-any cline-neutral"> </span>
|
|
987
|
+
<span class="cline-any cline-neutral"> </span>
|
|
988
|
+
<span class="cline-any cline-neutral"> </span>
|
|
989
|
+
<span class="cline-any cline-neutral"> </span>
|
|
990
|
+
<span class="cline-any cline-neutral"> </span>
|
|
991
|
+
<span class="cline-any cline-neutral"> </span>
|
|
992
|
+
<span class="cline-any cline-neutral"> </span>
|
|
993
|
+
<span class="cline-any cline-neutral"> </span>
|
|
994
|
+
<span class="cline-any cline-neutral"> </span>
|
|
995
|
+
<span class="cline-any cline-neutral"> </span>
|
|
996
|
+
<span class="cline-any cline-neutral"> </span>
|
|
997
|
+
<span class="cline-any cline-neutral"> </span>
|
|
998
|
+
<span class="cline-any cline-neutral"> </span>
|
|
999
|
+
<span class="cline-any cline-no"> </span>
|
|
1000
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1001
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1002
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1003
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1004
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1005
|
+
<span class="cline-any cline-no"> </span>
|
|
1006
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1007
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1008
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1009
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1010
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1011
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1012
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1013
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1014
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1015
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1016
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1018
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1019
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1020
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1021
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1022
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1023
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1024
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1025
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1026
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1027
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1028
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1029
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1030
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1031
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1032
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1033
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1034
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1037
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1038
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1039
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1040
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1041
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1042
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1043
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1044
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1045
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1046
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1047
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1048
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1050
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1051
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1052
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1053
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1054
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1055
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1057
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1058
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1059
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1061
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1063
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1065
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1066
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1067
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1068
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1069
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1070
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1071
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1072
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1073
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1074
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1075
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1079
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1080
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1081
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1084
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1085
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1086
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1087
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1088
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1089
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1090
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1091
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1092
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1093
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1094
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1095
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1097
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1098
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1100
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1105
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1114
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1115
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1116
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1119
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1130
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1146
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import React, { Component } from 'react';
|
|
1147
|
+
import axios from 'axios';
|
|
1148
|
+
import propTypes from 'prop-types';
|
|
1149
|
+
import Icon from 'react-fontawesome';
|
|
1150
|
+
import { AsyncTypeahead, Menu, MenuItem } from 'react-bootstrap-typeahead';
|
|
1151
|
+
import './SchoolsLookUp.scss';
|
|
1152
|
+
|
|
1153
|
+
const SHOW_EDCO_LOOKUP = 'SHOW_EDCO_LOOKUP';
|
|
1154
|
+
const SHOW_MANUAL_LOOKUP = 'SHOW_MANUAL_LOOKUP';
|
|
1155
|
+
const HIDE_LOOKUP = 'HIDE_LOOKUP';
|
|
1156
|
+
|
|
1157
|
+
class SchoolsLookUp extends Component {
|
|
1158
|
+
/**
|
|
1159
|
+
* SchoolsLookUp constructor.
|
|
1160
|
+
* @param {object} props
|
|
1161
|
+
*/
|
|
1162
|
+
constructor(props) {
|
|
1163
|
+
super(props);
|
|
1164
|
+
const { selectedEstablishment, establishmentNameValue } = props;
|
|
1165
|
+
let lookup;
|
|
1166
|
+
if (selectedEstablishment && selectedEstablishment.id) {
|
|
1167
|
+
lookup = HIDE_LOOKUP;
|
|
1168
|
+
} else if (establishmentNameValue || this.hasError(props)) {
|
|
1169
|
+
lookup = SHOW_MANUAL_LOOKUP;
|
|
1170
|
+
} else {
|
|
1171
|
+
lookup = SHOW_EDCO_LOOKUP;
|
|
1172
|
+
}
|
|
1173
|
+
this.state = {
|
|
1174
|
+
options: [],
|
|
1175
|
+
query: '',
|
|
1176
|
+
isSearching: false,
|
|
1177
|
+
isDefaultOptionHighlighted: true,
|
|
1178
|
+
lookup,
|
|
1179
|
+
lookupFetchError: false,
|
|
1180
|
+
};
|
|
1181
|
+
|
|
1182
|
+
this.handleChange = this.handleChange.bind(this);
|
|
1183
|
+
this.handleSearch = this.handleSearch.bind(this);
|
|
1184
|
+
this.handleLookup = this.handleLookup.bind(this);
|
|
1185
|
+
this.handleManual = this.handleManual.bind(this);
|
|
1186
|
+
this.handleBlur = this.handleBlur.bind(this);
|
|
1187
|
+
this.handleDefaultOptionHoverOff = this.handleDefaultOptionHoverOff.bind(this);
|
|
1188
|
+
this.handleInputChange = this.handleInputChange.bind(this);
|
|
1189
|
+
this.renderMenu = this.renderMenu.bind(this);
|
|
1190
|
+
this.renderSingleInput = this.renderSingleInput.bind(this);
|
|
1191
|
+
this.renderEstablishmentDetails = this.renderEstablishmentDetails.bind(this);
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
/**
|
|
1195
|
+
* Component lifecycle event triggered whenever props change
|
|
1196
|
+
* @param {object} props
|
|
1197
|
+
*/
|
|
1198
|
+
<span class="fstat-no" title="function not covered" > co</span>mponentWillReceiveProps(nextProps) {
|
|
1199
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasError(nextProps)) {</span>
|
|
1200
|
+
<span class="cstat-no" title="statement not covered" > this.handleLookup(SHOW_MANUAL_LOOKUP);</span>
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
/**
|
|
1205
|
+
* Check whether any field has error or all are valid
|
|
1206
|
+
* @param {object} props
|
|
1207
|
+
* @return {boolean}
|
|
1208
|
+
*/
|
|
1209
|
+
hasError(props) {
|
|
1210
|
+
const { establishmentNameErrorMessage, address1ErrorMessage, address2ErrorMessage,
|
|
1211
|
+
address3ErrorMessage, townErrorMessage, postcodeErrorMessage } = props;
|
|
1212
|
+
const hasError = establishmentNameErrorMessage || address1ErrorMessage || address2ErrorMessage ||
|
|
1213
|
+
address3ErrorMessage || townErrorMessage || postcodeErrorMessage;
|
|
1214
|
+
return Boolean(hasError);
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1217
|
+
/**
|
|
1218
|
+
* Handle click event.
|
|
1219
|
+
* @param {string} lookup
|
|
1220
|
+
* @param {object} event
|
|
1221
|
+
*/
|
|
1222
|
+
handleLookup(lookup, event) {
|
|
1223
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (event) {
|
|
1224
|
+
<span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
|
|
1225
|
+
}
|
|
1226
|
+
this.setState({ lookup });
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
/**
|
|
1230
|
+
* Handle search event.
|
|
1231
|
+
* @param {string} query
|
|
1232
|
+
*/
|
|
1233
|
+
handleSearch(query) {
|
|
1234
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!query) {
|
|
1235
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
1236
|
+
}
|
|
1237
|
+
this.setState({ isSearching: true });
|
|
1238
|
+
axios.get(this.props.data + query)
|
|
1239
|
+
.then((response) => {
|
|
1240
|
+
const options = response.data.data.schools;
|
|
1241
|
+
this.setState({ query, options, isSearching: false, lookupFetchError: false });
|
|
1242
|
+
}).catch(<span class="fstat-no" title="function not covered" >(e</span>rr) => {
|
|
1243
|
+
// For now, ensure this is not a validation etc. error
|
|
1244
|
+
<span class="cstat-no" title="statement not covered" > if (err.message === 'Network Error' && err.response === undefined) {</span>
|
|
1245
|
+
<span class="cstat-no" title="statement not covered" > this.setState({ query, isSearching: false, lookupFetchError: true, lookup: SHOW_MANUAL_LOOKUP });</span>
|
|
1246
|
+
}
|
|
1247
|
+
});
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
/**
|
|
1251
|
+
* Handle change event.
|
|
1252
|
+
* @param data
|
|
1253
|
+
*/
|
|
1254
|
+
<span class="fstat-no" title="function not covered" > ha</span>ndleChange(data) {
|
|
1255
|
+
<span class="cstat-no" title="statement not covered" > if (!data || !data[0] || data[0].id === 0) {</span>
|
|
1256
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
1257
|
+
}
|
|
1258
|
+
const {
|
|
1259
|
+
selectedEstablishmentIdentifier,
|
|
1260
|
+
establishmentIdIdentifier,
|
|
1261
|
+
establishmentNameIdentifier,
|
|
1262
|
+
address1Identifier,
|
|
1263
|
+
address2Identifier,
|
|
1264
|
+
address3Identifier,
|
|
1265
|
+
townIdentifier,
|
|
1266
|
+
postcodeIdentifier,
|
|
1267
|
+
onChange,
|
|
1268
|
+
} = <span class="cstat-no" title="statement not covered" >this.props;</span>
|
|
1269
|
+
const selectedEstablishment = <span class="cstat-no" title="statement not covered" >data[0];</span>
|
|
1270
|
+
<span class="cstat-no" title="statement not covered" > onChange(selectedEstablishmentIdentifier, { target: { value: selectedEstablishment } });</span>
|
|
1271
|
+
const mappedData = <span class="cstat-no" title="statement not covered" >{</span>
|
|
1272
|
+
[establishmentIdIdentifier]: selectedEstablishment.id,
|
|
1273
|
+
[establishmentNameIdentifier]: selectedEstablishment.name,
|
|
1274
|
+
[address1Identifier]: selectedEstablishment.address_1,
|
|
1275
|
+
[address2Identifier]: selectedEstablishment.address_2,
|
|
1276
|
+
[address3Identifier]: selectedEstablishment.address_3,
|
|
1277
|
+
[townIdentifier]: selectedEstablishment.town,
|
|
1278
|
+
[postcodeIdentifier]: selectedEstablishment.post_code,
|
|
1279
|
+
};
|
|
1280
|
+
<span class="cstat-no" title="statement not covered" > Object.keys(mappedData).forEach(<span class="fstat-no" title="function not covered" >(i</span>dentifier) => {</span>
|
|
1281
|
+
<span class="cstat-no" title="statement not covered" > onChange(identifier, { target: { value: mappedData[identifier] } });</span>
|
|
1282
|
+
});
|
|
1283
|
+
// display selection and reset fetched schools
|
|
1284
|
+
<span class="cstat-no" title="statement not covered" > this.setState({ lookup: HIDE_LOOKUP, isDefaultOptionHighlighted: false });</span>
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
/**
|
|
1288
|
+
* Handle change event.
|
|
1289
|
+
* @param {string} identifier
|
|
1290
|
+
* @param {object} event
|
|
1291
|
+
*/
|
|
1292
|
+
handleManual(identifier, event) {
|
|
1293
|
+
const { onChange, establishmentIdIdentifier,
|
|
1294
|
+
establishmentIdValue, selectedEstablishmentIdentifier } = this.props;
|
|
1295
|
+
// reset selected school on manual entry
|
|
1296
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (establishmentIdValue) {
|
|
1297
|
+
onChange(establishmentIdIdentifier, { target: { value: '' } });
|
|
1298
|
+
onChange(selectedEstablishmentIdentifier, { target: { value: {} } });
|
|
1299
|
+
}
|
|
1300
|
+
onChange(identifier, event);
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
/**
|
|
1304
|
+
* Handle blur event.
|
|
1305
|
+
* @param {string} identifier
|
|
1306
|
+
*/
|
|
1307
|
+
handleBlur(identifier) {
|
|
1308
|
+
const {
|
|
1309
|
+
validateField,
|
|
1310
|
+
} = this.props;
|
|
1311
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (validateField) {
|
|
1312
|
+
validateField(identifier);
|
|
1313
|
+
}
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
/**
|
|
1317
|
+
* Handle changing text value inside search box
|
|
1318
|
+
* @param {string} query
|
|
1319
|
+
*/
|
|
1320
|
+
<span class="fstat-no" title="function not covered" > ha</span>ndleInputChange(query) {
|
|
1321
|
+
<span class="cstat-no" title="statement not covered" > this.setState({ query, isDefaultOptionHighlighted: true });</span>
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
/**
|
|
1325
|
+
* Handle hovering off default option
|
|
1326
|
+
*/
|
|
1327
|
+
<span class="fstat-no" title="function not covered" > ha</span>ndleDefaultOptionHoverOff() {
|
|
1328
|
+
<span class="cstat-no" title="statement not covered" > this.setState({ isDefaultOptionHighlighted: false });</span>
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
/**
|
|
1332
|
+
* Render menu item children.
|
|
1333
|
+
* @param option
|
|
1334
|
+
* @return {XML}
|
|
1335
|
+
*/
|
|
1336
|
+
static renderMenuItemChildren(option) {
|
|
1337
|
+
return (
|
|
1338
|
+
<div key={option.id}>
|
|
1339
|
+
<span>{option.name}</span>
|
|
1340
|
+
{option.post_code ?
|
|
1341
|
+
<span>, {option.post_code}</span>:
|
|
1342
|
+
<span class="branch-1 cbranch-no" title="branch not covered" > null</span>
|
|
1343
|
+
}
|
|
1344
|
+
</div>
|
|
1345
|
+
);
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
/**
|
|
1349
|
+
* Render single input
|
|
1350
|
+
* @param {string} labelText
|
|
1351
|
+
* @param {string} identifier
|
|
1352
|
+
* @param {string} value
|
|
1353
|
+
* @param {string} errorMessage
|
|
1354
|
+
* @param {boolean} required
|
|
1355
|
+
* @param {boolean} readOnly
|
|
1356
|
+
* @return {XML}
|
|
1357
|
+
*/
|
|
1358
|
+
renderSingleInput(labelText, identifier, value, errorMessage, required, readOnly) {
|
|
1359
|
+
// avoid rendering read only with empty value
|
|
1360
|
+
if (readOnly === true && !value) {
|
|
1361
|
+
return null;
|
|
1362
|
+
}
|
|
1363
|
+
return (
|
|
1364
|
+
<div className={`${readOnly === false && errorMessage ? <span class="branch-0 cbranch-no" title="branch not covered" >'validation__wrapper':</span> ''}`}>
|
|
1365
|
+
{readOnly === false ?
|
|
1366
|
+
<div>
|
|
1367
|
+
<label htmlFor={identifier} className={`${required === true ? 'required' : ''}`}>{labelText}</label>
|
|
1368
|
+
<input
|
|
1369
|
+
id={identifier}
|
|
1370
|
+
name={identifier}
|
|
1371
|
+
value={value}
|
|
1372
|
+
type="text"
|
|
1373
|
+
onChange={event => this.handleManual(identifier, event)}
|
|
1374
|
+
onBlur={event => this.handleBlur(identifier, event)}
|
|
1375
|
+
required={required}
|
|
1376
|
+
/>
|
|
1377
|
+
{errorMessage ?
|
|
1378
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > <div className="validation__message"></span>
|
|
1379
|
+
<span>
|
|
1380
|
+
{errorMessage}
|
|
1381
|
+
</span>
|
|
1382
|
+
</div>:
|
|
1383
|
+
null
|
|
1384
|
+
}
|
|
1385
|
+
</div>:
|
|
1386
|
+
<p>{value}</p>
|
|
1387
|
+
}
|
|
1388
|
+
</div>
|
|
1389
|
+
);
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
/**
|
|
1393
|
+
* Render establishment details inputs whether read only or not
|
|
1394
|
+
* @param {object} establishmentDetails
|
|
1395
|
+
* @param {boolean} readOnly
|
|
1396
|
+
* @return {XML}
|
|
1397
|
+
*/
|
|
1398
|
+
renderEstablishmentDetails(establishmentDetails, readOnly) {
|
|
1399
|
+
const {
|
|
1400
|
+
establishmentNameLabelText, establishmentNameIdentifier, establishmentNameErrorMessage, establishmentNameRequired,
|
|
1401
|
+
address1LabelText, address1Identifier, address1ErrorMessage, address1Required,
|
|
1402
|
+
address2LabelText, address2Identifier, address2ErrorMessage, address2Required,
|
|
1403
|
+
address3LabelText, address3Identifier, address3ErrorMessage, address3Required,
|
|
1404
|
+
townLabelText, townIdentifier, townErrorMessage, townRequired,
|
|
1405
|
+
postcodeRequired, postcodeLabelText, postcodeIdentifier, postcodeErrorMessage,
|
|
1406
|
+
} = this.props;
|
|
1407
|
+
|
|
1408
|
+
return (
|
|
1409
|
+
<div className="schoolDetails">
|
|
1410
|
+
{this.renderSingleInput(
|
|
1411
|
+
establishmentNameLabelText,
|
|
1412
|
+
establishmentNameIdentifier,
|
|
1413
|
+
establishmentDetails[establishmentNameIdentifier],
|
|
1414
|
+
establishmentNameErrorMessage,
|
|
1415
|
+
establishmentNameRequired,
|
|
1416
|
+
readOnly,
|
|
1417
|
+
)}
|
|
1418
|
+
|
|
1419
|
+
{this.renderSingleInput(
|
|
1420
|
+
address1LabelText,
|
|
1421
|
+
address1Identifier,
|
|
1422
|
+
establishmentDetails[address1Identifier],
|
|
1423
|
+
address1ErrorMessage,
|
|
1424
|
+
address1Required,
|
|
1425
|
+
readOnly,
|
|
1426
|
+
)}
|
|
1427
|
+
|
|
1428
|
+
{this.renderSingleInput(
|
|
1429
|
+
address2LabelText,
|
|
1430
|
+
address2Identifier,
|
|
1431
|
+
establishmentDetails[address2Identifier],
|
|
1432
|
+
address2ErrorMessage,
|
|
1433
|
+
address2Required,
|
|
1434
|
+
readOnly,
|
|
1435
|
+
)}
|
|
1436
|
+
|
|
1437
|
+
{this.renderSingleInput(
|
|
1438
|
+
address3LabelText,
|
|
1439
|
+
address3Identifier,
|
|
1440
|
+
establishmentDetails[address3Identifier],
|
|
1441
|
+
address3ErrorMessage,
|
|
1442
|
+
address3Required,
|
|
1443
|
+
readOnly,
|
|
1444
|
+
)}
|
|
1445
|
+
|
|
1446
|
+
{this.renderSingleInput(
|
|
1447
|
+
townLabelText,
|
|
1448
|
+
townIdentifier,
|
|
1449
|
+
establishmentDetails[townIdentifier],
|
|
1450
|
+
townErrorMessage,
|
|
1451
|
+
townRequired,
|
|
1452
|
+
readOnly,
|
|
1453
|
+
)}
|
|
1454
|
+
|
|
1455
|
+
{this.renderSingleInput(
|
|
1456
|
+
postcodeLabelText,
|
|
1457
|
+
postcodeIdentifier,
|
|
1458
|
+
establishmentDetails[postcodeIdentifier],
|
|
1459
|
+
postcodeErrorMessage,
|
|
1460
|
+
postcodeRequired,
|
|
1461
|
+
readOnly,
|
|
1462
|
+
)}
|
|
1463
|
+
|
|
1464
|
+
</div>
|
|
1465
|
+
);
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
/**
|
|
1469
|
+
* Render whole menu
|
|
1470
|
+
* Render default option and search results
|
|
1471
|
+
* Render nothing in case searching is still in progress
|
|
1472
|
+
* @param {object} results
|
|
1473
|
+
* @param {object} menuProps
|
|
1474
|
+
* @return {XML}
|
|
1475
|
+
*/
|
|
1476
|
+
renderMenu(results, menuProps) {
|
|
1477
|
+
const { isSearching, isDefaultOptionHighlighted } = this.state;
|
|
1478
|
+
// do not show results until search is complete
|
|
1479
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (menuProps.emptyLabel === 'Searching...' || isSearching === true || results.length === 0
|
|
1480
|
+
) {
|
|
1481
|
+
<span class="cstat-no" title="statement not covered" > return <div />;</span>
|
|
1482
|
+
}
|
|
1483
|
+
const MenuHeader = props => <li {...props} className={isDefaultOptionHighlighted ? 'default-selection' : <span class="branch-1 cbranch-no" title="branch not covered" >''}</span> />;
|
|
1484
|
+
return (
|
|
1485
|
+
<Menu {...menuProps}>
|
|
1486
|
+
{results.length > 0 ?
|
|
1487
|
+
<div>
|
|
1488
|
+
<MenuHeader key="defaultSelection" onMouseLeave={this.handleDefaultOptionHoverOff}>
|
|
1489
|
+
Please select a school from the list below
|
|
1490
|
+
</MenuHeader>
|
|
1491
|
+
{
|
|
1492
|
+
results.map((result, index) => (
|
|
1493
|
+
<div key={index} onMouseEnter={this.handleDefaultOptionHoverOff}>
|
|
1494
|
+
<MenuItem option={result} position={index}>
|
|
1495
|
+
{SchoolsLookUp.renderMenuItemChildren(result)}
|
|
1496
|
+
</MenuItem>
|
|
1497
|
+
</div>
|
|
1498
|
+
))
|
|
1499
|
+
}
|
|
1500
|
+
</div>:
|
|
1501
|
+
<span class="branch-1 cbranch-no" title="branch not covered" > null</span>
|
|
1502
|
+
}
|
|
1503
|
+
</Menu>
|
|
1504
|
+
);
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
/**
|
|
1508
|
+
* Render Component.
|
|
1509
|
+
* @return {XML}
|
|
1510
|
+
*/
|
|
1511
|
+
render() {
|
|
1512
|
+
const {
|
|
1513
|
+
establishmentNameValue, address1Value, address2Value, address3Value, townValue, postcodeValue,
|
|
1514
|
+
establishmentNameIdentifier, address1Identifier, address2Identifier, address3Identifier,
|
|
1515
|
+
townIdentifier, postcodeIdentifier, min, selectedEstablishment, disabled, placeholder, extraClasses, titleCopy,
|
|
1516
|
+
} = this.props;
|
|
1517
|
+
const { lookup, options, isSearching, query } = this.state;
|
|
1518
|
+
const orEnterManuallyCopy = 'Or enter details manually';
|
|
1519
|
+
|
|
1520
|
+
const haslookupFetchError = this.state.lookupFetchError;
|
|
1521
|
+
const lookupFetchErrorMsg = "Sorry, there appears to be a problem. Please enter the school\'s details manually:";
|
|
1522
|
+
|
|
1523
|
+
return (
|
|
1524
|
+
<div data-test-id="SchoolsLookUp" className={`SchoolsLookUp ${extraClasses}`}>
|
|
1525
|
+
{!haslookupFetchError && <p className="schoolsLookUp-title">
|
|
1526
|
+
<label htmlFor="schoolsLookUp">{titleCopy}</label>
|
|
1527
|
+
</p>}
|
|
1528
|
+
|
|
1529
|
+
{(!haslookupFetchError && lookup === HIDE_LOOKUP) &&
|
|
1530
|
+
<div>
|
|
1531
|
+
{this.renderEstablishmentDetails(
|
|
1532
|
+
{
|
|
1533
|
+
[establishmentNameIdentifier]: selectedEstablishment.name,
|
|
1534
|
+
[address1Identifier]: selectedEstablishment.address_1,
|
|
1535
|
+
[address2Identifier]: selectedEstablishment.address_2,
|
|
1536
|
+
[address3Identifier]: selectedEstablishment.address_3,
|
|
1537
|
+
[townIdentifier]: selectedEstablishment.town,
|
|
1538
|
+
[postcodeIdentifier]: selectedEstablishment.post_code,
|
|
1539
|
+
},
|
|
1540
|
+
true,
|
|
1541
|
+
)}
|
|
1542
|
+
<button name="edit" className="SchoolsLookUp-link" onClick={this.handleLookup.bind(this, SHOW_MANUAL_LOOKUP)}>
|
|
1543
|
+
Edit
|
|
1544
|
+
</button>
|
|
1545
|
+
</div>}
|
|
1546
|
+
|
|
1547
|
+
{(!haslookupFetchError && lookup !== HIDE_LOOKUP) &&
|
|
1548
|
+
<div className="schoolsLookUp-search">
|
|
1549
|
+
{/* Disable caching as it ignores a lot of results */}
|
|
1550
|
+
<AsyncTypeahead
|
|
1551
|
+
type="text"
|
|
1552
|
+
minLength={min}
|
|
1553
|
+
bsSize="large"
|
|
1554
|
+
emptyLabel=""
|
|
1555
|
+
onSearch={this.handleSearch}
|
|
1556
|
+
onChange={this.handleChange}
|
|
1557
|
+
onInputChange={this.handleInputChange}
|
|
1558
|
+
className="schoolsLookUpForm"
|
|
1559
|
+
labelKey={<span class="fstat-no" title="function not covered" >op</span>tion => <span class="cstat-no" title="statement not covered" >`${option.id !== 0 ? `${option.name} ${option.post_code}` : ''}`}</span>
|
|
1560
|
+
placeholder={placeholder}
|
|
1561
|
+
renderMenu={this.renderMenu}
|
|
1562
|
+
options={options}
|
|
1563
|
+
useCache={false}
|
|
1564
|
+
disabled={disabled}
|
|
1565
|
+
filterBy={<span class="fstat-no" title="function not covered" >()</span> => <span class="cstat-no" title="statement not covered" >true}</span>
|
|
1566
|
+
isLoading={isSearching}
|
|
1567
|
+
/>
|
|
1568
|
+
{isSearching &&
|
|
1569
|
+
<div>
|
|
1570
|
+
<Icon name="spinner" spin />
|
|
1571
|
+
<span>Loading...</span>
|
|
1572
|
+
</div>
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1575
|
+
{!haslookupFetchError &&!isSearching && query.length > min && options.length === 0 ?
|
|
1576
|
+
<p className="font--red">
|
|
1577
|
+
{"Sorry, we can't find this. If the school or postcode you entered is correct then please add the address manually below."}
|
|
1578
|
+
</p>:
|
|
1579
|
+
null
|
|
1580
|
+
}
|
|
1581
|
+
</div>
|
|
1582
|
+
}
|
|
1583
|
+
{!haslookupFetchError && lookup === SHOW_EDCO_LOOKUP ?
|
|
1584
|
+
<button name="enterManually" className="SchoolsLookUp-link" onClick={this.handleLookup.bind(this, SHOW_MANUAL_LOOKUP)}>
|
|
1585
|
+
{orEnterManuallyCopy}
|
|
1586
|
+
</button>:
|
|
1587
|
+
null
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
{haslookupFetchError &&
|
|
1591
|
+
<span class="branch-1 cbranch-no" title="branch not covered" > <div className="validation__message"></span>
|
|
1592
|
+
<span>
|
|
1593
|
+
{lookupFetchErrorMsg}
|
|
1594
|
+
</span>
|
|
1595
|
+
</div>
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1598
|
+
{lookup === SHOW_MANUAL_LOOKUP ?
|
|
1599
|
+
<div className="SchoolsLookUp-maunal">
|
|
1600
|
+
{!haslookupFetchError && <p>{orEnterManuallyCopy}</p>}
|
|
1601
|
+
{this.renderEstablishmentDetails(
|
|
1602
|
+
{
|
|
1603
|
+
[establishmentNameIdentifier]: establishmentNameValue,
|
|
1604
|
+
[address1Identifier]: address1Value,
|
|
1605
|
+
[address2Identifier]: address2Value,
|
|
1606
|
+
[address3Identifier]: address3Value,
|
|
1607
|
+
[townIdentifier]: townValue,
|
|
1608
|
+
[postcodeIdentifier]: postcodeValue,
|
|
1609
|
+
},
|
|
1610
|
+
false,
|
|
1611
|
+
)}
|
|
1612
|
+
</div>:
|
|
1613
|
+
null
|
|
1614
|
+
}
|
|
1615
|
+
</div>
|
|
1616
|
+
);
|
|
1617
|
+
}
|
|
1618
|
+
}
|
|
1619
|
+
|
|
1620
|
+
SchoolsLookUp.defaultProps = {
|
|
1621
|
+
selectedEstablishmentIdentifier: 'selectedEstablishment',
|
|
1622
|
+
selectedEstablishment: {},
|
|
1623
|
+
establishmentIdIdentifier: 'establishmentId',
|
|
1624
|
+
establishmentNameLabelText: 'Establishment name',
|
|
1625
|
+
establishmentNameIdentifier: 'establishmentName',
|
|
1626
|
+
establishmentNameErrorMessage: '',
|
|
1627
|
+
establishmentNameRequired: true,
|
|
1628
|
+
address1LabelText: 'Address line 1',
|
|
1629
|
+
address1Identifier: 'address1',
|
|
1630
|
+
address1ErrorMessage: '',
|
|
1631
|
+
address1Required: true,
|
|
1632
|
+
address2LabelText: 'Address line 2',
|
|
1633
|
+
address2Identifier: 'address2',
|
|
1634
|
+
address2Value: '',
|
|
1635
|
+
address2ErrorMessage: '',
|
|
1636
|
+
address2Required: false,
|
|
1637
|
+
address3LabelText: 'Address line 3',
|
|
1638
|
+
address3Identifier: 'address3',
|
|
1639
|
+
address3Value: '',
|
|
1640
|
+
address3ErrorMessage: '',
|
|
1641
|
+
address3Required: false,
|
|
1642
|
+
townLabelText: 'Town',
|
|
1643
|
+
townIdentifier: 'town',
|
|
1644
|
+
townErrorMessage: '',
|
|
1645
|
+
townRequired: true,
|
|
1646
|
+
postcodeLabelText: 'Postcode',
|
|
1647
|
+
postcodeIdentifier: 'postcode',
|
|
1648
|
+
postcodeErrorMessage: '',
|
|
1649
|
+
postcodeRequired: true,
|
|
1650
|
+
disabled: false,
|
|
1651
|
+
validateField: <span class="fstat-no" title="function not covered" >()</span> => {},
|
|
1652
|
+
placeholder: 'Type to start search',
|
|
1653
|
+
extraClasses: '',
|
|
1654
|
+
titleCopy: 'Enter the name or postcode of your school or nursery',
|
|
1655
|
+
};
|
|
1656
|
+
|
|
1657
|
+
SchoolsLookUp.propTypes = {
|
|
1658
|
+
data: propTypes.string.isRequired,
|
|
1659
|
+
min: propTypes.number.isRequired,
|
|
1660
|
+
onChange: propTypes.func.isRequired,
|
|
1661
|
+
establishmentIdValue: propTypes.oneOfType([
|
|
1662
|
+
propTypes.string,
|
|
1663
|
+
propTypes.number,
|
|
1664
|
+
]).isRequired,
|
|
1665
|
+
establishmentNameValue: propTypes.string.isRequired,
|
|
1666
|
+
address1Value: propTypes.string.isRequired,
|
|
1667
|
+
address2Value: propTypes.string,
|
|
1668
|
+
address3Value: propTypes.string,
|
|
1669
|
+
townValue: propTypes.string.isRequired,
|
|
1670
|
+
postcodeValue: propTypes.string.isRequired,
|
|
1671
|
+
placeholder: propTypes.string.isRequired,
|
|
1672
|
+
selectedEstablishmentIdentifier: propTypes.string,
|
|
1673
|
+
selectedEstablishment: propTypes.object,
|
|
1674
|
+
establishmentIdIdentifier: propTypes.string,
|
|
1675
|
+
establishmentNameLabelText: propTypes.string,
|
|
1676
|
+
establishmentNameRequired: propTypes.bool,
|
|
1677
|
+
establishmentNameIdentifier: propTypes.string,
|
|
1678
|
+
establishmentNameErrorMessage: propTypes.string,
|
|
1679
|
+
address1LabelText: propTypes.string,
|
|
1680
|
+
address1Required: propTypes.bool,
|
|
1681
|
+
address1Identifier: propTypes.string,
|
|
1682
|
+
address1ErrorMessage: propTypes.string,
|
|
1683
|
+
address2LabelText: propTypes.string,
|
|
1684
|
+
address2Required: propTypes.bool,
|
|
1685
|
+
address2Identifier: propTypes.string,
|
|
1686
|
+
address2ErrorMessage: propTypes.string,
|
|
1687
|
+
address3LabelText: propTypes.string,
|
|
1688
|
+
address3Required: propTypes.bool,
|
|
1689
|
+
address3Identifier: propTypes.string,
|
|
1690
|
+
address3ErrorMessage: propTypes.string,
|
|
1691
|
+
townLabelText: propTypes.string,
|
|
1692
|
+
townRequired: propTypes.bool,
|
|
1693
|
+
townIdentifier: propTypes.string,
|
|
1694
|
+
townErrorMessage: propTypes.string,
|
|
1695
|
+
postcodeLabelText: propTypes.string,
|
|
1696
|
+
postcodeRequired: propTypes.bool,
|
|
1697
|
+
postcodeIdentifier: propTypes.string,
|
|
1698
|
+
postcodeErrorMessage: propTypes.string,
|
|
1699
|
+
validateField: propTypes.func,
|
|
1700
|
+
disabled: propTypes.bool,
|
|
1701
|
+
extraClasses: propTypes.string.isRequired,
|
|
1702
|
+
titleCopy: propTypes.string,
|
|
1703
|
+
};
|
|
1704
|
+
|
|
1705
|
+
export default SchoolsLookUp;
|
|
1706
|
+
</pre></td></tr>
|
|
1707
|
+
</table></pre>
|
|
1708
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
1709
|
+
</div><!-- /wrapper -->
|
|
1710
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
1711
|
+
Code coverage
|
|
1712
|
+
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Tue Nov 01 2022 13:40:05 GMT+0000 (Greenwich Mean Time)
|
|
1713
|
+
</div>
|
|
1714
|
+
</div>
|
|
1715
|
+
<script src="../../../prettify.js"></script>
|
|
1716
|
+
<script>
|
|
1717
|
+
window.onload = function () {
|
|
1718
|
+
if (typeof prettyPrint === 'function') {
|
|
1719
|
+
prettyPrint();
|
|
1720
|
+
}
|
|
1721
|
+
};
|
|
1722
|
+
</script>
|
|
1723
|
+
<script src="../../../sorter.js"></script>
|
|
1724
|
+
</body>
|
|
1725
|
+
</html>
|