@ukhomeoffice/cop-react-form-renderer 6.15.11-alpha → 6.15.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/components/FormComponent/FormComponent.js +6 -0
  2. package/dist/components/FormComponent/helpers/addLabel.js +3 -2
  3. package/dist/components/FormPage/FormPage.js +20 -7
  4. package/dist/components/FormPage/FormPage.test.js +53 -0
  5. package/dist/components/FormRenderer/FormRenderer.js +8 -3
  6. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/cop-reassign-task-to-rcc.json +446 -0
  7. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-containerised.json +1 -0
  8. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-dependent-component-nested-block.json +1 -0
  9. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-dependent-component-nested.json +1 -0
  10. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-refdata.json +1 -0
  11. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-target-component-nested.json +1 -0
  12. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens.json +1 -0
  13. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-show-whens-page-hidden.json +1 -0
  14. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-cop-airpax.json +1 -0
  15. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-cop-mandec.json +1 -0
  16. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-collection-component-dependent-on-external-data.json +1 -0
  17. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-collection-component.json +1 -0
  18. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-referring-to-collection.json +1 -0
  19. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-referring-to-hidden-collection.json +1 -0
  20. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-show-when-in-component-and-page.json +1 -0
  21. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-with-nested-questions.json +1 -0
  22. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component.json +1 -0
  23. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-containerised-component.json +1 -0
  24. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-embedded-collection-component.json +1 -0
  25. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-embedded-component.json +1 -0
  26. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-multilevel-containerised-component-leaf-hidden.json +1 -0
  27. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-multilevel-containerised-component.json +1 -0
  28. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-options.json +1 -0
  29. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-collection.json +1 -0
  30. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-component-used-elsewhere.json +1 -0
  31. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-same-component-reused.json +1 -0
  32. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page.json +1 -0
  33. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-nested-answers-hidden-by-option.json +1 -0
  34. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-page-nested-radio-component.json +201 -0
  35. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-page-same-component-reused-one-shown.json +1 -0
  36. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-variance-breach.json +4272 -0
  37. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-airpax-carrier.json +407 -0
  38. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-variance-breach-with-upload-files.json +1264 -0
  39. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-page-nested-radio-component.json +45 -0
  40. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/reassign-to-rcc.json +72 -0
  41. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-page-nested-radio-component-removed.json +45 -0
  42. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +32 -18
  43. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +73 -31
  44. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutesUtils.js +15 -7
  45. package/dist/components/FormRenderer/onCYAAction.js +3 -3
  46. package/dist/components/FormRenderer/onCYAAction.test.js +2 -1
  47. package/dist/components/FormRenderer/onPageAction.js +2 -2
  48. package/dist/components/FormRenderer/onPageAction.test.js +2 -1
  49. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +2 -1
  50. package/package.json +5 -4
@@ -0,0 +1,4272 @@
1
+ {
2
+ "name": "cop-variance-breach-v2",
3
+ "title": "Report a variance or breach",
4
+ "type": "cya",
5
+ "components": [
6
+ {
7
+ "id": "reportVarianceStart",
8
+ "type": "text",
9
+ "label": "Report a variance or breach",
10
+ "readonly": true,
11
+ "disabled": true,
12
+ "source": {
13
+ "field": "businessKey"
14
+ }
15
+ },
16
+ {
17
+ "id": "useThisFormTo",
18
+ "type": "html",
19
+ "tagName": "h2",
20
+ "content": "Use this form to"
21
+ },
22
+ {
23
+ "id": "useThisFormToList",
24
+ "type": "html",
25
+ "tagName": "ul",
26
+ "content": "<li>Request or report a variance of the Operating Mandate</li><li>Report a control breach</li><li>Report a breach of the Operating Mandate</li><li>Report an eGate near miss</li>"
27
+ },
28
+ {
29
+ "id": "beforeYouStart",
30
+ "type": "html",
31
+ "tagName": "h2",
32
+ "content": "Before you start"
33
+ },
34
+ {
35
+ "id": "provideInformation",
36
+ "type": "html",
37
+ "tagName": "p",
38
+ "content": "You will need to provide information about the event:"
39
+ },
40
+ {
41
+ "id": "provideInformationList",
42
+ "type": "html",
43
+ "tagName": "ul",
44
+ "content": "<li>type of event</li><li>location, date and time</li><li>any relevant passenger, crew and transport details</li><li>any relevant agency making the request</li><li>any relevant recovery actions taken by the port</li><li>an overview of the event</li><li>approving officer details</li>"
45
+ },
46
+ {
47
+ "id": "saveAndReturnComment",
48
+ "type": "html",
49
+ "tagName": "p",
50
+ "content": "You can save and return to make changes to the form at any point before you submit."
51
+ },
52
+ {
53
+ "id": "eventTypeRadio",
54
+ "fieldId": "eventTypeRadio",
55
+ "label": "Event type",
56
+ "hint": "You cannot change this answer later. To report a different event type, you will need to start a new form.",
57
+ "type": "radios",
58
+ "showAllValues": "true",
59
+ "required": true,
60
+ "additionalValidation": [
61
+ {
62
+ "function": "conditionallyPermittedChange",
63
+ "message": "You cannot change this answer. To report a different event type, start a new form.",
64
+ "base": "Variance",
65
+ "check": "varianceReason"
66
+ },
67
+ {
68
+ "function": "conditionallyPermittedChange",
69
+ "message": "You cannot change this answer. To report a different event type, start a new form.",
70
+ "base": "Control breach",
71
+ "check": "controlBreachReason"
72
+ },
73
+ {
74
+ "function": "conditionallyPermittedChange",
75
+ "message": "You cannot change this answer. To report a different event type, start a new form.",
76
+ "base": "Breach of the operating mandate",
77
+ "check": "breachOperatingMandateReason"
78
+ }
79
+ ],
80
+ "custom_errors": [
81
+ {
82
+ "type": "required",
83
+ "message": "Select the event type"
84
+ }
85
+ ],
86
+ "data": {
87
+ "options": [
88
+ {
89
+ "value": "Variance",
90
+ "label": "Variance",
91
+ "hint": "A change in process from the operating mandate"
92
+ },
93
+ {
94
+ "value": "Control breach",
95
+ "label": "Control breach",
96
+ "hint": "Someone outside of Border Force has caused a breach of the operating mandate"
97
+ },
98
+ {
99
+ "value": "Breach of the operating mandate",
100
+ "label": "Breach of the operating mandate",
101
+ "hint": "A Border Force officer has breached the operating mandate or an eGate near miss has occurred"
102
+ }
103
+ ]
104
+ },
105
+ "cya_link": {}
106
+ },
107
+ {
108
+ "id": "breachOperatingMandateReason",
109
+ "fieldId": "breachOperatingMandateReason",
110
+ "label": "Reason",
111
+ "type": "radios",
112
+ "showAllValues": "true",
113
+ "required": true,
114
+ "custom_errors": [
115
+ {
116
+ "type": "required",
117
+ "message": "Select the reason for the breach of the Operating Mandate"
118
+ }
119
+ ],
120
+ "data": {
121
+ "options": [
122
+ {
123
+ "value": "Absconder",
124
+ "label": "Absconder",
125
+ "hint": "Awaiting further examination by Border Force"
126
+ },
127
+ {
128
+ "value": "Mishandled variance",
129
+ "label": "Mishandled variance",
130
+ "hint": "Variance not handled correctly by Border Force"
131
+ },
132
+ {
133
+ "value": "Mishandled Border Crossing (BX)",
134
+ "label": "Mishandled Border Crossing (BX)",
135
+ "hint": "BX hit not handled correctly by Border Force"
136
+ },
137
+ {
138
+ "value": "Missed passenger",
139
+ "label": "Missed passenger",
140
+ "hint": "Passenger not correctly screened due to Border Force, or an eGate near miss"
141
+ },
142
+ {
143
+ "value": "Health measures",
144
+ "label": "Health measures",
145
+ "hint": "Border Force did not carry out health measures checks"
146
+ },
147
+ {
148
+ "value": "Missed vehicle",
149
+ "label": "Missed vehicle",
150
+ "hint": "Vehicle not correctly screened by Border Force"
151
+ }
152
+ ]
153
+ },
154
+ "cya_link": {}
155
+ },
156
+ {
157
+ "id": "varianceReason",
158
+ "fieldId": "varianceReason",
159
+ "label": "Reason",
160
+ "type": "radios",
161
+ "showAllValues": "true",
162
+ "required": true,
163
+ "custom_errors": [
164
+ {
165
+ "type": "required",
166
+ "message": "Select the reason for the variance"
167
+ }
168
+ ],
169
+ "data": {
170
+ "options": [
171
+ {
172
+ "value": "Blue lights emergency",
173
+ "label": "Blue lights emergency",
174
+ "hint": "Passenger is departing under blue lights, port suspends all checks"
175
+ },
176
+ {
177
+ "value": "Health and safety",
178
+ "label": "Health and safety",
179
+ "hint": "Suspension of checks where risk to public or staff"
180
+ },
181
+ {
182
+ "value": "NCC approved medical",
183
+ "label": "NCC approved medical",
184
+ "hint": "Authorisation is granted on arrival by the NCC"
185
+ },
186
+ {
187
+ "value": "NCC pre-approved medical",
188
+ "label": "NCC pre-approved medical",
189
+ "hint": "Passenger has yet to depart country of origin"
190
+ },
191
+ {
192
+ "value": "Police removed passenger from aircraft",
193
+ "label": "Police removed passenger from aircraft",
194
+ "hint": "Passenger removed directly on arrival and not presented to the PCP"
195
+ },
196
+ {
197
+ "value": "Public safety and security",
198
+ "label": "Public safety and security",
199
+ "hint": "Members of the public may be at risk, or support for another law enforcement agency"
200
+ },
201
+ {
202
+ "value": "Sensitive or compassionate",
203
+ "label": "Sensitive or compassionate",
204
+ "hint": "Genuine requirement to facilitate clearance away form the PCP that would risk Border Force's reputation"
205
+ },
206
+ {
207
+ "value": "Technology",
208
+ "label": "Technology",
209
+ "hint": "With or without Border Force known contingency "
210
+ },
211
+ {
212
+ "value": "VIP",
213
+ "label": "VIP",
214
+ "hint": "Foreign or visiting delegation"
215
+ }
216
+ ]
217
+ },
218
+ "cya_link": {}
219
+ },
220
+ {
221
+ "id": "controlBreachReason",
222
+ "fieldId": "controlBreachReason",
223
+ "label": "Reason",
224
+ "type": "radios",
225
+ "showAllValues": "true",
226
+ "required": true,
227
+ "custom_errors": [
228
+ {
229
+ "type": "required",
230
+ "message": "Select the reason for the control breach"
231
+ }
232
+ ],
233
+ "data": {
234
+ "options": [
235
+ {
236
+ "value": "Absconder",
237
+ "label": "Absconder",
238
+ "hint": "Has not been seen by a Border Force officer"
239
+ },
240
+ {
241
+ "value": "Ambulance",
242
+ "label": "Ambulance",
243
+ "hint": "Passenger removed from aircraft via ambulance with no notice to Border Force"
244
+ },
245
+ {
246
+ "value": "Airline crew",
247
+ "label": "Airline crew",
248
+ "hint": "Crew member does not have identity documents"
249
+ },
250
+ {
251
+ "value": "General aviation",
252
+ "label": "General aviation",
253
+ "hint": "Operating mandate requirements have been fulfilled, however other controls have been evaded or missed"
254
+ },
255
+ {
256
+ "value": "General maritime",
257
+ "label": "General maritime",
258
+ "hint": "Operating mandate requirements have been fulfilled, however other controls have been evaded or missed"
259
+ },
260
+ {
261
+ "value": "Health measures",
262
+ "label": "Health measures",
263
+ "hint": "Passengers did not comply with the current health measures procedure"
264
+ },
265
+ {
266
+ "value": "Misdirected passenger",
267
+ "label": "Misdirected passenger",
268
+ "hint": "Passenger misdirected by non-Border Force staff"
269
+ },
270
+ {
271
+ "value": "Police removed passenger from aircraft",
272
+ "label": "Police removed passenger from aircraft",
273
+ "hint": "Police have removed passenger from custody and not returned to Border Force"
274
+ }
275
+ ]
276
+ },
277
+ "cya_link": {}
278
+ },
279
+ {
280
+ "id": "regionalCommandCentre",
281
+ "fieldId": "regionalCommandCentre",
282
+ "label": "Regional Command Centre",
283
+ "hint": "Type to search",
284
+ "cya_label": "RCC",
285
+ "type": "autocomplete",
286
+ "showAllValues": true,
287
+ "required": true,
288
+ "custom_errors": [
289
+ {
290
+ "type": "required",
291
+ "message": "Select a Regional Command Centre"
292
+ }
293
+ ],
294
+ "item": {
295
+ "label": "name",
296
+ "value": "id"
297
+ },
298
+ "data": {
299
+ "url": "${environmentContext.referenceDataUrl}/v2/entities/branch?mode=dataOnly&filter=directorateid.eq=2&filter=code=in.(BFSEEU,BFHROW,BFSOUTH,BFNORTH,BFCENT)"
300
+ }
301
+ },
302
+ {
303
+ "id": "regionalCommandCentreDisplay",
304
+ "fieldId": "regionalCommandCentre",
305
+ "label": "Regional Command Centre",
306
+ "cya_label": "RCC",
307
+ "type": "autocomplete",
308
+ "showAllValues": true,
309
+ "required": true,
310
+ "disabled": true,
311
+ "item": {
312
+ "value": "id",
313
+ "label": "name"
314
+ },
315
+ "data": {
316
+ "url": "${environmentContext.referenceDataUrl}/v2/entities/branch?mode=dataOnly&filter=directorateid.eq=2&filter=code=in.(BFSEEU,BFHROW,BFSOUTH,BFNORTH,BFCENT)"
317
+ }
318
+ },
319
+ {
320
+ "id": "port",
321
+ "fieldId": "port",
322
+ "type": "autocomplete",
323
+ "label": "Port",
324
+ "hint": "Type to search",
325
+ "required": true,
326
+ "showAllValues": true,
327
+ "item": {
328
+ "value": "id",
329
+ "label": "name"
330
+ },
331
+ "data": {
332
+ "url": "${environmentContext.referenceDataUrl}/v2/entities/port?filter=countryid=eq.234&filter=portsizeid=in.(1,2)"
333
+ },
334
+ "custom_errors": [
335
+ {
336
+ "type": "required",
337
+ "message": "Select a port"
338
+ }
339
+ ]
340
+ },
341
+ {
342
+ "id": "portDisplay",
343
+ "fieldId": "port",
344
+ "label": "Port",
345
+ "cya_label": "Port",
346
+ "type": "autocomplete",
347
+ "required": true,
348
+ "disabled": true,
349
+ "item": {
350
+ "value": "id",
351
+ "label": "name"
352
+ }
353
+ },
354
+ {
355
+ "id": "dateOfEvent",
356
+ "fieldId": "dateOfEvent",
357
+ "type": "date",
358
+ "label": "Date of event",
359
+ "hint": "For example, 20 2 2023",
360
+ "required": true,
361
+ "custom_errors": [
362
+ {
363
+ "type": "required",
364
+ "message": "Enter the date of the event"
365
+ }
366
+ ]
367
+ },
368
+ {
369
+ "id": "timeOfEvent",
370
+ "fieldId": "timeOfEvent",
371
+ "type": "time",
372
+ "label": "Time of event",
373
+ "hint": "Use 24-hour. For example, 19:45. This can be in the past or the future.",
374
+ "required": true,
375
+ "custom_errors": [
376
+ {
377
+ "type": "required",
378
+ "message": "Enter the time of the event"
379
+ }
380
+ ],
381
+ "additionalValidation": [
382
+ {
383
+ "function": "mustBeLongerThan",
384
+ "value": 4,
385
+ "message": "Enter time in 24-hour clock format"
386
+ }
387
+ ]
388
+ },
389
+ {
390
+ "id": "eventOverview",
391
+ "hint": "Explain the situation and the next steps that the port will take",
392
+ "type": "textarea",
393
+ "cya_label": "Event Overview Notes",
394
+ "label": "",
395
+ "rows": 15,
396
+ "fieldId": "eventOverview",
397
+ "required": true,
398
+ "custom_errors": [
399
+ {
400
+ "type": "required",
401
+ "message": "Enter an overview of the event"
402
+ }
403
+ ],
404
+ "cya_link": {}
405
+ },
406
+ {
407
+ "id": "nccNotes",
408
+ "fieldId": "nccNotes",
409
+ "type": "textarea",
410
+ "label": "NCC notes",
411
+ "hint": "This can only be seen by the NCC",
412
+ "required": false,
413
+ "show_when": [
414
+ {
415
+ "field": "keycloakContext.groups",
416
+ "op": "includes",
417
+ "value": "/BFNCC"
418
+ },
419
+ {
420
+ "field": "keycloakContext.groups",
421
+ "op": "includes",
422
+ "value": "/bf-ncc-officer"
423
+ }
424
+ ],
425
+ "custom_errors": [
426
+ {
427
+ "type": "required",
428
+ "message": "Enter notes for NCC"
429
+ }
430
+ ],
431
+ "cya_link": {}
432
+ },
433
+ {
434
+ "id": "eventOverviewUploadFilesTitle",
435
+ "type": "html",
436
+ "content": "Upload files",
437
+ "tagName": "h2"
438
+ },
439
+ {
440
+ "id": "eventOverviewUploadFileLabel",
441
+ "type": "html",
442
+ "content": "If you have any files relevant to the event, you can upload them.",
443
+ "tagName": "p"
444
+ },
445
+ {
446
+ "id": "eventPassengers",
447
+ "fieldId": "eventPassengers",
448
+ "cya_label": "Do you know how many passengers?",
449
+ "label": "If you know, tell us how many. If you do not know give an estimate, including any passengers missed by eGates and presented to the PCP",
450
+ "type": "radios",
451
+ "showAllValues": "true",
452
+ "required": true,
453
+ "data": {
454
+ "options": [
455
+ {
456
+ "value": "Yes",
457
+ "label": "Yes",
458
+ "nested": [
459
+ {
460
+ "id": "numberOfPassengers",
461
+ "fieldId": "numberOfPassengers",
462
+ "type": "text",
463
+ "label": "Number of passengers involved",
464
+ "pattern": "^[1-9]\\d*$",
465
+ "required": true,
466
+ "additionalValidation": [
467
+ {
468
+ "function": "mustBeNumbersOnly",
469
+ "allowCommas": true,
470
+ "message": "Enter a number between 1 and 1000"
471
+ },
472
+ {
473
+ "function": "mustHaveLessThanDecimalPlaces",
474
+ "maxDecimals": "1",
475
+ "message": "Number of passengers must be a whole number"
476
+ },
477
+ {
478
+ "function": "mustBeGreaterThan",
479
+ "value": "0",
480
+ "message": "Enter a number between 1 and 1000"
481
+ },
482
+ {
483
+ "function": "mustBeLessThan",
484
+ "value": "1001",
485
+ "message": "Enter a number between 1 and 1000"
486
+ }
487
+ ],
488
+ "custom_errors": [
489
+ {
490
+ "type": "required",
491
+ "message": "Enter the number of passengers involved"
492
+ },
493
+ {
494
+ "type": "pattern",
495
+ "message": "Enter a number between 1 and 1000"
496
+ }
497
+ ]
498
+ }
499
+ ]
500
+ },
501
+ {
502
+ "value": "No",
503
+ "label": "No",
504
+ "nested": [
505
+ {
506
+ "id": "estimateNumberOfPassengers",
507
+ "fieldId": "estimateNumberOfPassengers",
508
+ "type": "text",
509
+ "label": "Give an estimate of how many passengers are involved",
510
+ "pattern": "^[1-9]\\d*$",
511
+ "required": true,
512
+ "additionalValidation": [
513
+ {
514
+ "function": "mustBeNumbersOnly",
515
+ "allowCommas": true,
516
+ "message": "Enter a number between 1 and 1000"
517
+ },
518
+ {
519
+ "function": "mustHaveLessThanDecimalPlaces",
520
+ "maxDecimals": "1",
521
+ "message": "Number of passengers must be a whole number"
522
+ },
523
+ {
524
+ "function": "mustBeGreaterThan",
525
+ "value": "0",
526
+ "message": "Enter a number between 1 and 1000"
527
+ },
528
+ {
529
+ "function": "mustBeLessThan",
530
+ "value": "1001",
531
+ "message": "Enter a number between 1 and 1000"
532
+ }
533
+ ],
534
+ "custom_errors": [
535
+ {
536
+ "type": "required",
537
+ "message": "Enter an estimate of how many passengers are involved"
538
+ },
539
+ {
540
+ "type": "pattern",
541
+ "message": "Enter a number between 1 and 1000"
542
+ }
543
+ ]
544
+ }
545
+ ]
546
+ }
547
+ ]
548
+ },
549
+ "custom_errors": [
550
+ {
551
+ "type": "required",
552
+ "message": "Select yes if you know how many passengers are involved in the event"
553
+ }
554
+ ],
555
+ "cya_link": {}
556
+ },
557
+ {
558
+ "id": "enterPassengerDetails",
559
+ "type": "html",
560
+ "tagName": "p",
561
+ "content": "Enter every passenger's details. You can add more passengers later."
562
+ },
563
+ {
564
+ "id": "passengerGivenName",
565
+ "fieldId": "passengerGivenName",
566
+ "type": "text",
567
+ "label": "Given names",
568
+ "hint": "Their first and middle names",
569
+ "required": true,
570
+ "custom_errors": [
571
+ {
572
+ "type": "required",
573
+ "message": "Enter the passenger's given names"
574
+ }
575
+ ]
576
+ },
577
+ {
578
+ "id": "passengerSurnameName",
579
+ "fieldId": "passengerSurnameName",
580
+ "type": "text",
581
+ "label": "Surname",
582
+ "hint": "If they have more than one surname, enter tham all",
583
+ "required": true,
584
+ "custom_errors": [
585
+ {
586
+ "type": "required",
587
+ "message": "Enter the passenger's surname"
588
+ }
589
+ ]
590
+ },
591
+ {
592
+ "id": "passengerDob",
593
+ "fieldId": "passengerDob",
594
+ "type": "date",
595
+ "label": "Date of birth",
596
+ "hint": "For example, 27 3 2007",
597
+ "required": true,
598
+ "custom_errors": [
599
+ {
600
+ "type": "required",
601
+ "message": "Enter the passenger's date of birth"
602
+ }
603
+ ],
604
+ "additionalValidation": [
605
+ {
606
+ "function": "mustBeInThePast",
607
+ "todayAllowed": false,
608
+ "message": "Passenger date of birth must be in the past"
609
+ }
610
+ ]
611
+ },
612
+ {
613
+ "id": "passengerNationality",
614
+ "fieldId": "passengerNationality",
615
+ "type": "autocomplete",
616
+ "label": "Nationality",
617
+ "hint": "Type to search",
618
+ "required": true,
619
+ "showAllValues": true,
620
+ "item": {
621
+ "value": "id",
622
+ "label": "nationality"
623
+ },
624
+ "data": {
625
+ "url": "${environmentContext.referenceDataUrl}/v2/entities/nationality?sort=nationality.asc"
626
+ },
627
+ "custom_errors": [
628
+ {
629
+ "type": "required",
630
+ "message": "Enter the passenger's nationality"
631
+ }
632
+ ]
633
+ },
634
+ {
635
+ "id": "passengerTravelDocumentNumber",
636
+ "fieldId": "passengerTravelDocumentNumber",
637
+ "type": "text",
638
+ "label": "Travel document number",
639
+ "hint": "For example, the Passport or ID Card number, as it appears on the travel document",
640
+ "required": true,
641
+ "custom_errors": [
642
+ {
643
+ "type": "required",
644
+ "message": "Enter the passenger's travel document number"
645
+ }
646
+ ]
647
+ },
648
+ {
649
+ "id": "leadPassengerDetails",
650
+ "type": "html",
651
+ "tagName": "p",
652
+ "content": "You only need to enter the lead passenger's details."
653
+ },
654
+ {
655
+ "id": "leadPassengerGivenName",
656
+ "fieldId": "leadPassengerGivenName",
657
+ "type": "text",
658
+ "label": "Given names",
659
+ "hint": "Their first and middle names",
660
+ "required": true,
661
+ "custom_errors": [
662
+ {
663
+ "type": "required",
664
+ "message": "Enter the lead passenger's given names"
665
+ }
666
+ ]
667
+ },
668
+ {
669
+ "id": "leadPassengerSurnameName",
670
+ "fieldId": "leadPassengerSurnameName",
671
+ "type": "text",
672
+ "label": "Surname",
673
+ "hint": "If they have more than one surname, enter tham all",
674
+ "required": true,
675
+ "custom_errors": [
676
+ {
677
+ "type": "required",
678
+ "message": "Enter the lead passenger's surname"
679
+ }
680
+ ]
681
+ },
682
+ {
683
+ "id": "leadPassengerDob",
684
+ "fieldId": "leadPassengerDob",
685
+ "type": "date",
686
+ "label": "Date of birth",
687
+ "hint": "For example, 27 3 2007",
688
+ "required": true,
689
+ "custom_errors": [
690
+ {
691
+ "type": "required",
692
+ "message": "Enter the lead passenger's date of birth"
693
+ }
694
+ ],
695
+ "additionalValidation": [
696
+ {
697
+ "function": "mustBeInThePast",
698
+ "todayAllowed": false,
699
+ "message": "Lead passenger's date of birth must be in the past"
700
+ }
701
+ ]
702
+ },
703
+ {
704
+ "id": "leadPassengerNationality",
705
+ "fieldId": "leadPassengerNationality",
706
+ "type": "autocomplete",
707
+ "label": "Nationality",
708
+ "hint": "Type to search",
709
+ "required": true,
710
+ "showAllValues": true,
711
+ "item": {
712
+ "value": "id",
713
+ "label": "nationality"
714
+ },
715
+ "data": {
716
+ "url": "${environmentContext.referenceDataUrl}/v2/entities/nationality?sort=nationality.asc"
717
+ },
718
+ "custom_errors": [
719
+ {
720
+ "type": "required",
721
+ "message": "Enter the lead passengers nationality"
722
+ }
723
+ ]
724
+ },
725
+ {
726
+ "id": "leadPassengerTravelDocumentNumber",
727
+ "fieldId": "leadPassengerTravelDocumentNumber",
728
+ "type": "text",
729
+ "label": "Travel document number",
730
+ "hint": "For example, the Passport or ID Card number, as it appears on the travel document",
731
+ "required": true,
732
+ "custom_errors": [
733
+ {
734
+ "type": "required",
735
+ "message": "Enter the lead passenger's travel document number"
736
+ }
737
+ ]
738
+ },
739
+ {
740
+ "id": "addAnotherPassenger",
741
+ "fieldId": "addAnotherPassenger",
742
+ "label": " ",
743
+ "cya_label": "Do you want to add another passenger?",
744
+ "type": "radios",
745
+ "required": true,
746
+ "showAllValues": true,
747
+ "show_on_cya": false,
748
+ "custom_errors": [
749
+ {
750
+ "type": "required",
751
+ "message": "Select yes if you need to add more passengers"
752
+ }
753
+ ],
754
+ "data": {
755
+ "options": [
756
+ {
757
+ "value": "Yes",
758
+ "label": "Yes"
759
+ },
760
+ {
761
+ "value": "No",
762
+ "label": "No"
763
+ }
764
+ ]
765
+ }
766
+ },
767
+ {
768
+ "id": "passengerDetailsRadio",
769
+ "fieldId": "passengerDetailsRadio",
770
+ "label": "",
771
+ "cya_label": "Do you have passenger details?",
772
+ "type": "radios",
773
+ "showAllValues": "true",
774
+ "required": true,
775
+ "data": {
776
+ "options": [
777
+ {
778
+ "value": "Yes",
779
+ "label": "Yes",
780
+ "custom_errors": [
781
+ {
782
+ "type": "required",
783
+ "message": "Select yes if you have any passenger details"
784
+ }
785
+ ]
786
+ },
787
+ {
788
+ "value": "No",
789
+ "label": "No (eGate near misses)",
790
+ "nested": [
791
+ {
792
+ "id": "reasonForNo",
793
+ "fieldId": "reasonForNo",
794
+ "type": "textarea",
795
+ "label": "Give a reason why you do not have any passenger details, N/A if eGate related",
796
+ "showCharacterCount": true,
797
+ "maxLength": 500,
798
+ "required": true,
799
+ "custom_errors": [
800
+ {
801
+ "type": "required",
802
+ "message": "Enter a reason for why you do not have passenger details"
803
+ }
804
+ ]
805
+ }
806
+ ]
807
+ }
808
+ ]
809
+ },
810
+ "custom_errors": [
811
+ {
812
+ "type": "required",
813
+ "message": "Select yes if you have any passenger details"
814
+ }
815
+ ]
816
+ },
817
+ {
818
+ "id": "passengerCorrectDocuments",
819
+ "fieldId": "passengerCorrectDocuments",
820
+ "label": "Do all recorded passengers have the correct documents?",
821
+ "cya_label": "Do all passengers have the correct documents?",
822
+ "hint": "This includes all relevant documents for entry, including a passport and visa if required",
823
+ "type": "radios",
824
+ "showAllValues": "true",
825
+ "required": true,
826
+ "data": {
827
+ "options": [
828
+ {
829
+ "value": "Yes",
830
+ "label": "Yes"
831
+ },
832
+ {
833
+ "value": "No",
834
+ "label": "No",
835
+ "nested": [
836
+ {
837
+ "id": "noDetails",
838
+ "fieldId": "noDetails",
839
+ "type": "textarea",
840
+ "label": "Give details",
841
+ "showCharacterCount": true,
842
+ "maxLength": 500,
843
+ "required": true,
844
+ "custom_errors": [
845
+ {
846
+ "type": "required",
847
+ "message": "Enter details for why all recorded passengers do not have the correct documents"
848
+ }
849
+ ]
850
+ }
851
+ ]
852
+ },
853
+ {
854
+ "value": "unableToConfirm",
855
+ "label": "Unable to confirm",
856
+ "nested": [
857
+ {
858
+ "id": "unableDetails",
859
+ "fieldId": "unableDetails",
860
+ "type": "textarea",
861
+ "label": "Give details",
862
+ "showCharacterCount": true,
863
+ "maxLength": 500,
864
+ "required": true,
865
+ "custom_errors": [
866
+ {
867
+ "type": "required",
868
+ "message": "Enter details for why all recorded passengers do not have the correct documents"
869
+ }
870
+ ]
871
+ }
872
+ ]
873
+ }
874
+ ]
875
+ },
876
+ "custom_errors": [
877
+ {
878
+ "type": "required",
879
+ "message": "Select yes if all recorded passengers have the correct documents"
880
+ }
881
+ ]
882
+ },
883
+ {
884
+ "id": "technologyOutage",
885
+ "fieldId": "technologyOutage",
886
+ "label": "Details of technology outage",
887
+ "type": "textarea",
888
+ "hint": "Include when engineers are expected on site, estimated resolution time, and any other relevant details to help the approver come to a decision",
889
+ "required": true,
890
+ "custom_errors": [
891
+ {
892
+ "type": "required",
893
+ "message": "Enter a description of the technology outage"
894
+ }
895
+ ],
896
+ "cya_link": {}
897
+ },
898
+ {
899
+ "id": "uploadFilesTitle",
900
+ "type": "html",
901
+ "tagName": "h2",
902
+ "content": "Upload files"
903
+ },
904
+ {
905
+ "id": "uploadFilesLabel",
906
+ "type": "html",
907
+ "tagName": "p",
908
+ "content": "If you have any files relevant to the event, you can upload them."
909
+ },
910
+ {
911
+ "id": "whoWasResponsiblePassenger",
912
+ "fieldId": "whoWasResponsiblePassenger",
913
+ "label": "Who was responsible for the misdirected passenger?",
914
+ "type": "autocomplete",
915
+ "required": true,
916
+ "showAllValues": true,
917
+ "item": {
918
+ "value": "id",
919
+ "label": "label"
920
+ },
921
+ "data": {
922
+ "options": [
923
+ {
924
+ "value": "airline",
925
+ "label": "Airline"
926
+ },
927
+ {
928
+ "value": "borderForce",
929
+ "label": "Border Force"
930
+ },
931
+ {
932
+ "value": "crew",
933
+ "label": "Crew"
934
+ },
935
+ {
936
+ "value": "eGateFailure",
937
+ "label": "e-Gate failure"
938
+ },
939
+ {
940
+ "value": "handlingAgent",
941
+ "label": "Handling agent"
942
+ },
943
+ {
944
+ "value": "memberOfPortStaff",
945
+ "label": "Member of port staff"
946
+ },
947
+ {
948
+ "value": "passeneger",
949
+ "label": "Passenger"
950
+ },
951
+ {
952
+ "value": "policeRemovedToCustody",
953
+ "label": "Police removed to custody"
954
+ },
955
+ {
956
+ "value": "presenter",
957
+ "label": "Presenter"
958
+ },
959
+ {
960
+ "value": "unknownAtThisStage",
961
+ "label": "Unknown at this stage"
962
+ }
963
+ ]
964
+ },
965
+ "custom_errors": [
966
+ {
967
+ "type": "required",
968
+ "message": "Select who was responsible for the misdirected passenger"
969
+ }
970
+ ]
971
+ },
972
+ {
973
+ "id": "TypeOfMisdirection",
974
+ "fieldId": "TypeOfMisdirection",
975
+ "label": "Type of misdirection",
976
+ "type": "autocomplete",
977
+ "required": true,
978
+ "showAllValues": true,
979
+ "item": {
980
+ "value": "id",
981
+ "label": "label"
982
+ },
983
+ "data": {
984
+ "options": [
985
+ {
986
+ "value": "CTA through domestic channel",
987
+ "label": "CTA through domestic channel"
988
+ },
989
+ {
990
+ "value": "CTA to domestic",
991
+ "label": "CTA to domestic"
992
+ },
993
+ {
994
+ "value": "CTA to international",
995
+ "label": "CTA to international"
996
+ },
997
+ {
998
+ "value": "Domestic through international channel",
999
+ "label": "Domestic through international channel"
1000
+ },
1001
+ {
1002
+ "value": "Domestic to CTA",
1003
+ "label": "Domestic to CTA"
1004
+ },
1005
+ {
1006
+ "value": "International through CTA channel",
1007
+ "label": "International through CTA channel"
1008
+ },
1009
+ {
1010
+ "value": "International through domestic",
1011
+ "label": "International through domestic"
1012
+ },
1013
+ {
1014
+ "value": "International through domestic/CTA channel",
1015
+ "label": "International through domestic/CTA channel"
1016
+ },
1017
+ {
1018
+ "value": "International to apron area",
1019
+ "label": "International to apron area"
1020
+ },
1021
+ {
1022
+ "value": "International to arrival/baggage hall",
1023
+ "label": "International to arrival/baggage hall"
1024
+ },
1025
+ {
1026
+ "value": "International to departures",
1027
+ "label": "International to departures"
1028
+ },
1029
+ {
1030
+ "value": "Mixing of arrival passengers",
1031
+ "label": "Mixing of arrival passengers"
1032
+ },
1033
+ {
1034
+ "value": "Staff/crew channel",
1035
+ "label": "Staff/crew channel"
1036
+ },
1037
+ {
1038
+ "value": "Transfer misdirection",
1039
+ "label": "Transfer misdirection"
1040
+ },
1041
+ {
1042
+ "value": "Unknown at this stage",
1043
+ "label": "Unknown at this stage"
1044
+ }
1045
+ ]
1046
+ },
1047
+ "custom_errors": [
1048
+ {
1049
+ "type": "required",
1050
+ "message": "Select the type of misdirection"
1051
+ }
1052
+ ]
1053
+ },
1054
+ {
1055
+ "id": "carrierNumber",
1056
+ "fieldId": "carrierNumber",
1057
+ "type": "text",
1058
+ "label": "Carrier number",
1059
+ "hint": "For example, AA 56789",
1060
+ "required": true,
1061
+ "additionalValidation": [
1062
+ {
1063
+ "function": "mustBeLongerThan",
1064
+ "value": 2,
1065
+ "message": "Carrier number must be between 3 and 7 characters"
1066
+ },
1067
+ {
1068
+ "function": "mustBeShorterThan",
1069
+ "value": 9,
1070
+ "message": "Carrier number must be between 3 and 7 characters"
1071
+ }
1072
+ ],
1073
+ "custom_errors": [
1074
+ {
1075
+ "type": "required",
1076
+ "message": "Enter the carrier number"
1077
+ }
1078
+ ]
1079
+ },
1080
+ {
1081
+ "id": "nameOfCarrier",
1082
+ "fieldId": "nameOfCarrier",
1083
+ "type": "autocomplete",
1084
+ "label": "Name of carrier",
1085
+ "hint": "If not known or not in list, select 'Unknown'",
1086
+ "required": true,
1087
+ "showAllValues": true,
1088
+ "item": {
1089
+ "value": "id",
1090
+ "label": "name"
1091
+ },
1092
+ "data": {
1093
+ "url": "${environmentContext.referenceDataUrl}/v2/entities/carrierlist?sort=name.asc"
1094
+ },
1095
+ "custom_errors": [
1096
+ {
1097
+ "type": "required",
1098
+ "message": "Enter the name of the carrier"
1099
+ }
1100
+ ]
1101
+ },
1102
+ {
1103
+ "id": "countryOfOrigin",
1104
+ "fieldId": "countryOfOrigin",
1105
+ "type": "autocomplete",
1106
+ "label": "Country of origin",
1107
+ "hint": "Select the country they started their journey in",
1108
+ "required": true,
1109
+ "showAllValues": true,
1110
+ "item": {
1111
+ "value": "id",
1112
+ "label": "label"
1113
+ },
1114
+ "data": {
1115
+ "url": "${environmentContext.referenceDataUrl}/v2/entities/country?sort=name.asc"
1116
+ },
1117
+ "custom_errors": [
1118
+ {
1119
+ "type": "required",
1120
+ "message": "Enter the first country of embarkation for this journey"
1121
+ }
1122
+ ]
1123
+ },
1124
+ {
1125
+ "id": "crewAirline",
1126
+ "fieldId": "crewAirline",
1127
+ "type": "autocomplete",
1128
+ "label": "Name of airline",
1129
+ "required": true,
1130
+ "showAllValues": true,
1131
+ "item": {
1132
+ "value": "id",
1133
+ "label": "name"
1134
+ },
1135
+ "data": {
1136
+ "url": "${environmentContext.referenceDataUrl}/v2/entities/carrierlist?sort=name.asc"
1137
+ },
1138
+ "custom_errors": [
1139
+ {
1140
+ "type": "required",
1141
+ "message": "Enter the name of the airline"
1142
+ }
1143
+ ]
1144
+ },
1145
+ {
1146
+ "id": "crewCollection",
1147
+ "fieldId": "crewCollection",
1148
+ "label": "",
1149
+ "required": true,
1150
+ "type": "collection",
1151
+ "labels": {
1152
+ "item": "Crew member ${index}",
1153
+ "add": "Add another",
1154
+ "remove": "Remove crew member ${index}"
1155
+ },
1156
+ "countOffset": 0,
1157
+ "minimumEntries": 1,
1158
+ "focusOnAdd": true,
1159
+ "removeLocation": "end",
1160
+ "subsequentItemStyle": {
1161
+ "background": "#E2E2E2",
1162
+ "padding": "10px"
1163
+ },
1164
+ "item": [
1165
+ {
1166
+ "id": "crewGivenNameCollection",
1167
+ "fieldId": "crewGivenNameCollection",
1168
+ "label": "Given names",
1169
+ "pattern": "^[A-Za-z]+(?:[ -][A-Za-z]+)*$",
1170
+ "hint": "Their first and middle names",
1171
+ "type": "text",
1172
+ "required": true,
1173
+ "custom_errors": [
1174
+ {
1175
+ "type": "required",
1176
+ "message": "Enter the crew member's given names"
1177
+ },
1178
+ {
1179
+ "type": "pattern",
1180
+ "message": "Crew members given name cannot contain numbers of special characters"
1181
+ }
1182
+ ]
1183
+ },
1184
+ {
1185
+ "id": "crewSurnameCollection",
1186
+ "fieldId": "crewSurnameCollection",
1187
+ "label": "Surname",
1188
+ "pattern": "^[A-Za-z]+(?:[ -][A-Za-z]+)*$",
1189
+ "hint": "If they have more than one surname, enter them all",
1190
+ "type": "text",
1191
+ "required": true,
1192
+ "custom_errors": [
1193
+ {
1194
+ "type": "required",
1195
+ "message": "Enter the crew member's surname"
1196
+ },
1197
+ {
1198
+ "type": "pattern",
1199
+ "message": "Crew members given name cannot contain numbers of special characters"
1200
+ }
1201
+ ]
1202
+ }
1203
+ ]
1204
+ },
1205
+ {
1206
+ "id": "whoIsMakingThisRequest",
1207
+ "fieldId": "whoIsMakingThisRequest",
1208
+ "label": "",
1209
+ "cya_label": "Requesting agency",
1210
+ "type": "radios",
1211
+ "showAllValues": true,
1212
+ "required": true,
1213
+ "custom_errors": [
1214
+ {
1215
+ "type": "required",
1216
+ "message": "Select who is making this request"
1217
+ }
1218
+ ],
1219
+ "data": {
1220
+ "options": [
1221
+ {
1222
+ "value": "Police",
1223
+ "label": "Police"
1224
+ },
1225
+ {
1226
+ "value": "National Crime Agency",
1227
+ "label": "National Crime Agency"
1228
+ },
1229
+ {
1230
+ "value": "United Kingdom Visa and Immigration",
1231
+ "label": "United Kingdom Visa and Immigration"
1232
+ },
1233
+ {
1234
+ "value": "Foreign Commonwealth and Development Office",
1235
+ "label": "Foreign Commonwealth and Development Office"
1236
+ },
1237
+ {
1238
+ "value": "Home Office International Operations",
1239
+ "label": "Home Office International Operations"
1240
+ },
1241
+ {
1242
+ "value": "Immigration Intelligence Centre",
1243
+ "label": "Immigration Intelligence Centre"
1244
+ },
1245
+ {
1246
+ "value": "other",
1247
+ "label": "Other",
1248
+ "nested": [
1249
+ {
1250
+ "id": "otherDetails",
1251
+ "fieldId": "otherDetails",
1252
+ "type": "text",
1253
+ "label": "Which agency made this request?",
1254
+ "required": true,
1255
+ "custom_errors": [
1256
+ {
1257
+ "type": "required",
1258
+ "message": "Enter which agency made this request"
1259
+ }
1260
+ ]
1261
+ }
1262
+ ]
1263
+ }
1264
+ ]
1265
+ },
1266
+ "cya_link": {}
1267
+ },
1268
+ {
1269
+ "id": "breachRecovery",
1270
+ "fieldId": "breachRecovery",
1271
+ "cya_label": "Was the control breach fully recovered?",
1272
+ "label": "",
1273
+ "type": "radios",
1274
+ "hint": "A control breach is fully recovered if the passenger is within the Border Force controlled area of the port and returned to the primary control point (PCP), or in police custody.",
1275
+ "showAllValues": "true",
1276
+ "required": true,
1277
+ "data": {
1278
+ "options": [
1279
+ {
1280
+ "value": "Yes",
1281
+ "label": "Yes"
1282
+ },
1283
+ {
1284
+ "value": "No",
1285
+ "label": "No",
1286
+ "nested": [
1287
+ {
1288
+ "id": "recoveryPassengers",
1289
+ "fieldId": "recoveryPassengers",
1290
+ "type": "text",
1291
+ "label": "Number of recovered passengers",
1292
+ "required": true,
1293
+ "additionalValidation": [
1294
+ {
1295
+ "function": "mustBeNumbersOnly",
1296
+ "allowCommas": true,
1297
+ "message": "Enter a number between 1 and 1000"
1298
+ },
1299
+ {
1300
+ "function": "mustHaveLessThanDecimalPlaces",
1301
+ "maxDecimals": "1",
1302
+ "message": "Number of passengers must be a whole number"
1303
+ },
1304
+ {
1305
+ "function": "mustBeLessThan",
1306
+ "value": "1001",
1307
+ "message": "Enter a number between 1 and 1000"
1308
+ }
1309
+ ],
1310
+ "custom_errors": [
1311
+ {
1312
+ "type": "required",
1313
+ "message": "Number of recovered passengers cannot be blank"
1314
+ }
1315
+ ]
1316
+ }
1317
+ ]
1318
+ },
1319
+ {
1320
+ "value": "unknown",
1321
+ "label": "Unknown at this stage"
1322
+ }
1323
+ ]
1324
+ },
1325
+ "custom_errors": [
1326
+ {
1327
+ "type": "required",
1328
+ "message": "Select if the control breach was fully recovered"
1329
+ }
1330
+ ]
1331
+ },
1332
+ {
1333
+ "id": "hasApprovedVariance",
1334
+ "fieldId": "hasApprovedVariance",
1335
+ "label": "",
1336
+ "cya_label": "Has this variance been approved?",
1337
+ "type": "radios",
1338
+ "required": true,
1339
+ "showAllValues": "true",
1340
+ "data": {
1341
+ "options": [
1342
+ {
1343
+ "value": "Yes",
1344
+ "label": "Yes"
1345
+ },
1346
+ {
1347
+ "value": "No",
1348
+ "label": "No",
1349
+ "nested": [
1350
+ {
1351
+ "id": "hasDeniedVarianceReason",
1352
+ "fieldId": "hasDeniedVarianceReason",
1353
+ "type": "textarea",
1354
+ "label": "Give details",
1355
+ "required": true,
1356
+ "showCharacterCount": true,
1357
+ "maxLength": 500,
1358
+ "additionalValidation": [
1359
+ {
1360
+ "function": "mustBeLongerThan",
1361
+ "value": 1,
1362
+ "message": "Reason must be longer than 1 character"
1363
+ },
1364
+ {
1365
+ "function": "mustBeShorterThan",
1366
+ "value": 501,
1367
+ "message": "Reaons must be shorters than 500 characters"
1368
+ }
1369
+ ],
1370
+ "custom_errors": [
1371
+ {
1372
+ "type": "required",
1373
+ "message": "Enter details for why the variance has not been approved"
1374
+ }
1375
+ ]
1376
+ }
1377
+ ]
1378
+ }
1379
+ ]
1380
+ },
1381
+ "custom_errors": [
1382
+ {
1383
+ "type": "required",
1384
+ "message": "Select yes if the variance has been approved"
1385
+ }
1386
+ ],
1387
+ "cya_link": {}
1388
+ },
1389
+ {
1390
+ "id": "whoApprovedOfficierEmail",
1391
+ "fieldId": "whoApprovedOfficierEmail",
1392
+ "label": "Officer's email address",
1393
+ "type": "autocomplete",
1394
+ "hint": "Type to search",
1395
+ "showAllValues": true,
1396
+ "data": {
1397
+ "url": "/users/emails"
1398
+ },
1399
+ "item": {
1400
+ "value": "email",
1401
+ "label": "email"
1402
+ },
1403
+ "required": true,
1404
+ "custom_errors": [
1405
+ {
1406
+ "type": "required",
1407
+ "message": "Enter who approved this variance"
1408
+ }
1409
+ ],
1410
+ "cya_link": {}
1411
+ },
1412
+ {
1413
+ "id": "whoApprovedDateTime",
1414
+ "fieldId": "whoApprovedDateTime",
1415
+ "type": "container",
1416
+ "label": " ",
1417
+ "required": true,
1418
+ "components": [
1419
+ {
1420
+ "id": "whoApprovedDate",
1421
+ "fieldId": "whoApprovedDate",
1422
+ "label": "Date of approval",
1423
+ "type": "date",
1424
+ "hint": "For example, 27 3 2007",
1425
+ "required": "true",
1426
+ "additionalValidation": [
1427
+ {
1428
+ "function": "mustBeInThePast",
1429
+ "unit": "year",
1430
+ "value": 1,
1431
+ "todayAllowed": true,
1432
+ "message": "The date of approval must be today or in the past"
1433
+ }
1434
+ ],
1435
+ "custom_errors": [
1436
+ {
1437
+ "type": "required",
1438
+ "message": "Enter the date of approval"
1439
+ }
1440
+ ]
1441
+ },
1442
+ {
1443
+ "id": "whoApprovedTime",
1444
+ "fieldId": "whoApprovedTime",
1445
+ "type": "time",
1446
+ "label": "Time of approval",
1447
+ "required": true,
1448
+ "custom_errors": [
1449
+ {
1450
+ "type": "required",
1451
+ "message": "Enter the time of approval"
1452
+ }
1453
+ ],
1454
+ "additionalValidation": [
1455
+ {
1456
+ "function": "mustBeLongerThan",
1457
+ "value": 4,
1458
+ "message": "Enter time in 24-hour clock format"
1459
+ }
1460
+ ]
1461
+ }
1462
+ ],
1463
+ "additionalValidation": [
1464
+ {
1465
+ "function": "mustBeEarlierDateTime",
1466
+ "date": "whoApprovedDate",
1467
+ "time": "whoApprovedTime",
1468
+ "message": "The date and time of approval must be now or in the past"
1469
+ }
1470
+ ]
1471
+ },
1472
+ {
1473
+ "id": "finalReport",
1474
+ "fieldId": "finalReport",
1475
+ "label": "",
1476
+ "cya_label": "Is this the final report for this breach?",
1477
+ "type": "radios",
1478
+ "showAllValues": "true",
1479
+ "required": true,
1480
+ "data": {
1481
+ "options": [
1482
+ {
1483
+ "value": "Yes",
1484
+ "label": "Yes"
1485
+ },
1486
+ {
1487
+ "value": "No",
1488
+ "label": "No",
1489
+ "hint": "You can still continue and update the report later on"
1490
+ }
1491
+ ]
1492
+ },
1493
+ "custom_errors": [
1494
+ {
1495
+ "type": "required",
1496
+ "message": "Select yes if this is the final report for this breach"
1497
+ }
1498
+ ]
1499
+ },
1500
+ {
1501
+ "id": "whoSignedOfficerEmail",
1502
+ "fieldId": "whoSignedOfficerEmail",
1503
+ "label": "Officer's email address",
1504
+ "type": "autocomplete",
1505
+ "showAllValues": true,
1506
+ "data": {
1507
+ "url": "/users/emails"
1508
+ },
1509
+ "item": {
1510
+ "value": "email",
1511
+ "label": "email"
1512
+ },
1513
+ "required": true,
1514
+ "custom_errors": [
1515
+ {
1516
+ "type": "required",
1517
+ "message": "Enter who signed off this report"
1518
+ }
1519
+ ],
1520
+ "cya_link": {}
1521
+ },
1522
+ {
1523
+ "id": "whoSignedOffDate",
1524
+ "fieldId": "whoSignedOffDate",
1525
+ "type": "date",
1526
+ "label": "Date of sign off",
1527
+ "hint": "For example, 27 3 2007",
1528
+ "required": true,
1529
+ "additionalValidation": [
1530
+ {
1531
+ "function": "mustBeInThePast",
1532
+ "unit": "year",
1533
+ "value": 1,
1534
+ "todayAllowed": true,
1535
+ "message": "The date of sign-off must be today or in the past"
1536
+ }
1537
+ ],
1538
+ "custom_errors": [
1539
+ {
1540
+ "type": "required",
1541
+ "message": "Enter date of sign off"
1542
+ }
1543
+ ]
1544
+ },
1545
+ {
1546
+ "id": "whoSignedOffTime",
1547
+ "fieldId": "whoSignedOffTime",
1548
+ "type": "time",
1549
+ "label": "Time of sign off",
1550
+ "required": true,
1551
+ "custom_errors": [
1552
+ {
1553
+ "type": "required",
1554
+ "message": "Enter the time of sign off"
1555
+ }
1556
+ ],
1557
+ "additionalValidation": [
1558
+ {
1559
+ "function": "mustBeLongerThan",
1560
+ "value": 4,
1561
+ "message": "Enter time in 24-hour clock format"
1562
+ }
1563
+ ]
1564
+ },
1565
+ {
1566
+ "id": "terminal",
1567
+ "fieldId": "terminal",
1568
+ "label": "Terminal",
1569
+ "type": "watchForChangeAutocomplete",
1570
+ "watchedField": "port",
1571
+ "hint": "Type to search",
1572
+ "showAllValues": true,
1573
+ "item": {
1574
+ "value": "name",
1575
+ "label": "name"
1576
+ },
1577
+ "required": true,
1578
+ "custom_errors": [
1579
+ {
1580
+ "type": "required",
1581
+ "message": "Select a terminal"
1582
+ }
1583
+ ],
1584
+ "data": {
1585
+ "url": "${environmentContext.tmsDataServiceUrl}/portTerminal/${port.name}",
1586
+ "skipUrlInterpolation": true
1587
+ }
1588
+ },
1589
+ {
1590
+ "id": "terminalDisplay",
1591
+ "fieldId": "terminal",
1592
+ "label": "Terminal",
1593
+ "cya_label": "Terminal",
1594
+ "type": "autocomplete",
1595
+ "hideOnCyaWhenEmpty": true,
1596
+ "required": true,
1597
+ "disabled": true,
1598
+ "item": {
1599
+ "value": "name",
1600
+ "label": "name"
1601
+ }
1602
+ },
1603
+ {
1604
+ "id": "uploadFiles",
1605
+ "fieldId": "uploadFiles",
1606
+ "label": "Upload a file",
1607
+ "listLabel": "Files added",
1608
+ "allowDelete": false,
1609
+ "type": "multifile",
1610
+ "required": false,
1611
+ "fetchFile": false,
1612
+ "allowReadonlyDownload": true,
1613
+ "dropzoneLabel": " ",
1614
+ "dropzoneHint": [
1615
+ {
1616
+ "tagName": "f",
1617
+ "content": "Each file must be less than 25MB"
1618
+ }
1619
+ ],
1620
+ "maxFileSize": "25000000",
1621
+ "cya_link": {}
1622
+ },
1623
+ {
1624
+ "id": "uploadFilesAllowNccDelete",
1625
+ "fieldId": "uploadFiles",
1626
+ "label": "Upload a file",
1627
+ "listLabel": "Files added",
1628
+ "allowDelete": true,
1629
+ "type": "multifile",
1630
+ "required": false,
1631
+ "fetchFile": false,
1632
+ "allowReadonlyDownload": true,
1633
+ "dropzoneLabel": " ",
1634
+ "dropzoneHint": [
1635
+ {
1636
+ "tagName": "f",
1637
+ "content": "Each file must be less than 25MB"
1638
+ }
1639
+ ],
1640
+ "maxFileSize": "25000000",
1641
+ "cya_link": {}
1642
+ },
1643
+ {
1644
+ "id": "uploadFilesFirstSubmission",
1645
+ "fieldId": "uploadFiles",
1646
+ "label": "Upload a file",
1647
+ "listLabel": "Files added",
1648
+ "allowDelete": true,
1649
+ "type": "multifile",
1650
+ "required": false,
1651
+ "fetchFile": false,
1652
+ "allowReadonlyDownload": true,
1653
+ "showDropzoneLabel": false,
1654
+ "dropzoneLabel": " ",
1655
+ "dropzoneHint": [
1656
+ {
1657
+ "tagName": "p",
1658
+ "content": "Each file must be less than 25MB"
1659
+ }
1660
+ ],
1661
+ "maxFileSize": "25000000",
1662
+ "cya_link": {}
1663
+ },
1664
+ {
1665
+ "id": "uploadFilesNccOnly",
1666
+ "fieldId": "uploadFilesNccOnly",
1667
+ "label": "Upload a file (NCC only)",
1668
+ "hint": "This can only be seen by the NCC",
1669
+ "listLabel": "Files added",
1670
+ "allowDelete": true,
1671
+ "type": "multifile",
1672
+ "required": false,
1673
+ "fetchFile": false,
1674
+ "allowReadonlyDownload": true,
1675
+ "showDropzoneLabel": false,
1676
+ "dropzoneLabel": " ",
1677
+ "dropzoneHint": [
1678
+ {
1679
+ "tagName": "p",
1680
+ "content": "Each file must be less than 25MB"
1681
+ }
1682
+ ],
1683
+ "maxFileSize": "25000000",
1684
+ "restrictToGroups": [
1685
+ "/BFNCC"
1686
+ ],
1687
+ "cya_link": {}
1688
+ }
1689
+ ],
1690
+ "pages": [
1691
+ {
1692
+ "id": "reportVarianceStart",
1693
+ "name": "reportVarianceStart",
1694
+ "title": "Report a variance or breach",
1695
+ "components": [
1696
+ {
1697
+ "use": "useThisFormTo"
1698
+ },
1699
+ {
1700
+ "use": "useThisFormToList"
1701
+ },
1702
+ {
1703
+ "use": "beforeYouStart"
1704
+ },
1705
+ {
1706
+ "use": "provideInformation"
1707
+ },
1708
+ {
1709
+ "use": "provideInformationList"
1710
+ },
1711
+ {
1712
+ "use": "saveAndReturnComment"
1713
+ }
1714
+ ],
1715
+ "actions": [
1716
+ {
1717
+ "page": "eventType",
1718
+ "start": true,
1719
+ "type": "saveAndNavigate",
1720
+ "label": "Start now"
1721
+ }
1722
+ ]
1723
+ },
1724
+ {
1725
+ "id": "eventType",
1726
+ "name": "eventType",
1727
+ "title": "Event type",
1728
+ "components": [
1729
+ {
1730
+ "label": "",
1731
+ "use": "eventTypeRadio"
1732
+ }
1733
+ ],
1734
+ "actions": [
1735
+ {
1736
+ "type": "saveAndContinue",
1737
+ "label": "Save and continue",
1738
+ "show_when": {
1739
+ "field": "processContext.cop-variance-breach-v2.amended",
1740
+ "op": "nin",
1741
+ "values": [
1742
+ "true"
1743
+ ]
1744
+ }
1745
+ },
1746
+ {
1747
+ "type": "saveAndContinue",
1748
+ "label": "Continue",
1749
+ "show_when": {
1750
+ "field": "processContext.cop-variance-breach-v2.amended",
1751
+ "op": "in",
1752
+ "values": [
1753
+ "true"
1754
+ ]
1755
+ }
1756
+ },
1757
+ {
1758
+ "type": "saveAndReturn",
1759
+ "classModifiers": "secondary",
1760
+ "show_when": {
1761
+ "field": "processContext.cop-variance-breach-v2.amended",
1762
+ "op": "nin",
1763
+ "values": [
1764
+ "true"
1765
+ ]
1766
+ }
1767
+ }
1768
+ ],
1769
+ "cya_link": {
1770
+ "page": "eventType",
1771
+ "singleChangeLink": true,
1772
+ "title": "Event type",
1773
+ "aria_suffix": "Event type"
1774
+ }
1775
+ },
1776
+ {
1777
+ "id": "eventSendToVariance",
1778
+ "name": "eventSendToVariance",
1779
+ "title": "What is the reason for the variance?",
1780
+ "components": [
1781
+ {
1782
+ "label": "",
1783
+ "use": "varianceReason"
1784
+ }
1785
+ ],
1786
+ "actions": [
1787
+ {
1788
+ "type": "saveAndContinue",
1789
+ "label": "Save and continue",
1790
+ "show_when": {
1791
+ "field": "processContext.cop-variance-breach-v2.amended",
1792
+ "op": "nin",
1793
+ "values": [
1794
+ "true"
1795
+ ]
1796
+ }
1797
+ },
1798
+ {
1799
+ "type": "saveAndContinue",
1800
+ "label": "Continue",
1801
+ "show_when": {
1802
+ "field": "processContext.cop-variance-breach-v2.amended",
1803
+ "op": "in",
1804
+ "values": [
1805
+ "true"
1806
+ ]
1807
+ }
1808
+ },
1809
+ {
1810
+ "type": "saveAndReturn",
1811
+ "classModifiers": "secondary",
1812
+ "show_when": {
1813
+ "field": "processContext.cop-variance-breach-v2.amended",
1814
+ "op": "nin",
1815
+ "values": [
1816
+ "true"
1817
+ ]
1818
+ }
1819
+ }
1820
+ ],
1821
+ "cya_link": {
1822
+ "page": "eventSendToVariance",
1823
+ "singleChangeLink": true,
1824
+ "aria_suffix": "What is the reason for the variance"
1825
+ },
1826
+ "show_when": {
1827
+ "type": "or",
1828
+ "conditions": [
1829
+ {
1830
+ "op": "=",
1831
+ "field": "eventTypeRadio",
1832
+ "value": "Variance"
1833
+ }
1834
+ ]
1835
+ }
1836
+ },
1837
+ {
1838
+ "id": "eventSendToControlBreach",
1839
+ "name": "eventSendToControlBreach",
1840
+ "title": "What is the reason for the control breach?",
1841
+ "components": [
1842
+ {
1843
+ "label": "",
1844
+ "use": "controlBreachReason"
1845
+ }
1846
+ ],
1847
+ "actions": [
1848
+ {
1849
+ "type": "saveAndContinue",
1850
+ "label": "Save and continue",
1851
+ "show_when": {
1852
+ "field": "processContext.cop-variance-breach-v2.amended",
1853
+ "op": "nin",
1854
+ "values": [
1855
+ "true"
1856
+ ]
1857
+ }
1858
+ },
1859
+ {
1860
+ "type": "saveAndContinue",
1861
+ "label": "Continue",
1862
+ "show_when": {
1863
+ "field": "processContext.cop-variance-breach-v2.amended",
1864
+ "op": "in",
1865
+ "values": [
1866
+ "true"
1867
+ ]
1868
+ }
1869
+ },
1870
+ {
1871
+ "type": "saveAndReturn",
1872
+ "classModifiers": "secondary",
1873
+ "show_when": {
1874
+ "field": "processContext.cop-variance-breach-v2.amended",
1875
+ "op": "nin",
1876
+ "values": [
1877
+ "true"
1878
+ ]
1879
+ }
1880
+ }
1881
+ ],
1882
+ "cya_link": {
1883
+ "page": "eventSendToControlBreach",
1884
+ "singleChangeLink": true,
1885
+ "title": "What is the reason for the control breach",
1886
+ "aria_suffix": "What is the reason for the control breach"
1887
+ },
1888
+ "show_when": {
1889
+ "type": "or",
1890
+ "conditions": [
1891
+ {
1892
+ "op": "=",
1893
+ "field": "eventTypeRadio",
1894
+ "value": "Control breach"
1895
+ }
1896
+ ]
1897
+ }
1898
+ },
1899
+ {
1900
+ "id": "eventSendToOperatingMandate",
1901
+ "name": "eventSendToOperatingMandate",
1902
+ "title": "What is the reason for the breach of the Operating Mandate?",
1903
+ "components": [
1904
+ {
1905
+ "label": "",
1906
+ "use": "breachOperatingMandateReason"
1907
+ }
1908
+ ],
1909
+ "actions": [
1910
+ {
1911
+ "type": "saveAndContinue",
1912
+ "label": "Save and continue",
1913
+ "show_when": {
1914
+ "field": "processContext.cop-variance-breach-v2.amended",
1915
+ "op": "nin",
1916
+ "values": [
1917
+ "true"
1918
+ ]
1919
+ }
1920
+ },
1921
+ {
1922
+ "type": "saveAndContinue",
1923
+ "label": "Continue",
1924
+ "show_when": {
1925
+ "field": "processContext.cop-variance-breach-v2.amended",
1926
+ "op": "in",
1927
+ "values": [
1928
+ "true"
1929
+ ]
1930
+ }
1931
+ },
1932
+ {
1933
+ "type": "saveAndReturn",
1934
+ "classModifiers": "secondary",
1935
+ "show_when": {
1936
+ "field": "processContext.cop-variance-breach-v2.amended",
1937
+ "op": "nin",
1938
+ "values": [
1939
+ "true"
1940
+ ]
1941
+ }
1942
+ }
1943
+ ],
1944
+ "cya_link": {
1945
+ "page": "eventSendToOperatingMandate",
1946
+ "singleChangeLink": true,
1947
+ "title": "What is the reason for the breach of the Operating Mandate?",
1948
+ "aria_suffix": "What is the reason for the breach of the Operating Mandate?"
1949
+ },
1950
+ "show_when": {
1951
+ "type": "or",
1952
+ "conditions": [
1953
+ {
1954
+ "op": "=",
1955
+ "field": "eventTypeRadio",
1956
+ "value": "Breach of the operating mandate"
1957
+ }
1958
+ ]
1959
+ }
1960
+ },
1961
+ {
1962
+ "id": "eventDetails",
1963
+ "name": "eventDetails",
1964
+ "title": "Event details",
1965
+ "components": [
1966
+ {
1967
+ "use": "regionalCommandCentre",
1968
+ "show_when": {
1969
+ "field": "processContext.submissions",
1970
+ "op": "nin",
1971
+ "values": [
1972
+ 1,
1973
+ 2,
1974
+ 3,
1975
+ 4,
1976
+ 5,
1977
+ 6,
1978
+ 7,
1979
+ 8,
1980
+ 9
1981
+ ]
1982
+ }
1983
+ },
1984
+ {
1985
+ "use": "regionalCommandCentreDisplay",
1986
+ "show_when": {
1987
+ "field": "processContext.submissions",
1988
+ "op": "in",
1989
+ "values": [
1990
+ 1,
1991
+ 2,
1992
+ 3,
1993
+ 4,
1994
+ 5,
1995
+ 6,
1996
+ 7,
1997
+ 8,
1998
+ 9
1999
+ ]
2000
+ }
2001
+ },
2002
+ {
2003
+ "use": "port",
2004
+ "show_when": {
2005
+ "field": "processContext.submissions",
2006
+ "op": "nin",
2007
+ "values": [
2008
+ 1,
2009
+ 2,
2010
+ 3,
2011
+ 4,
2012
+ 5,
2013
+ 6,
2014
+ 7,
2015
+ 8,
2016
+ 9
2017
+ ]
2018
+ }
2019
+ },
2020
+ {
2021
+ "use": "portDisplay",
2022
+ "show_when": {
2023
+ "field": "processContext.submissions",
2024
+ "op": "in",
2025
+ "values": [
2026
+ 1,
2027
+ 2,
2028
+ 3,
2029
+ 4,
2030
+ 5,
2031
+ 6,
2032
+ 7,
2033
+ 8,
2034
+ 9
2035
+ ]
2036
+ }
2037
+ },
2038
+ {
2039
+ "use": "terminalDisplay",
2040
+ "show_when": {
2041
+ "type": "and",
2042
+ "conditions": [
2043
+ {
2044
+ "field": "processContext.submissions",
2045
+ "op": "in",
2046
+ "values": [
2047
+ 1,
2048
+ 2,
2049
+ 3,
2050
+ 4,
2051
+ 5,
2052
+ 6,
2053
+ 7,
2054
+ 8,
2055
+ 9
2056
+ ]
2057
+ },
2058
+ {
2059
+ "field": "./port.name",
2060
+ "op": "in",
2061
+ "values": [
2062
+ "Edinburgh Airport",
2063
+ "Gatwick Airport",
2064
+ "Birmingham International",
2065
+ "Manchester Airport",
2066
+ "Calais",
2067
+ "Dover",
2068
+ "Edinburgh Airport",
2069
+ "Heathrow",
2070
+ "Coquelles",
2071
+ "Dunkirk"
2072
+ ]
2073
+ }
2074
+ ]
2075
+ }
2076
+ },
2077
+ {
2078
+ "use": "terminal",
2079
+ "show_when": [
2080
+ {
2081
+ "field": "processContext.submissions",
2082
+ "op": "nin",
2083
+ "values": [
2084
+ 1,
2085
+ 2,
2086
+ 3,
2087
+ 4,
2088
+ 5,
2089
+ 6,
2090
+ 7,
2091
+ 8,
2092
+ 9
2093
+ ]
2094
+ },
2095
+ {
2096
+ "field": "./port.name",
2097
+ "op": "in",
2098
+ "values": [
2099
+ "Edinburgh Airport",
2100
+ "Gatwick Airport",
2101
+ "Birmingham International",
2102
+ "Manchester Airport",
2103
+ "Calais",
2104
+ "Dover",
2105
+ "Edinburgh Airport",
2106
+ "Heathrow",
2107
+ "Coquelles",
2108
+ "Dunkirk"
2109
+ ]
2110
+ }
2111
+ ]
2112
+ },
2113
+ {
2114
+ "use": "dateOfEvent"
2115
+ },
2116
+ {
2117
+ "use": "timeOfEvent"
2118
+ }
2119
+ ],
2120
+ "operations": [
2121
+ {
2122
+ "run_when": {
2123
+ "condition": "changes",
2124
+ "field": "port"
2125
+ },
2126
+ "function": "deleteValueInFormData",
2127
+ "field": "terminal",
2128
+ "component": "Terminal"
2129
+ }
2130
+ ],
2131
+ "actions": [
2132
+ {
2133
+ "page": "eventPassengerNumbers",
2134
+ "type": "saveAndNavigate",
2135
+ "validate": true,
2136
+ "label": "Save and continue",
2137
+ "show_when": {
2138
+ "type": "or",
2139
+ "conditions": [
2140
+ {
2141
+ "op": "in",
2142
+ "field": "controlBreachReason",
2143
+ "values": [
2144
+ "Absconder",
2145
+ "Ambulance",
2146
+ "General aviation",
2147
+ "General maritime",
2148
+ "Health measures",
2149
+ "Misdirected passenger",
2150
+ "Police removed passenger from aircraft"
2151
+ ]
2152
+ },
2153
+ {
2154
+ "op": "in",
2155
+ "field": "breachOperatingMandateReason",
2156
+ "values": [
2157
+ "Absconder",
2158
+ "Mishandled variance",
2159
+ "Mishandled Border Crossing (BX)",
2160
+ "Missed passenger",
2161
+ "Health measures",
2162
+ "Missed vehicle"
2163
+ ]
2164
+ },
2165
+ {
2166
+ "op": "in",
2167
+ "field": "varianceReason",
2168
+ "values": [
2169
+ "Public safety and security"
2170
+ ]
2171
+ }
2172
+ ]
2173
+ }
2174
+ },
2175
+ {
2176
+ "page": "passengerDetails",
2177
+ "type": "saveAndNavigate",
2178
+ "label": "Save and continue",
2179
+ "validate": true,
2180
+ "show_when": {
2181
+ "type": "or",
2182
+ "conditions": [
2183
+ {
2184
+ "op": "in",
2185
+ "field": "varianceReason",
2186
+ "values": [
2187
+ "Blue lights emergency",
2188
+ "NCC approved medical",
2189
+ "NCC pre-approved medical",
2190
+ "Sensitive or compassionate",
2191
+ "Police removed passenger from aircraft",
2192
+ "VIP"
2193
+ ]
2194
+ }
2195
+ ]
2196
+ }
2197
+ },
2198
+ {
2199
+ "page": "technologyOutage",
2200
+ "type": "saveAndNavigate",
2201
+ "label": "Save and continue",
2202
+ "validate": true,
2203
+ "show_when": {
2204
+ "type": "or",
2205
+ "conditions": [
2206
+ {
2207
+ "op": "in",
2208
+ "field": "varianceReason",
2209
+ "values": [
2210
+ "Technology"
2211
+ ]
2212
+ }
2213
+ ]
2214
+ }
2215
+ },
2216
+ {
2217
+ "page": "airlineCrewDetailsPage",
2218
+ "type": "saveAndNavigate",
2219
+ "label": "Save and continue",
2220
+ "validate": true,
2221
+ "show_when": {
2222
+ "type": "or",
2223
+ "conditions": [
2224
+ {
2225
+ "op": "in",
2226
+ "field": "controlBreachReason",
2227
+ "values": [
2228
+ "Airline crew"
2229
+ ]
2230
+ }
2231
+ ]
2232
+ }
2233
+ },
2234
+ {
2235
+ "page": "eventOverviewPage",
2236
+ "type": "saveAndNavigate",
2237
+ "label": "Save and continue",
2238
+ "validate": true,
2239
+ "show_when": [
2240
+ {
2241
+ "op": "in",
2242
+ "field": "varianceReason",
2243
+ "values": [
2244
+ "Health and safety"
2245
+ ]
2246
+ }
2247
+ ]
2248
+ },
2249
+ {
2250
+ "type": "saveAndReturn",
2251
+ "classModifiers": "secondary",
2252
+ "show_when": {
2253
+ "field": "processContext.cop-variance-breach-v2.amended",
2254
+ "op": "nin",
2255
+ "values": [
2256
+ "true"
2257
+ ]
2258
+ }
2259
+ }
2260
+ ],
2261
+ "cya_link": {
2262
+ "page": "eventDetails",
2263
+ "singleChangeLink": true,
2264
+ "title": "Event details",
2265
+ "aria_suffix": "Event details"
2266
+ }
2267
+ },
2268
+ {
2269
+ "id": "eventPassengerNumbers",
2270
+ "name": "eventPassengerNumbers",
2271
+ "title": "Do you know how many passengers are involved in the event?",
2272
+ "components": [
2273
+ {
2274
+ "use": "eventPassengers"
2275
+ }
2276
+ ],
2277
+ "actions": [
2278
+ {
2279
+ "page": "misdirectedPassengerInformation",
2280
+ "type": "saveAndNavigate",
2281
+ "validate": true,
2282
+ "show_when": {
2283
+ "type": "or",
2284
+ "conditions": [
2285
+ {
2286
+ "op": "in",
2287
+ "field": "controlBreachReason",
2288
+ "values": [
2289
+ "Misdirected passenger"
2290
+ ]
2291
+ }
2292
+ ]
2293
+ }
2294
+ },
2295
+ {
2296
+ "type": "saveAndNavigate",
2297
+ "page": "doYouHavePassengerDetails",
2298
+ "validate": true,
2299
+ "show_when": {
2300
+ "type": "or",
2301
+ "conditions": [
2302
+ {
2303
+ "op": "in",
2304
+ "field": "controlBreachReason",
2305
+ "values": [
2306
+ "Absconder",
2307
+ "Ambulance",
2308
+ "General aviation",
2309
+ "General maritime",
2310
+ "Health measures",
2311
+ "Police removed passenger from aircraft"
2312
+ ]
2313
+ },
2314
+ {
2315
+ "op": "in",
2316
+ "field": "breachOperatingMandateReason",
2317
+ "values": [
2318
+ "Absconder",
2319
+ "Mishandled variance",
2320
+ "Mishandled Border Crossing (BX)",
2321
+ "Missed passenger",
2322
+ "Health measures",
2323
+ "Missed vehicle"
2324
+ ]
2325
+ },
2326
+ {
2327
+ "op": "in",
2328
+ "field": "varianceReason",
2329
+ "values": [
2330
+ "Health and safety",
2331
+ "Public safety and security",
2332
+ "VIP"
2333
+ ]
2334
+ }
2335
+ ]
2336
+ }
2337
+ },
2338
+ {
2339
+ "type": "saveAndReturn",
2340
+ "classModifiers": "secondary",
2341
+ "show_when": {
2342
+ "field": "processContext.cop-variance-breach-v2.amended",
2343
+ "op": "nin",
2344
+ "values": [
2345
+ "true"
2346
+ ]
2347
+ }
2348
+ }
2349
+ ],
2350
+ "cya_link": {
2351
+ "page": "eventPassengerNumbers",
2352
+ "singleChangeLink": true,
2353
+ "title": "Do you know how many passengers are involved in the event?",
2354
+ "aria_suffix": "Do you know how many passengers are involved in the event?"
2355
+ },
2356
+ "show_when": {
2357
+ "type": "or",
2358
+ "conditions": [
2359
+ {
2360
+ "op": "in",
2361
+ "field": "controlBreachReason",
2362
+ "values": [
2363
+ "Absconder",
2364
+ "Ambulance",
2365
+ "General aviation",
2366
+ "General maritime",
2367
+ "Health measures",
2368
+ "Misdirected passenger",
2369
+ "Police removed passenger from aircraft"
2370
+ ]
2371
+ },
2372
+ {
2373
+ "op": "in",
2374
+ "field": "breachOperatingMandateReason",
2375
+ "values": [
2376
+ "Absconder",
2377
+ "Mishandled variance",
2378
+ "Mishandled Border Crossing (BX)",
2379
+ "Missed passenger",
2380
+ "Health measures",
2381
+ "Missed vehicle"
2382
+ ]
2383
+ },
2384
+ {
2385
+ "op": "in",
2386
+ "field": "varianceReason",
2387
+ "values": [
2388
+ "Public safety and security"
2389
+ ]
2390
+ }
2391
+ ]
2392
+ }
2393
+ },
2394
+ {
2395
+ "id": "doYouHavePassengerDetails",
2396
+ "name": "doYouHavePassengerDetails",
2397
+ "title": "Do you have any passenger details?",
2398
+ "components": [
2399
+ {
2400
+ "use": "passengerDetailsRadio"
2401
+ }
2402
+ ],
2403
+ "actions": [
2404
+ {
2405
+ "page": "whoIsMakingThisRequestPage",
2406
+ "type": "saveAndNavigate",
2407
+ "label": "Save and continue",
2408
+ "validate": true,
2409
+ "show_when": [
2410
+ {
2411
+ "op": "=",
2412
+ "field": "passengerDetailsRadio",
2413
+ "value": "No"
2414
+ },
2415
+ {
2416
+ "op": "in",
2417
+ "field": "varianceReason",
2418
+ "values": [
2419
+ "Public safety and security",
2420
+ "Sensitive or compassionate"
2421
+ ]
2422
+ }
2423
+ ]
2424
+ },
2425
+ {
2426
+ "page": "eventOverviewPage",
2427
+ "type": "saveAndNavigate",
2428
+ "label": "Save and continue",
2429
+ "validate": true,
2430
+ "show_when": [
2431
+ {
2432
+ "op": "=",
2433
+ "field": "passengerDetailsRadio",
2434
+ "value": "No"
2435
+ },
2436
+ {
2437
+ "op": "in",
2438
+ "field": "varianceReason",
2439
+ "values": [
2440
+ "Health and safety",
2441
+ "Police removed passenger from aircraft",
2442
+ "VIP"
2443
+ ]
2444
+ }
2445
+ ]
2446
+ },
2447
+ {
2448
+ "page": "eventOverviewPage",
2449
+ "type": "saveAndNavigate",
2450
+ "label": "Save and continue",
2451
+ "validate": true,
2452
+ "show_when": [
2453
+ {
2454
+ "type": "or",
2455
+ "conditions": [
2456
+ {
2457
+ "type": "and",
2458
+ "conditions": [
2459
+ {
2460
+ "op": "=",
2461
+ "field": "passengerDetailsRadio",
2462
+ "value": "No"
2463
+ },
2464
+ {
2465
+ "op": "in",
2466
+ "field": "breachOperatingMandateReason",
2467
+ "values": [
2468
+ "Absconder",
2469
+ "Mishandled variance",
2470
+ "Mishandled Border Crossing (BX)",
2471
+ "Health measures",
2472
+ "Missed vehicle",
2473
+ "Missed passenger"
2474
+ ]
2475
+ }
2476
+ ]
2477
+ },
2478
+ {
2479
+ "type": "and",
2480
+ "conditions": [
2481
+ {
2482
+ "op": "=",
2483
+ "field": "eventPassengers",
2484
+ "value": "No"
2485
+ },
2486
+ {
2487
+ "op": "=",
2488
+ "field": "passengerDetailsRadio",
2489
+ "value": "No"
2490
+ },
2491
+ {
2492
+ "op": "in",
2493
+ "field": "controlBreachReason",
2494
+ "values": [
2495
+ "Absconder",
2496
+ "Ambulance",
2497
+ "General aviation",
2498
+ "General maritime",
2499
+ "Health measures",
2500
+ "Police removed passenger from aircraft"
2501
+ ]
2502
+ }
2503
+ ]
2504
+ }
2505
+ ]
2506
+ }
2507
+ ]
2508
+ },
2509
+ {
2510
+ "page": "breachRecoveryPage",
2511
+ "type": "saveAndNavigate",
2512
+ "label": "Save and continue",
2513
+ "validate": true,
2514
+ "show_when": [
2515
+ {
2516
+ "op": "=",
2517
+ "field": "eventPassengers",
2518
+ "value": "Yes"
2519
+ },
2520
+ {
2521
+ "op": "=",
2522
+ "field": "passengerDetailsRadio",
2523
+ "value": "No"
2524
+ },
2525
+ {
2526
+ "op": "in",
2527
+ "field": "controlBreachReason",
2528
+ "values": [
2529
+ "Absconder",
2530
+ "Ambulance",
2531
+ "General aviation",
2532
+ "General maritime",
2533
+ "Health measures",
2534
+ "Police removed passenger from aircraft"
2535
+ ]
2536
+ }
2537
+ ]
2538
+ },
2539
+ {
2540
+ "page": "passengerDetails",
2541
+ "type": "saveAndNavigate",
2542
+ "label": "Save and continue",
2543
+ "validate": true,
2544
+ "show_when": [
2545
+ {
2546
+ "type": "or",
2547
+ "conditions": [
2548
+ {
2549
+ "type": "and",
2550
+ "conditions": [
2551
+ {
2552
+ "op": "=",
2553
+ "field": "eventPassengers",
2554
+ "value": "Yes"
2555
+ },
2556
+ {
2557
+ "op": "in",
2558
+ "field": "numberOfPassengers",
2559
+ "values": [
2560
+ "1",
2561
+ "2",
2562
+ "3",
2563
+ "4",
2564
+ "5",
2565
+ "6",
2566
+ "7",
2567
+ "8",
2568
+ "9",
2569
+ "10"
2570
+ ]
2571
+ },
2572
+ {
2573
+ "op": "!=",
2574
+ "field": "passengerDetailsRadio",
2575
+ "value": "No"
2576
+ }
2577
+ ]
2578
+ },
2579
+ {
2580
+ "type": "and",
2581
+ "conditions": [
2582
+ {
2583
+ "op": "=",
2584
+ "field": "eventPassengers",
2585
+ "value": "No"
2586
+ },
2587
+ {
2588
+ "op": "in",
2589
+ "field": "estimateNumberOfPassengers",
2590
+ "values": [
2591
+ "1",
2592
+ "2",
2593
+ "3",
2594
+ "4",
2595
+ "5",
2596
+ "6",
2597
+ "7",
2598
+ "8",
2599
+ "9",
2600
+ "10"
2601
+ ]
2602
+ },
2603
+ {
2604
+ "op": "!=",
2605
+ "field": "passengerDetailsRadio",
2606
+ "value": "No"
2607
+ }
2608
+ ]
2609
+ }
2610
+ ]
2611
+ }
2612
+ ]
2613
+ },
2614
+ {
2615
+ "page": "leadPassengerDetails",
2616
+ "type": "saveAndNavigate",
2617
+ "label": "Save and continue",
2618
+ "validate": true,
2619
+ "show_when": [
2620
+ {
2621
+ "type": "or",
2622
+ "conditions": [
2623
+ {
2624
+ "type": "and",
2625
+ "conditions": [
2626
+ {
2627
+ "op": "=",
2628
+ "field": "eventPassengers",
2629
+ "value": "Yes"
2630
+ },
2631
+ {
2632
+ "op": ">",
2633
+ "field": "numberOfPassengers",
2634
+ "value": "10"
2635
+ },
2636
+ {
2637
+ "op": "!=",
2638
+ "field": "passengerDetailsRadio",
2639
+ "value": "No"
2640
+ }
2641
+ ]
2642
+ },
2643
+ {
2644
+ "type": "and",
2645
+ "conditions": [
2646
+ {
2647
+ "op": "=",
2648
+ "field": "eventPassengers",
2649
+ "value": "No"
2650
+ },
2651
+ {
2652
+ "op": ">",
2653
+ "field": "estimateNumberOfPassengers",
2654
+ "value": "10"
2655
+ },
2656
+ {
2657
+ "op": "!=",
2658
+ "field": "passengerDetailsRadio",
2659
+ "value": "No"
2660
+ }
2661
+ ]
2662
+ }
2663
+ ]
2664
+ }
2665
+ ]
2666
+ },
2667
+ {
2668
+ "type": "saveAndReturn",
2669
+ "classModifiers": "secondary",
2670
+ "show_when": {
2671
+ "field": "processContext.cop-variance-breach-v2.amended",
2672
+ "op": "nin",
2673
+ "values": [
2674
+ "true"
2675
+ ]
2676
+ }
2677
+ }
2678
+ ],
2679
+ "cya_link": {
2680
+ "page": "doYouHavePassengerDetails",
2681
+ "singleChangeLink": true,
2682
+ "title": "Do you have any passenger details?",
2683
+ "aria_suffix": "Do you have any passenger details?"
2684
+ },
2685
+ "show_when": {
2686
+ "type": "or",
2687
+ "conditions": [
2688
+ {
2689
+ "op": "in",
2690
+ "field": "varianceReason",
2691
+ "values": [
2692
+ "Public safety and security"
2693
+ ]
2694
+ },
2695
+ {
2696
+ "op": "in",
2697
+ "field": "breachOperatingMandateReason",
2698
+ "values": [
2699
+ "Absconder",
2700
+ "Mishandled variance",
2701
+ "Mishandled Border Crossing (BX)",
2702
+ "Missed passenger",
2703
+ "Health measures",
2704
+ "Missed vehicle"
2705
+ ]
2706
+ },
2707
+ {
2708
+ "op": "in",
2709
+ "field": "controlBreachReason",
2710
+ "values": [
2711
+ "Absconder",
2712
+ "Ambulance",
2713
+ "General aviation",
2714
+ "General maritime",
2715
+ "Health measures",
2716
+ "Police removed passenger from aircraft"
2717
+ ]
2718
+ }
2719
+ ]
2720
+ }
2721
+ },
2722
+ {
2723
+ "id": "passengerDetails",
2724
+ "name": "passengerDetails",
2725
+ "title": "Passenger details",
2726
+ "collection": {
2727
+ "name": "passengers",
2728
+ "labels": {
2729
+ "item": "Passenger ${index}"
2730
+ }
2731
+ },
2732
+ "components": [
2733
+ {
2734
+ "use": "enterPassengerDetails"
2735
+ },
2736
+ {
2737
+ "use": "passengerGivenName"
2738
+ },
2739
+ {
2740
+ "use": "passengerSurnameName"
2741
+ },
2742
+ {
2743
+ "use": "passengerDob"
2744
+ },
2745
+ {
2746
+ "use": "passengerNationality"
2747
+ },
2748
+ {
2749
+ "use": "passengerTravelDocumentNumber"
2750
+ }
2751
+ ],
2752
+ "actions": [
2753
+ {
2754
+ "page": "addAnotherPassenger",
2755
+ "type": "saveAndNavigate",
2756
+ "validate": true,
2757
+ "label": "Save and continue"
2758
+ },
2759
+ {
2760
+ "type": "saveAndReturn",
2761
+ "classModifiers": "secondary",
2762
+ "show_when": {
2763
+ "field": "processContext.cop-variance-breach-v2.amended",
2764
+ "op": "nin",
2765
+ "values": [
2766
+ "true"
2767
+ ]
2768
+ }
2769
+ }
2770
+ ],
2771
+ "show_when": [
2772
+ {
2773
+ "type": "or",
2774
+ "conditions": [
2775
+ {
2776
+ "type": "and",
2777
+ "conditions": [
2778
+ {
2779
+ "op": "=",
2780
+ "field": "passengerDetailsRadio",
2781
+ "value": "Yes"
2782
+ },
2783
+ {
2784
+ "op": "in",
2785
+ "field": "numberOfPassengers",
2786
+ "values": [
2787
+ "1",
2788
+ "2",
2789
+ "3",
2790
+ "4",
2791
+ "5",
2792
+ "6",
2793
+ "7",
2794
+ "8",
2795
+ "9",
2796
+ "10"
2797
+ ]
2798
+ }
2799
+ ]
2800
+ },
2801
+ {
2802
+ "type": "and",
2803
+ "conditions": [
2804
+ {
2805
+ "op": "=",
2806
+ "field": "passengerDetailsRadio",
2807
+ "value": "Yes"
2808
+ },
2809
+ {
2810
+ "op": "in",
2811
+ "field": "estimateNumberOfPassengers",
2812
+ "values": [
2813
+ "1",
2814
+ "2",
2815
+ "3",
2816
+ "4",
2817
+ "5",
2818
+ "6",
2819
+ "7",
2820
+ "8",
2821
+ "9",
2822
+ "10"
2823
+ ]
2824
+ }
2825
+ ]
2826
+ },
2827
+ {
2828
+ "op": "in",
2829
+ "field": "varianceReason",
2830
+ "values": [
2831
+ "Blue lights emergency",
2832
+ "NCC approved medical",
2833
+ "NCC pre-approved medical",
2834
+ "Sensitive or compassionate",
2835
+ "Police removed passenger from aircraft",
2836
+ "VIP"
2837
+ ]
2838
+ }
2839
+ ]
2840
+ }
2841
+ ],
2842
+ "cya_link": {
2843
+ "page": "passengerDetails",
2844
+ "singleChangeLink": true,
2845
+ "title": "Passenger details",
2846
+ "aria_suffix": "Passenger details"
2847
+ }
2848
+ },
2849
+ {
2850
+ "id": "leadPassengerDetails",
2851
+ "name": "leadPassengerDetails",
2852
+ "title": "Lead passenger details",
2853
+ "components": [
2854
+ {
2855
+ "use": "leadPassengerDetails"
2856
+ },
2857
+ {
2858
+ "use": "leadPassengerGivenName"
2859
+ },
2860
+ {
2861
+ "use": "leadPassengerSurnameName"
2862
+ },
2863
+ {
2864
+ "use": "leadPassengerDob"
2865
+ },
2866
+ {
2867
+ "use": "leadPassengerNationality"
2868
+ },
2869
+ {
2870
+ "use": "leadPassengerTravelDocumentNumber"
2871
+ }
2872
+ ],
2873
+ "actions": [
2874
+ {
2875
+ "page": "passengerCorrectDocuments",
2876
+ "type": "saveAndNavigate",
2877
+ "validate": true,
2878
+ "label": "Save and continue"
2879
+ },
2880
+ {
2881
+ "type": "saveAndReturn",
2882
+ "classModifiers": "secondary",
2883
+ "show_when": {
2884
+ "field": "processContext.cop-variance-breach-v2.amended",
2885
+ "op": "nin",
2886
+ "values": [
2887
+ "true"
2888
+ ]
2889
+ }
2890
+ }
2891
+ ],
2892
+ "show_when": [
2893
+ {
2894
+ "type": "or",
2895
+ "conditions": [
2896
+ {
2897
+ "type": "and",
2898
+ "conditions": [
2899
+ {
2900
+ "op": "=",
2901
+ "field": "passengerDetailsRadio",
2902
+ "value": "Yes"
2903
+ },
2904
+ {
2905
+ "op": ">",
2906
+ "field": "numberOfPassengers",
2907
+ "value": "10"
2908
+ }
2909
+ ]
2910
+ },
2911
+ {
2912
+ "type": "and",
2913
+ "conditions": [
2914
+ {
2915
+ "op": "=",
2916
+ "field": "passengerDetailsRadio",
2917
+ "value": "Yes"
2918
+ },
2919
+ {
2920
+ "op": ">",
2921
+ "field": "estimateNumberOfPassengers",
2922
+ "value": "10"
2923
+ }
2924
+ ]
2925
+ }
2926
+ ]
2927
+ }
2928
+ ],
2929
+ "cya_link": {
2930
+ "page": "leadPassengerDetails",
2931
+ "singleChangeLink": true,
2932
+ "title": "Lead passenger details",
2933
+ "aria_suffix": "Lead passenger details"
2934
+ }
2935
+ },
2936
+ {
2937
+ "id": "addAnotherPassenger",
2938
+ "name": "addAnotherPassenger",
2939
+ "title": "Do you want to add another passenger?",
2940
+ "components": [
2941
+ {
2942
+ "use": "addAnotherPassenger"
2943
+ }
2944
+ ],
2945
+ "actions": [
2946
+ {
2947
+ "type": "saveAndNavigate",
2948
+ "validate": true,
2949
+ "page": "passengerCorrectDocuments",
2950
+ "show_when": [
2951
+ {
2952
+ "field": "addAnotherPassenger",
2953
+ "op": "!=",
2954
+ "value": "Yes"
2955
+ }
2956
+ ]
2957
+ },
2958
+ {
2959
+ "type": "collectionAdd",
2960
+ "label": "Save and continue",
2961
+ "collection": "passengers",
2962
+ "page": "passengerDetails",
2963
+ "show_when": [
2964
+ {
2965
+ "field": "addAnotherPassenger",
2966
+ "op": "=",
2967
+ "value": "Yes"
2968
+ }
2969
+ ]
2970
+ },
2971
+ {
2972
+ "type": "saveAndReturn",
2973
+ "classModifiers": "secondary",
2974
+ "show_when": {
2975
+ "field": "processContext.cop-variance-breach-v2.amended",
2976
+ "op": "nin",
2977
+ "values": [
2978
+ "true"
2979
+ ]
2980
+ }
2981
+ }
2982
+ ],
2983
+ "show_when": [
2984
+ {
2985
+ "type": "or",
2986
+ "conditions": [
2987
+ {
2988
+ "type": "and",
2989
+ "conditions": [
2990
+ {
2991
+ "op": "=",
2992
+ "field": "passengerDetailsRadio",
2993
+ "value": "Yes"
2994
+ },
2995
+ {
2996
+ "op": "in",
2997
+ "field": "numberOfPassengers",
2998
+ "values": [
2999
+ "1",
3000
+ "2",
3001
+ "3",
3002
+ "4",
3003
+ "5",
3004
+ "6",
3005
+ "7",
3006
+ "8",
3007
+ "9",
3008
+ "10"
3009
+ ]
3010
+ }
3011
+ ]
3012
+ },
3013
+ {
3014
+ "type": "and",
3015
+ "conditions": [
3016
+ {
3017
+ "op": "=",
3018
+ "field": "passengerDetailsRadio",
3019
+ "value": "Yes"
3020
+ },
3021
+ {
3022
+ "op": "in",
3023
+ "field": "estimateNumberOfPassengers",
3024
+ "values": [
3025
+ "1",
3026
+ "2",
3027
+ "3",
3028
+ "4",
3029
+ "5",
3030
+ "6",
3031
+ "7",
3032
+ "8",
3033
+ "9",
3034
+ "10"
3035
+ ]
3036
+ }
3037
+ ]
3038
+ },
3039
+ {
3040
+ "op": "in",
3041
+ "field": "varianceReason",
3042
+ "values": [
3043
+ "Blue lights emergency",
3044
+ "NCC approved medical",
3045
+ "NCC pre-approved medical",
3046
+ "Police removed passenger from aircraft",
3047
+ "VIP"
3048
+ ]
3049
+ }
3050
+ ]
3051
+ }
3052
+ ]
3053
+ },
3054
+ {
3055
+ "id": "passengerCorrectDocuments",
3056
+ "name": "passengerCorrectDocuments",
3057
+ "title": "Passenger documents",
3058
+ "components": [
3059
+ {
3060
+ "use": "passengerCorrectDocuments"
3061
+ }
3062
+ ],
3063
+ "actions": [
3064
+ {
3065
+ "type": "saveAndNavigate",
3066
+ "label": "Save and continue",
3067
+ "validate": true,
3068
+ "page": "carrierDetails",
3069
+ "show_when": {
3070
+ "type": "or",
3071
+ "conditions": [
3072
+ {
3073
+ "op": "in",
3074
+ "field": "varianceReason",
3075
+ "values": [
3076
+ "Blue lights emergency",
3077
+ "NCC approved medical",
3078
+ "NCC pre-approved medical"
3079
+ ]
3080
+ }
3081
+ ]
3082
+ }
3083
+ },
3084
+ {
3085
+ "page": "whoIsMakingThisRequestPage",
3086
+ "type": "saveAndNavigate",
3087
+ "label": "Save and continue",
3088
+ "validate": true,
3089
+ "show_when": {
3090
+ "type": "or",
3091
+ "conditions": [
3092
+ {
3093
+ "op": "in",
3094
+ "field": "varianceReason",
3095
+ "values": [
3096
+ "Public safety and security",
3097
+ "Sensitive or compassionate"
3098
+ ]
3099
+ }
3100
+ ]
3101
+ }
3102
+ },
3103
+ {
3104
+ "page": "breachRecoveryPage",
3105
+ "type": "saveAndNavigate",
3106
+ "label": "Save and continue",
3107
+ "validate": true,
3108
+ "show_when": [
3109
+ {
3110
+ "op": "=",
3111
+ "field": "eventPassengers",
3112
+ "value": "Yes"
3113
+ },
3114
+ {
3115
+ "op": "in",
3116
+ "field": "controlBreachReason",
3117
+ "values": [
3118
+ "Absconder",
3119
+ "Ambulance",
3120
+ "General aviation",
3121
+ "General maritime",
3122
+ "Health measures",
3123
+ "Police removed passenger from aircraft"
3124
+ ]
3125
+ }
3126
+ ]
3127
+ },
3128
+ {
3129
+ "page": "eventOverviewPage",
3130
+ "type": "saveAndNavigate",
3131
+ "label": "Save and continue",
3132
+ "validate": true,
3133
+ "show_when": [
3134
+ {
3135
+ "op": "=",
3136
+ "field": "eventPassengers",
3137
+ "value": "No"
3138
+ },
3139
+ {
3140
+ "op": "in",
3141
+ "field": "controlBreachReason",
3142
+ "values": [
3143
+ "Absconder",
3144
+ "Ambulance",
3145
+ "General aviation",
3146
+ "General maritime",
3147
+ "Health measures",
3148
+ "Police removed passenger from aircraft"
3149
+ ]
3150
+ }
3151
+ ]
3152
+ },
3153
+ {
3154
+ "page": "eventOverviewPage",
3155
+ "type": "saveAndNavigate",
3156
+ "label": "Save and continue",
3157
+ "validate": true,
3158
+ "show_when": [
3159
+ {
3160
+ "op": "in",
3161
+ "field": "varianceReason",
3162
+ "values": [
3163
+ "Police removed passenger from aircraft",
3164
+ "VIP"
3165
+ ]
3166
+ }
3167
+ ]
3168
+ },
3169
+ {
3170
+ "page": "eventOverviewPage",
3171
+ "type": "saveAndNavigate",
3172
+ "label": "Save and continue",
3173
+ "validate": true,
3174
+ "show_when": [
3175
+ {
3176
+ "op": "in",
3177
+ "field": "breachOperatingMandateReason",
3178
+ "values": [
3179
+ "Absconder",
3180
+ "Mishandled variance",
3181
+ "Mishandled Border Crossing (BX)",
3182
+ "Missed passenger",
3183
+ "Health measures",
3184
+ "Missed vehicle"
3185
+ ]
3186
+ }
3187
+ ]
3188
+ },
3189
+ {
3190
+ "type": "saveAndReturn",
3191
+ "classModifiers": "secondary",
3192
+ "show_when": {
3193
+ "field": "processContext.cop-variance-breach-v2.amended",
3194
+ "op": "nin",
3195
+ "values": [
3196
+ "true"
3197
+ ]
3198
+ }
3199
+ }
3200
+ ],
3201
+ "show_when": [
3202
+ {
3203
+ "type": "or",
3204
+ "conditions": [
3205
+ {
3206
+ "type": "and",
3207
+ "conditions": [
3208
+ {
3209
+ "op": "=",
3210
+ "field": "passengerDetailsRadio",
3211
+ "value": "Yes"
3212
+ },
3213
+ {
3214
+ "op": ">",
3215
+ "field": "numberOfPassengers",
3216
+ "value": "10"
3217
+ }
3218
+ ]
3219
+ },
3220
+ {
3221
+ "type": "and",
3222
+ "conditions": [
3223
+ {
3224
+ "op": "=",
3225
+ "field": "passengerDetailsRadio",
3226
+ "value": "Yes"
3227
+ },
3228
+ {
3229
+ "op": "in",
3230
+ "field": "numberOfPassengers",
3231
+ "values": [
3232
+ "1",
3233
+ "2",
3234
+ "3",
3235
+ "4",
3236
+ "5",
3237
+ "6",
3238
+ "7",
3239
+ "8",
3240
+ "9",
3241
+ "10"
3242
+ ]
3243
+ }
3244
+ ]
3245
+ },
3246
+ {
3247
+ "type": "and",
3248
+ "conditions": [
3249
+ {
3250
+ "op": "=",
3251
+ "field": "passengerDetailsRadio",
3252
+ "value": "Yes"
3253
+ },
3254
+ {
3255
+ "op": "in",
3256
+ "field": "estimateNumberOfPassengers",
3257
+ "values": [
3258
+ "1",
3259
+ "2",
3260
+ "3",
3261
+ "4",
3262
+ "5",
3263
+ "6",
3264
+ "7",
3265
+ "8",
3266
+ "9",
3267
+ "10"
3268
+ ]
3269
+ }
3270
+ ]
3271
+ },
3272
+ {
3273
+ "type": "and",
3274
+ "conditions": [
3275
+ {
3276
+ "op": "=",
3277
+ "field": "passengerDetailsRadio",
3278
+ "value": "Yes"
3279
+ },
3280
+ {
3281
+ "op": ">",
3282
+ "field": "estimateNumberOfPassengers",
3283
+ "value": "10"
3284
+ }
3285
+ ]
3286
+ },
3287
+ {
3288
+ "op": "in",
3289
+ "field": "varianceReason",
3290
+ "values": [
3291
+ "Blue lights emergency",
3292
+ "NCC approved medical",
3293
+ "NCC pre-approved medical",
3294
+ "Police removed passenger from aircraft",
3295
+ "Sensitive or compassionate",
3296
+ "VIP"
3297
+ ]
3298
+ }
3299
+ ]
3300
+ }
3301
+ ],
3302
+ "cya_link": {
3303
+ "page": "passengerCorrectDocuments",
3304
+ "singleChangeLink": true,
3305
+ "title": "Passenger documents",
3306
+ "aria_suffix": "Passenger documents"
3307
+ }
3308
+ },
3309
+ {
3310
+ "id": "airlineCrewDetailsPage",
3311
+ "name": "airlineCrewDetailsPage",
3312
+ "title": "Airline crew details",
3313
+ "restricHint": false,
3314
+ "components": [
3315
+ {
3316
+ "use": "crewAirline"
3317
+ },
3318
+ {
3319
+ "use": "crewCollection",
3320
+ "tagName": "h2"
3321
+ }
3322
+ ],
3323
+ "actions": [
3324
+ {
3325
+ "type": "saveAndNavigate",
3326
+ "label": "Save and continue",
3327
+ "validate": true,
3328
+ "page": "eventOverviewPage",
3329
+ "show_when": [
3330
+ {
3331
+ "op": "in",
3332
+ "field": "controlBreachReason",
3333
+ "values": [
3334
+ "Airline crew"
3335
+ ]
3336
+ }
3337
+ ]
3338
+ },
3339
+ {
3340
+ "type": "saveAndReturn",
3341
+ "classModifiers": "secondary",
3342
+ "show_when": {
3343
+ "field": "processContext.cop-variance-breach-v2.amended",
3344
+ "op": "nin",
3345
+ "values": [
3346
+ "true"
3347
+ ]
3348
+ }
3349
+ }
3350
+ ],
3351
+ "cya_link": {
3352
+ "page": "airlineCrewDetailsPage",
3353
+ "singleChangeLink": true,
3354
+ "title": "Airline crew details",
3355
+ "aria_suffix": "Airline crew details"
3356
+ },
3357
+ "show_when": [
3358
+ {
3359
+ "op": "in",
3360
+ "field": "controlBreachReason",
3361
+ "values": [
3362
+ "Airline crew"
3363
+ ]
3364
+ }
3365
+ ]
3366
+ },
3367
+ {
3368
+ "id": "technologyOutage",
3369
+ "name": "technologyOutage",
3370
+ "title": "Technology outage",
3371
+ "components": [
3372
+ {
3373
+ "use": "technologyOutage"
3374
+ },
3375
+ {
3376
+ "use": "nccNotes"
3377
+ },
3378
+ {
3379
+ "use": "uploadFilesTitle"
3380
+ },
3381
+ {
3382
+ "use": "uploadFilesLabel"
3383
+ },
3384
+ {
3385
+ "use": "uploadFilesFirstSubmission",
3386
+ "show_when": [
3387
+ {
3388
+ "field": "processContext.submissions",
3389
+ "op": "nin",
3390
+ "values": [
3391
+ 1,
3392
+ 2,
3393
+ 3,
3394
+ 4,
3395
+ 5,
3396
+ 6,
3397
+ 7,
3398
+ 8,
3399
+ 9
3400
+ ]
3401
+ }
3402
+ ]
3403
+ },
3404
+ {
3405
+ "use": "uploadFiles",
3406
+ "show_when": [
3407
+ {
3408
+ "field": "processContext.submissions",
3409
+ "op": "in",
3410
+ "values": [
3411
+ 1,
3412
+ 2,
3413
+ 3,
3414
+ 4,
3415
+ 5,
3416
+ 6,
3417
+ 7,
3418
+ 8,
3419
+ 9
3420
+ ]
3421
+ },
3422
+ {
3423
+ "field": "keycloakContext.groups",
3424
+ "op": "!includes",
3425
+ "value": "/BFNCC"
3426
+ },
3427
+ {
3428
+ "field": "keycloakContext.groups",
3429
+ "op": "!includes",
3430
+ "value": "/bf-ncc-officer"
3431
+ }
3432
+ ]
3433
+ },
3434
+ {
3435
+ "use": "uploadFilesAllowNccDelete",
3436
+ "show_when": [
3437
+ {
3438
+ "field": "processContext.submissions",
3439
+ "op": "in",
3440
+ "values": [
3441
+ 1,
3442
+ 2,
3443
+ 3,
3444
+ 4,
3445
+ 5,
3446
+ 6,
3447
+ 7,
3448
+ 8,
3449
+ 9
3450
+ ]
3451
+ },
3452
+ {
3453
+ "field": "keycloakContext.groups",
3454
+ "op": "includes",
3455
+ "value": "/BFNCC"
3456
+ },
3457
+ {
3458
+ "field": "keycloakContext.groups",
3459
+ "op": "includes",
3460
+ "value": "/bf-ncc-officer"
3461
+ }
3462
+ ]
3463
+ },
3464
+ {
3465
+ "use": "uploadFilesNccOnly",
3466
+ "show_when": [
3467
+ {
3468
+ "field": "keycloakContext.groups",
3469
+ "op": "includes",
3470
+ "value": "/BFNCC"
3471
+ },
3472
+ {
3473
+ "field": "keycloakContext.groups",
3474
+ "op": "includes",
3475
+ "value": "/bf-ncc-officer"
3476
+ }
3477
+ ]
3478
+ }
3479
+ ],
3480
+ "actions": [
3481
+ {
3482
+ "type": "saveAndContinue",
3483
+ "label": "Save and continue",
3484
+ "show_when": {
3485
+ "field": "processContext.cop-variance-breach-v2.amended",
3486
+ "op": "nin",
3487
+ "values": [
3488
+ "true"
3489
+ ]
3490
+ }
3491
+ },
3492
+ {
3493
+ "type": "saveAndContinue",
3494
+ "label": "Continue",
3495
+ "show_when": {
3496
+ "field": "processContext.cop-variance-breach-v2.amended",
3497
+ "op": "in",
3498
+ "values": [
3499
+ "true"
3500
+ ]
3501
+ }
3502
+ },
3503
+ {
3504
+ "type": "saveAndReturn",
3505
+ "classModifiers": "secondary",
3506
+ "show_when": {
3507
+ "field": "processContext.cop-variance-breach-v2.amended",
3508
+ "op": "nin",
3509
+ "values": [
3510
+ "true"
3511
+ ]
3512
+ }
3513
+ }
3514
+ ],
3515
+ "cya_link": {
3516
+ "page": "technologyOutage",
3517
+ "singleChangeLink": true,
3518
+ "title": "Technology outage",
3519
+ "aria_suffix": "Technology outage"
3520
+ },
3521
+ "show_when": [
3522
+ {
3523
+ "op": "in",
3524
+ "field": "varianceReason",
3525
+ "values": [
3526
+ "Technology"
3527
+ ]
3528
+ }
3529
+ ]
3530
+ },
3531
+ {
3532
+ "id": "misdirectedPassengerInformation",
3533
+ "name": "misdirectedPassengerInformation",
3534
+ "title": "Misdirected passenger information",
3535
+ "components": [
3536
+ {
3537
+ "use": "whoWasResponsiblePassenger"
3538
+ },
3539
+ {
3540
+ "use": "TypeOfMisdirection"
3541
+ }
3542
+ ],
3543
+ "actions": [
3544
+ {
3545
+ "type": "saveAndNavigate",
3546
+ "page": "carrierDetails",
3547
+ "show_when": {
3548
+ "op": "in",
3549
+ "field": "controlBreachReason",
3550
+ "values": [
3551
+ "Misdirected passenger"
3552
+ ]
3553
+ }
3554
+ },
3555
+ {
3556
+ "type": "saveAndReturn",
3557
+ "classModifiers": "secondary",
3558
+ "show_when": {
3559
+ "field": "processContext.cop-variance-breach-v2.amended",
3560
+ "op": "nin",
3561
+ "values": [
3562
+ "true"
3563
+ ]
3564
+ }
3565
+ }
3566
+ ],
3567
+ "cya_link": {
3568
+ "page": "misdirectedPassengerInformation",
3569
+ "singleChangeLink": true,
3570
+ "title": "Misdirected passenger information",
3571
+ "aria_suffix": "Misdirected passenger information"
3572
+ },
3573
+ "show_when": [
3574
+ {
3575
+ "op": "in",
3576
+ "field": "controlBreachReason",
3577
+ "values": [
3578
+ "Misdirected passenger"
3579
+ ]
3580
+ }
3581
+ ]
3582
+ },
3583
+ {
3584
+ "id": "carrierDetails",
3585
+ "name": "carrierDetails",
3586
+ "title": "Carrier details",
3587
+ "components": [
3588
+ {
3589
+ "use": "carrierNumber"
3590
+ },
3591
+ {
3592
+ "use": "nameOfCarrier"
3593
+ },
3594
+ {
3595
+ "use": "countryOfOrigin"
3596
+ }
3597
+ ],
3598
+ "actions": [
3599
+ {
3600
+ "type": "saveAndContinue",
3601
+ "label": "Save and continue",
3602
+ "show_when": {
3603
+ "field": "processContext.cop-variance-breach-v2.amended",
3604
+ "op": "nin",
3605
+ "values": [
3606
+ "true"
3607
+ ]
3608
+ }
3609
+ },
3610
+ {
3611
+ "type": "saveAndContinue",
3612
+ "label": "Continue",
3613
+ "show_when": {
3614
+ "field": "processContext.cop-variance-breach-v2.amended",
3615
+ "op": "in",
3616
+ "values": [
3617
+ "true"
3618
+ ]
3619
+ }
3620
+ },
3621
+ {
3622
+ "type": "saveAndReturn",
3623
+ "classModifiers": "secondary",
3624
+ "show_when": {
3625
+ "field": "processContext.cop-variance-breach-v2.amended",
3626
+ "op": "nin",
3627
+ "values": [
3628
+ "true"
3629
+ ]
3630
+ }
3631
+ }
3632
+ ],
3633
+ "cya_link": {
3634
+ "page": "carrierDetails",
3635
+ "singleChangeLink": true,
3636
+ "title": "Carrier details",
3637
+ "aria_suffix": "Carrier details"
3638
+ },
3639
+ "show_when": {
3640
+ "type": "or",
3641
+ "conditions": [
3642
+ {
3643
+ "op": "in",
3644
+ "field": "varianceReason",
3645
+ "values": [
3646
+ "Blue lights emergency",
3647
+ "NCC approved medical",
3648
+ "NCC pre-approved medical"
3649
+ ]
3650
+ },
3651
+ {
3652
+ "op": "in",
3653
+ "field": "controlBreachReason",
3654
+ "values": [
3655
+ "Misdirected passenger"
3656
+ ]
3657
+ }
3658
+ ]
3659
+ }
3660
+ },
3661
+ {
3662
+ "id": "whoIsMakingThisRequestPage",
3663
+ "name": "whoIsMakingThisRequestPage",
3664
+ "title": "Who is making this request?",
3665
+ "components": [
3666
+ {
3667
+ "use": "whoIsMakingThisRequest"
3668
+ }
3669
+ ],
3670
+ "actions": [
3671
+ {
3672
+ "type": "saveAndContinue",
3673
+ "label": "Save and continue",
3674
+ "show_when": {
3675
+ "field": "processContext.cop-variance-breach-v2.amended",
3676
+ "op": "nin",
3677
+ "values": [
3678
+ "true"
3679
+ ]
3680
+ }
3681
+ },
3682
+ {
3683
+ "type": "saveAndContinue",
3684
+ "label": "Continue",
3685
+ "show_when": {
3686
+ "field": "processContext.cop-variance-breach-v2.amended",
3687
+ "op": "in",
3688
+ "values": [
3689
+ "true"
3690
+ ]
3691
+ }
3692
+ },
3693
+ {
3694
+ "type": "saveAndReturn",
3695
+ "classModifiers": "secondary",
3696
+ "show_when": {
3697
+ "field": "processContext.cop-variance-breach-v2.amended",
3698
+ "op": "nin",
3699
+ "values": [
3700
+ "true"
3701
+ ]
3702
+ }
3703
+ }
3704
+ ],
3705
+ "show_when": {
3706
+ "type": "or",
3707
+ "conditions": [
3708
+ {
3709
+ "op": "in",
3710
+ "field": "varianceReason",
3711
+ "values": [
3712
+ "Public safety and security",
3713
+ "Sensitive or compassionate"
3714
+ ]
3715
+ }
3716
+ ]
3717
+ },
3718
+ "cya_link": {
3719
+ "page": "whoIsMakingThisRequestPage",
3720
+ "singleChangeLink": true,
3721
+ "title": "Requesting agency",
3722
+ "aria_suffix": "Who is making this request?"
3723
+ }
3724
+ },
3725
+ {
3726
+ "id": "breachRecoveryPage",
3727
+ "name": "breachRecoveryPage",
3728
+ "title": "Was the control breach fully recovered?",
3729
+ "components": [
3730
+ {
3731
+ "use": "breachRecovery"
3732
+ }
3733
+ ],
3734
+ "actions": [
3735
+ {
3736
+ "page": "eventOverviewPage",
3737
+ "type": "saveAndNavigate",
3738
+ "label": "Save and continue",
3739
+ "validate": true
3740
+ },
3741
+ {
3742
+ "type": "saveAndReturn",
3743
+ "classModifiers": "secondary",
3744
+ "show_when": {
3745
+ "field": "processContext.cop-variance-breach-v2.amended",
3746
+ "op": "nin",
3747
+ "values": [
3748
+ "true"
3749
+ ]
3750
+ }
3751
+ }
3752
+ ],
3753
+ "show_when": [
3754
+ {
3755
+ "op": "=",
3756
+ "field": "eventPassengers",
3757
+ "value": "Yes"
3758
+ },
3759
+ {
3760
+ "op": "in",
3761
+ "field": "controlBreachReason",
3762
+ "values": [
3763
+ "Absconder",
3764
+ "Ambulance",
3765
+ "General aviation",
3766
+ "General maritime",
3767
+ "Health measures",
3768
+ "Police removed passenger from aircraft",
3769
+ "Misdirected passenger"
3770
+ ]
3771
+ }
3772
+ ],
3773
+ "cya_link": {
3774
+ "page": "breachRecoveryPage",
3775
+ "singleChangeLink": true,
3776
+ "title": "Was this control breach fully recovered?",
3777
+ "aria_suffix": "Was this control breach fully recovered?"
3778
+ }
3779
+ },
3780
+ {
3781
+ "id": "eventOverviewPage",
3782
+ "name": "eventOverviewPage",
3783
+ "title": "Event overview",
3784
+ "components": [
3785
+ {
3786
+ "use": "eventOverview"
3787
+ },
3788
+ {
3789
+ "use": "nccNotes"
3790
+ },
3791
+ {
3792
+ "use": "eventOverviewUploadFilesTitle"
3793
+ },
3794
+ {
3795
+ "use": "eventOverviewUploadFileLabel"
3796
+ },
3797
+ {
3798
+ "use": "uploadFiles",
3799
+ "show_when": {
3800
+ "field": "processContext.submissions",
3801
+ "op": "in",
3802
+ "values": [
3803
+ 1,
3804
+ 2,
3805
+ 3,
3806
+ 4,
3807
+ 5,
3808
+ 6,
3809
+ 7,
3810
+ 8,
3811
+ 9
3812
+ ]
3813
+ }
3814
+ },
3815
+ {
3816
+ "use": "uploadFilesFirstSubmission",
3817
+ "show_when": {
3818
+ "field": "processContext.submissions",
3819
+ "op": "nin",
3820
+ "values": [
3821
+ 1,
3822
+ 2,
3823
+ 3,
3824
+ 4,
3825
+ 5,
3826
+ 6,
3827
+ 7,
3828
+ 8,
3829
+ 9
3830
+ ]
3831
+ }
3832
+ },
3833
+ {
3834
+ "use": "uploadFilesNccOnly",
3835
+ "show_when": [
3836
+ {
3837
+ "field": "keycloakContext.groups",
3838
+ "op": "includes",
3839
+ "value": "/BFNCC"
3840
+ },
3841
+ {
3842
+ "field": "keycloakContext.groups",
3843
+ "op": "includes",
3844
+ "value": "/bf-ncc-officer"
3845
+ }
3846
+ ]
3847
+ }
3848
+ ],
3849
+ "actions": [
3850
+ {
3851
+ "type": "saveAndContinue",
3852
+ "label": "Save and continue",
3853
+ "show_when": {
3854
+ "field": "processContext.cop-variance-breach-v2.amended",
3855
+ "op": "nin",
3856
+ "values": [
3857
+ "true"
3858
+ ]
3859
+ }
3860
+ },
3861
+ {
3862
+ "type": "saveAndContinue",
3863
+ "label": "Continue",
3864
+ "show_when": {
3865
+ "field": "processContext.cop-variance-breach-v2.amended",
3866
+ "op": "in",
3867
+ "values": [
3868
+ "true"
3869
+ ]
3870
+ }
3871
+ },
3872
+ {
3873
+ "type": "saveAndReturn",
3874
+ "classModifiers": "secondary",
3875
+ "show_when": {
3876
+ "field": "processContext.cop-variance-breach-v2.amended",
3877
+ "op": "nin",
3878
+ "values": [
3879
+ "true"
3880
+ ]
3881
+ }
3882
+ }
3883
+ ],
3884
+ "show_when": {
3885
+ "type": "or",
3886
+ "conditions": [
3887
+ {
3888
+ "op": "in",
3889
+ "field": "breachOperatingMandateReason",
3890
+ "values": [
3891
+ "Absconder",
3892
+ "Mishandled variance",
3893
+ "Mishandled Border Crossing (BX)",
3894
+ "Missed passenger",
3895
+ "Health measures",
3896
+ "Missed vehicle"
3897
+ ]
3898
+ },
3899
+ {
3900
+ "op": "in",
3901
+ "field": "controlBreachReason",
3902
+ "values": [
3903
+ "Absconder",
3904
+ "Ambulance",
3905
+ "Airline crew",
3906
+ "General aviation",
3907
+ "General maritime",
3908
+ "Health measures",
3909
+ "Police removed passenger from aircraft",
3910
+ "Misdirected passenger"
3911
+ ]
3912
+ },
3913
+ {
3914
+ "op": "in",
3915
+ "field": "varianceReason",
3916
+ "values": [
3917
+ "Blue lights emergency",
3918
+ "NCC approved medical",
3919
+ "NCC pre-approved medical",
3920
+ "Health and safety",
3921
+ "Police removed passenger from aircraft",
3922
+ "Public safety and security",
3923
+ "Sensitive or compassionate",
3924
+ "VIP"
3925
+ ]
3926
+ }
3927
+ ]
3928
+ },
3929
+ "cya_link": {
3930
+ "page": "eventOverviewPage",
3931
+ "singleChangeLink": true,
3932
+ "title": "Event overview",
3933
+ "aria_suffix": "Event overview"
3934
+ }
3935
+ },
3936
+ {
3937
+ "id": "hasApprovedVariancePage",
3938
+ "name": "hasApprovedVariancePage",
3939
+ "title": "Has this variance been approved?",
3940
+ "components": [
3941
+ {
3942
+ "use": "hasApprovedVariance"
3943
+ }
3944
+ ],
3945
+ "actions": [
3946
+ {
3947
+ "type": "saveAndContinue",
3948
+ "label": "Save and continue",
3949
+ "show_when": {
3950
+ "field": "processContext.cop-variance-breach-v2.amended",
3951
+ "op": "nin",
3952
+ "values": [
3953
+ "true"
3954
+ ]
3955
+ }
3956
+ },
3957
+ {
3958
+ "type": "saveAndContinue",
3959
+ "label": "Continue",
3960
+ "show_when": {
3961
+ "field": "processContext.cop-variance-breach-v2.amended",
3962
+ "op": "in",
3963
+ "values": [
3964
+ "true"
3965
+ ]
3966
+ }
3967
+ },
3968
+ {
3969
+ "type": "saveAndReturn",
3970
+ "classModifiers": "secondary",
3971
+ "show_when": {
3972
+ "field": "processContext.cop-variance-breach-v2.amended",
3973
+ "op": "nin",
3974
+ "values": [
3975
+ "true"
3976
+ ]
3977
+ }
3978
+ }
3979
+ ],
3980
+ "show_when": {
3981
+ "type": "or",
3982
+ "conditions": [
3983
+ {
3984
+ "op": "in",
3985
+ "field": "varianceReason",
3986
+ "values": [
3987
+ "Blue lights emergency",
3988
+ "Health and safety",
3989
+ "NCC approved medical",
3990
+ "NCC pre-approved medical",
3991
+ "Police removed passenger from aircraft",
3992
+ "Public safety and security",
3993
+ "Sensitive or compassionate",
3994
+ "Technology",
3995
+ "VIP"
3996
+ ]
3997
+ }
3998
+ ]
3999
+ },
4000
+ "cya_link": {
4001
+ "page": "hasApprovedVariancePage",
4002
+ "singleChangeLink": true,
4003
+ "title": "Has this variance been approved?",
4004
+ "aria_suffix": "Has this variance been approved?"
4005
+ }
4006
+ },
4007
+ {
4008
+ "id": "whoApprovedThisVariancePage",
4009
+ "name": "whoApprovedThisVariancePage",
4010
+ "title": "Who approved this variance?",
4011
+ "components": [
4012
+ {
4013
+ "use": "whoApprovedOfficierEmail"
4014
+ },
4015
+ {
4016
+ "use": "whoApprovedDateTime"
4017
+ }
4018
+ ],
4019
+ "actions": [
4020
+ {
4021
+ "type": "saveAndContinue",
4022
+ "label": "Save and continue",
4023
+ "show_when": {
4024
+ "field": "processContext.cop-variance-breach-v2.amended",
4025
+ "op": "nin",
4026
+ "values": [
4027
+ "true"
4028
+ ]
4029
+ }
4030
+ },
4031
+ {
4032
+ "type": "saveAndContinue",
4033
+ "label": "Continue",
4034
+ "show_when": {
4035
+ "field": "processContext.cop-variance-breach-v2.amended",
4036
+ "op": "in",
4037
+ "values": [
4038
+ "true"
4039
+ ]
4040
+ }
4041
+ },
4042
+ {
4043
+ "type": "saveAndReturn",
4044
+ "classModifiers": "secondary",
4045
+ "show_when": {
4046
+ "field": "processContext.cop-variance-breach-v2.amended",
4047
+ "op": "nin",
4048
+ "values": [
4049
+ "true"
4050
+ ]
4051
+ }
4052
+ }
4053
+ ],
4054
+ "show_when": {
4055
+ "conditions": [
4056
+ {
4057
+ "op": "=",
4058
+ "field": "hasApprovedVariance",
4059
+ "value": "Yes"
4060
+ }
4061
+ ]
4062
+ },
4063
+ "cya_link": {
4064
+ "page": "whoApprovedThisVariancePage",
4065
+ "singleChangeLink": true,
4066
+ "title": "Who approved this variance?",
4067
+ "aria_suffix": "Who approved this variance?"
4068
+ }
4069
+ },
4070
+ {
4071
+ "id": "finalReportPage",
4072
+ "name": "finalReportPage",
4073
+ "title": "Is this the final report for this breach?",
4074
+ "components": [
4075
+ {
4076
+ "use": "finalReport"
4077
+ }
4078
+ ],
4079
+ "actions": [
4080
+ {
4081
+ "type": "saveAndContinue",
4082
+ "label": "Save and continue",
4083
+ "show_when": {
4084
+ "field": "processContext.cop-variance-breach-v2.amended",
4085
+ "op": "nin",
4086
+ "values": [
4087
+ "true"
4088
+ ]
4089
+ }
4090
+ },
4091
+ {
4092
+ "type": "saveAndContinue",
4093
+ "label": "Continue",
4094
+ "show_when": {
4095
+ "field": "processContext.cop-variance-breach-v2.amended",
4096
+ "op": "in",
4097
+ "values": [
4098
+ "true"
4099
+ ]
4100
+ }
4101
+ },
4102
+ {
4103
+ "type": "saveAndReturn",
4104
+ "classModifiers": "secondary",
4105
+ "show_when": {
4106
+ "field": "processContext.cop-variance-breach-v2.amended",
4107
+ "op": "nin",
4108
+ "values": [
4109
+ "true"
4110
+ ]
4111
+ }
4112
+ }
4113
+ ],
4114
+ "show_when": {
4115
+ "type": "or",
4116
+ "conditions": [
4117
+ {
4118
+ "op": "in",
4119
+ "field": "controlBreachReason",
4120
+ "values": [
4121
+ "Absconder",
4122
+ "Ambulance",
4123
+ "Airline crew",
4124
+ "General aviation",
4125
+ "General maritime",
4126
+ "Health measures",
4127
+ "Misdirected passenger",
4128
+ "Police removed passenger from aircraft"
4129
+ ]
4130
+ },
4131
+ {
4132
+ "op": "in",
4133
+ "field": "breachOperatingMandateReason",
4134
+ "values": [
4135
+ "Absconder",
4136
+ "Mishandled variance",
4137
+ "Mishandled Border Crossing (BX)",
4138
+ "Missed passenger",
4139
+ "Health measures",
4140
+ "Missed vehicle"
4141
+ ]
4142
+ }
4143
+ ]
4144
+ },
4145
+ "cya_link": {
4146
+ "page": "finalReportPage",
4147
+ "singleChangeLink": true,
4148
+ "title": "Is this the final report of this breach?",
4149
+ "aria_suffix": "Is this the final report of this breach?"
4150
+ }
4151
+ },
4152
+ {
4153
+ "id": "whoSignedOffPage",
4154
+ "name": "whoSignedOffPage",
4155
+ "title": "Who signed off this report?",
4156
+ "components": [
4157
+ {
4158
+ "use": "whoSignedOfficerEmail"
4159
+ },
4160
+ {
4161
+ "use": "whoSignedOffDate"
4162
+ },
4163
+ {
4164
+ "use": "whoSignedOffTime"
4165
+ }
4166
+ ],
4167
+ "actions": [
4168
+ {
4169
+ "type": "saveAndContinue",
4170
+ "label": "Save and continue",
4171
+ "show_when": {
4172
+ "field": "processContext.cop-variance-breach-v2.amended",
4173
+ "op": "nin",
4174
+ "values": [
4175
+ "true"
4176
+ ]
4177
+ }
4178
+ },
4179
+ {
4180
+ "type": "saveAndContinue",
4181
+ "label": "Continue",
4182
+ "show_when": {
4183
+ "field": "processContext.cop-variance-breach-v2.amended",
4184
+ "op": "in",
4185
+ "values": [
4186
+ "true"
4187
+ ]
4188
+ }
4189
+ },
4190
+ {
4191
+ "type": "saveAndReturn",
4192
+ "classModifiers": "secondary",
4193
+ "show_when": {
4194
+ "field": "processContext.cop-variance-breach-v2.amended",
4195
+ "op": "nin",
4196
+ "values": [
4197
+ "true"
4198
+ ]
4199
+ }
4200
+ }
4201
+ ],
4202
+ "show_when": {
4203
+ "conditions": [
4204
+ {
4205
+ "op": "=",
4206
+ "field": "finalReport",
4207
+ "value": "Yes"
4208
+ }
4209
+ ]
4210
+ },
4211
+ "cya_link": {
4212
+ "page": "whoSignedOffPage",
4213
+ "singleChangeLink": true,
4214
+ "title": "Who signed off this report?",
4215
+ "aria_suffix": "Who signed off this report?"
4216
+ }
4217
+ }
4218
+ ],
4219
+ "cya": {
4220
+ "path_for_redirect": "/tms/${businessKey}",
4221
+ "confirm_on_first_submit": true,
4222
+ "confirm": [
4223
+ {
4224
+ "title": "You have reported this event",
4225
+ "message": [
4226
+ "<p class='govuk-body'>Your report has been submitted to the Regional Command Centre (RCC).</p>",
4227
+ "<h2 class='govuk-heading-m'>What happens next</h2>",
4228
+ "<p class='govuk-body'>The RCC will review your report.</p>",
4229
+ "<p class='govuk-body'>Your report will be assigned back to you if you need to provide more information about the event.</p>",
4230
+ "<p class='govuk-body'><a href='/' class='govuk-link'>Go to homepage.</a></p>",
4231
+ "<p><a href='https://lssiprod.service-now.com/ess?id=take_survey&amp;type_id=e0e2125b1bdd1110f8655946464bcbf7'class='govuk-link'>What do you think of this service?</a></p>"
4232
+ ],
4233
+ "show_when": [
4234
+ {
4235
+ "field": "processContext.cop-variance-breach-v2.amended",
4236
+ "op": "nin",
4237
+ "values": [
4238
+ "true"
4239
+ ]
4240
+ }
4241
+ ]
4242
+ },
4243
+ {
4244
+ "title": "You have edited this form",
4245
+ "message": [
4246
+ "<p class='govuk-body'>You have edited this closed task.</p>",
4247
+ "<h2 class='govuk-heading-m'>What happens next</h2>",
4248
+ "<p class='govuk-body'>This task has now been returned to closed status.</p>",
4249
+ "<p class='govuk-body'><a href='/' class='govuk-link'>Go to homepage.</a></p>",
4250
+ "<p><a href='https://lssiprod.service-now.com/ess?id=take_survey&amp;type_id=e0e2125b1bdd1110f8655946464bcbf7'class='govuk-link'>What do you think of this service?</a></p>"
4251
+ ],
4252
+ "show_when": [
4253
+ {
4254
+ "field": "processContext.cop-variance-breach-v2.amended",
4255
+ "op": "in",
4256
+ "values": [
4257
+ "true"
4258
+ ]
4259
+ }
4260
+ ]
4261
+ }
4262
+ ],
4263
+ "actions": [
4264
+ {
4265
+ "type": "submit",
4266
+ "label": "Submit",
4267
+ "validate": true
4268
+ }
4269
+ ]
4270
+ }
4271
+ }
4272
+