@hmcts/rpx-xui-common-lib 1.8.7-fix-supported-services → 1.8.8-angular-upgrade-r4

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 (118) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +919 -201
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +32 -29
  6. package/esm2015/lib/components/find-location/find-location.component.js +8 -4
  7. package/esm2015/lib/components/find-service/find-service.component.js +2 -2
  8. package/esm2015/lib/components/find-task-name/find-task-name.component.js +228 -0
  9. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +2 -2
  10. package/esm2015/lib/components/generic-filter/generic-filter.component.js +361 -15
  11. package/esm2015/lib/components/search-location/search-location.component.js +3 -3
  12. package/esm2015/lib/components/search-service/search-service.component.js +18 -6
  13. package/esm2015/lib/exui-common-lib.module.js +12 -3
  14. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +80 -6
  15. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +3 -3
  16. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +3 -2
  17. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +1 -1
  18. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  19. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +22 -0
  20. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +19 -14
  21. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -2
  22. package/esm2015/lib/gov-ui/components/index.js +2 -2
  23. package/esm2015/lib/gov-ui/components/public_api.js +2 -1
  24. package/esm2015/lib/gov-ui/index.js +2 -2
  25. package/esm2015/lib/gov-ui/models/checkboxes-model.js +6 -8
  26. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +5 -1
  27. package/esm2015/lib/gov-ui/models/public_api.js +1 -2
  28. package/esm2015/lib/gov-ui/models/radio-buttons.model.js +22 -0
  29. package/esm2015/lib/gov-ui/public_api.js +2 -2
  30. package/esm2015/lib/models/filter.model.js +62 -4
  31. package/esm2015/lib/models/index.js +3 -2
  32. package/esm2015/lib/models/person.model.js +2 -2
  33. package/esm2015/lib/models/task-name.model.js +16 -0
  34. package/esm2015/lib/pipes/capitalize.pipe.js +21 -0
  35. package/esm2015/lib/services/filter/filter.service.js +17 -3
  36. package/esm2015/lib/services/find-person/find-person.service.js +3 -3
  37. package/esm2015/lib/services/role-guard/role.guard.js +22 -15
  38. package/esm2015/lib/services/role-guard/role.service.js +13 -13
  39. package/esm2015/lib/services/storage/session-storage/session-storage.service.js +55 -0
  40. package/esm2015/lib/services/task-name/task-name.service.js +65 -0
  41. package/esm2015/public-api.js +3 -3
  42. package/esm5/hmcts-rpx-xui-common-lib.js +32 -29
  43. package/esm5/lib/components/find-location/find-location.component.js +8 -4
  44. package/esm5/lib/components/find-service/find-service.component.js +2 -2
  45. package/esm5/lib/components/find-task-name/find-task-name.component.js +243 -0
  46. package/esm5/lib/components/generic-filter/generic-filter-utils.js +2 -2
  47. package/esm5/lib/components/generic-filter/generic-filter.component.js +397 -14
  48. package/esm5/lib/components/search-location/search-location.component.js +3 -3
  49. package/esm5/lib/components/search-service/search-service.component.js +20 -7
  50. package/esm5/lib/exui-common-lib.module.js +10 -3
  51. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +100 -6
  52. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +3 -3
  53. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +3 -2
  54. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +1 -1
  55. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  56. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +22 -0
  57. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +17 -13
  58. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -2
  59. package/esm5/lib/gov-ui/components/index.js +2 -2
  60. package/esm5/lib/gov-ui/components/public_api.js +2 -1
  61. package/esm5/lib/gov-ui/index.js +2 -2
  62. package/esm5/lib/gov-ui/models/checkboxes-model.js +6 -8
  63. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +5 -1
  64. package/esm5/lib/gov-ui/models/public_api.js +1 -2
  65. package/esm5/lib/gov-ui/models/radio-buttons.model.js +22 -0
  66. package/esm5/lib/gov-ui/public_api.js +2 -2
  67. package/esm5/lib/models/filter.model.js +62 -4
  68. package/esm5/lib/models/index.js +3 -2
  69. package/esm5/lib/models/person.model.js +2 -2
  70. package/esm5/lib/models/task-name.model.js +16 -0
  71. package/esm5/lib/pipes/capitalize.pipe.js +29 -0
  72. package/esm5/lib/services/filter/filter.service.js +21 -3
  73. package/esm5/lib/services/find-person/find-person.service.js +3 -3
  74. package/esm5/lib/services/role-guard/role.guard.js +22 -15
  75. package/esm5/lib/services/role-guard/role.service.js +13 -13
  76. package/esm5/lib/services/{session-storage → storage/session-storage}/session-storage.service.js +2 -2
  77. package/esm5/lib/services/task-name/task-name.service.js +70 -0
  78. package/esm5/public-api.js +3 -3
  79. package/fesm2015/hmcts-rpx-xui-common-lib.js +782 -115
  80. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  81. package/fesm5/hmcts-rpx-xui-common-lib.js +908 -158
  82. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  83. package/hmcts-rpx-xui-common-lib.d.ts +30 -27
  84. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  85. package/lib/components/find-task-name/find-task-name.component.d.ts +41 -0
  86. package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -5
  87. package/lib/components/generic-filter/generic-filter.component.d.ts +12 -2
  88. package/lib/components/search-location/search-location.component.d.ts +1 -1
  89. package/lib/components/search-service/search-service.component.d.ts +5 -2
  90. package/lib/exui-common-lib.module.d.ts +4 -3
  91. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +14 -5
  92. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +1 -2
  93. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +1 -0
  94. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +2 -2
  95. package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +7 -0
  96. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +4 -2
  97. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +3 -3
  98. package/lib/gov-ui/components/public_api.d.ts +1 -0
  99. package/lib/gov-ui/models/checkboxes-model.d.ts +4 -7
  100. package/lib/gov-ui/models/gov-ui-config-model.d.ts +2 -0
  101. package/lib/gov-ui/models/public_api.d.ts +0 -1
  102. package/lib/gov-ui/models/radio-buttons.model.d.ts +9 -0
  103. package/lib/models/filter.model.d.ts +29 -8
  104. package/lib/models/index.d.ts +1 -0
  105. package/lib/models/person.model.d.ts +1 -1
  106. package/lib/models/task-name.model.d.ts +4 -0
  107. package/lib/pipes/capitalize.pipe.d.ts +4 -0
  108. package/lib/services/filter/filter.service.d.ts +1 -0
  109. package/lib/services/find-person/find-person.service.d.ts +1 -1
  110. package/lib/services/role-guard/role.guard.d.ts +2 -1
  111. package/lib/services/role-guard/role.service.d.ts +3 -1
  112. package/lib/services/{session-storage → storage/session-storage}/session-storage.service.d.ts +0 -0
  113. package/lib/services/task-name/task-name.service.d.ts +14 -0
  114. package/package.json +1 -1
  115. package/esm2015/lib/gov-ui/models/banner-data-model.js +0 -16
  116. package/esm2015/lib/services/session-storage/session-storage.service.js +0 -55
  117. package/esm5/lib/gov-ui/models/banner-data-model.js +0 -16
  118. package/lib/gov-ui/models/banner-data-model.d.ts +0 -4
@@ -709,7 +709,7 @@
709
709
  return this.filterSettings[id];
710
710
  }
711
711
  if (sessionStorage.getItem(id)) {
712
- return JSON.parse(window.sessionStorage.getItem(id));
712
+ return JSON.parse(sessionStorage.getItem(id));
713
713
  }
714
714
  if (localStorage.getItem(id)) {
715
715
  if (this.isSameUser(id)) {
@@ -748,6 +748,24 @@
748
748
  }
749
749
  return this.streams[id].asObservable();
750
750
  };
751
+ /**
752
+ * @param {?} id
753
+ * @return {?}
754
+ */
755
+ FilterService.prototype.clearSessionAndLocalPersistance = /**
756
+ * @param {?} id
757
+ * @return {?}
758
+ */
759
+ function (id) {
760
+ sessionStorage.removeItem(id);
761
+ localStorage.removeItem(id);
762
+ if (this.filterSettings[id] !== undefined) {
763
+ this.filterSettings[id] = null;
764
+ }
765
+ if (this.streams[id] !== undefined) {
766
+ this.streams[id].next(null);
767
+ }
768
+ };
751
769
  /**
752
770
  * @private
753
771
  * @param {?} setting
@@ -773,7 +791,7 @@
773
791
  * @return {?}
774
792
  */
775
793
  function (setting) {
776
- window.sessionStorage.setItem(setting.id, JSON.stringify(setting));
794
+ sessionStorage.setItem(setting.id, JSON.stringify(setting));
777
795
  };
778
796
  /**
779
797
  * @private
@@ -850,7 +868,7 @@
850
868
  return values.length && values.filter(( /**
851
869
  * @param {?} value
852
870
  * @return {?}
853
- */function (value) { return value; })).length >= min ? null : { minLength: true };
871
+ */function (value) { return value; })).length >= min ? null : { minlength: true };
854
872
  });
855
873
  }
856
874
  /**
@@ -900,6 +918,7 @@
900
918
  this.filterService = filterService;
901
919
  this.fb = fb;
902
920
  this.submitted = false;
921
+ this.previousSelectedNestedCheckbox = [];
903
922
  }
904
923
  Object.defineProperty(GenericFilterComponent.prototype, "config", {
905
924
  get: /**
@@ -954,10 +973,10 @@
954
973
  function (field) {
955
974
  /** @type {?} */
956
975
  var validators = [];
957
- if (field && field.minSelected) {
976
+ if (field && field.minSelected > 0) {
958
977
  validators.push(minSelectedValidator(field.minSelected));
959
978
  }
960
- if (field && field.maxSelected) {
979
+ if (field && field.maxSelected > 0) {
961
980
  validators.push(maxSelectedValidator(field.maxSelected));
962
981
  }
963
982
  return validators;
@@ -978,6 +997,16 @@
978
997
  this.formSub = this.form.valueChanges.subscribe(( /**
979
998
  * @return {?}
980
999
  */function () { return _this.submitted = false; }));
1000
+ this.filterSkillsByServices(null, this.config);
1001
+ /** @type {?} */
1002
+ var services = this.config.fields.find(( /**
1003
+ * @param {?} field
1004
+ * @return {?}
1005
+ */function (field) { return field.name === 'user-services'; }));
1006
+ if (services) {
1007
+ this.startFilterSkillsByServices(this.form, services);
1008
+ this.initValuesFromCacheForSkillsByServices();
1009
+ }
981
1010
  };
982
1011
  /**
983
1012
  * @return {?}
@@ -1158,6 +1187,11 @@
1158
1187
  * @return {?}
1159
1188
  */
1160
1189
  function (field) {
1190
+ if (field.name === 'user-services') {
1191
+ /** @type {?} */
1192
+ var selectedServices = this.getSelectedValuesForFields(this.form.controls, field);
1193
+ this.filterSkillsByServices(selectedServices, this.config);
1194
+ }
1161
1195
  if (field.radioSelectionChange && typeof field.radioSelectionChange === 'string') {
1162
1196
  var _a = __read(field.enableCondition.split('='), 2), name_3 = _a[0], value = _a[1];
1163
1197
  this.form.get(name_3).patchValue(value);
@@ -1179,6 +1213,9 @@
1179
1213
  this.filterService.persist(settings, this.config.persistence);
1180
1214
  this.filterService.givenErrors.next(null);
1181
1215
  this.submitted = false;
1216
+ if (this.config.cancelButtonCallback) {
1217
+ this.config.cancelButtonCallback();
1218
+ }
1182
1219
  };
1183
1220
  /**
1184
1221
  * @param {?} values
@@ -1224,6 +1261,32 @@
1224
1261
  }
1225
1262
  }
1226
1263
  };
1264
+ /**
1265
+ * @param {?} field
1266
+ * @param {?} i
1267
+ * @return {?}
1268
+ */
1269
+ GenericFilterComponent.prototype.checkBoxChecked = /**
1270
+ * @param {?} field
1271
+ * @param {?} i
1272
+ * @return {?}
1273
+ */
1274
+ function (field, i) {
1275
+ return (( /** @type {?} */(this.form.get(field.name))))['controls'][i]['value'];
1276
+ };
1277
+ /**
1278
+ * @param {?} values
1279
+ * @param {?} field
1280
+ * @return {?}
1281
+ */
1282
+ GenericFilterComponent.prototype.updateTaskNameControls = /**
1283
+ * @param {?} values
1284
+ * @param {?} field
1285
+ * @return {?}
1286
+ */
1287
+ function (values, field) {
1288
+ this.form.get(field.name).patchValue(values);
1289
+ };
1227
1290
  /**
1228
1291
  * @param {?} event
1229
1292
  * @param {?} form
@@ -1325,6 +1388,56 @@
1325
1388
  }
1326
1389
  }
1327
1390
  }
1391
+ if (field.name === 'user-services') {
1392
+ this.startFilterSkillsByServices(form, field);
1393
+ }
1394
+ else if (field.name === 'user-skills') {
1395
+ if (isChecked) {
1396
+ /** @type {?} */
1397
+ var selectedIndex = field.options.findIndex(( /**
1398
+ * @param {?} option
1399
+ * @return {?}
1400
+ */function (option) { return Number(option.key) === Number(event.target.value); }));
1401
+ /** @type {?} */
1402
+ var selectedCheckbox = this.form.get('user-skills').value;
1403
+ selectedCheckbox[selectedIndex] = true;
1404
+ this.form.get('user-skills').setValue(selectedCheckbox);
1405
+ this.previousSelectedNestedCheckbox.push(event.target.value);
1406
+ }
1407
+ else {
1408
+ /** @type {?} */
1409
+ var index = this.previousSelectedNestedCheckbox.indexOf(event.target.value);
1410
+ if (index !== -1) {
1411
+ this.previousSelectedNestedCheckbox.splice(index, 1);
1412
+ }
1413
+ }
1414
+ }
1415
+ };
1416
+ /**
1417
+ * @private
1418
+ * @param {?} form
1419
+ * @param {?} field
1420
+ * @return {?}
1421
+ */
1422
+ GenericFilterComponent.prototype.startFilterSkillsByServices = /**
1423
+ * @private
1424
+ * @param {?} form
1425
+ * @param {?} field
1426
+ * @return {?}
1427
+ */
1428
+ function (form, field) {
1429
+ /** @type {?} */
1430
+ var servicesArray = [];
1431
+ form.value[field.name].map(( /**
1432
+ * @param {?} service
1433
+ * @param {?} index
1434
+ * @return {?}
1435
+ */function (service, index) {
1436
+ if (service) {
1437
+ servicesArray.push(field.options[index].key);
1438
+ }
1439
+ }));
1440
+ this.filterSkillsByServices(servicesArray, this.config);
1328
1441
  };
1329
1442
  /**
1330
1443
  * @private
@@ -1437,14 +1550,14 @@
1437
1550
  this.form.addControl('findPersonControl', findPersonControl);
1438
1551
  }
1439
1552
  var _loop_1 = function (field) {
1440
- if (field.type === 'checkbox' || field.type === 'checkbox-large') {
1553
+ if (field.type === 'checkbox' || field.type === 'checkbox-large' || field.type === 'nested-checkbox') {
1441
1554
  /** @type {?} */
1442
1555
  var formArray = this_1.buildCheckBoxFormArray(field, settings);
1443
1556
  this_1.form.addControl(field.name, formArray);
1444
1557
  }
1445
- else if (field.type === 'find-location') {
1558
+ else if (field.type === 'find-location' || field.type === 'find-service') {
1446
1559
  /** @type {?} */
1447
- var formArray = this_1.buildFindLocationFormArray(field, settings);
1560
+ var formArray = this_1.buildFormArray(field, settings);
1448
1561
  this_1.form.addControl(field.name, formArray);
1449
1562
  }
1450
1563
  else {
@@ -1452,6 +1565,12 @@
1452
1565
  var validators = [];
1453
1566
  if (field.minSelected && field.minSelected > 0) {
1454
1567
  validators.push(forms.Validators.required);
1568
+ if (field.type === 'text-input') {
1569
+ validators.push(forms.Validators.minLength(field.minSelected));
1570
+ }
1571
+ if (field.type === 'email-input') {
1572
+ validators.push(forms.Validators.email);
1573
+ }
1455
1574
  }
1456
1575
  /** @type {?} */
1457
1576
  var defaultValue = null;
@@ -1483,7 +1602,7 @@
1483
1602
  });
1484
1603
  this_1.form.addControl(field.name, formGroup);
1485
1604
  }
1486
- else {
1605
+ else if (field.type !== 'group-title') {
1487
1606
  /** @type {?} */
1488
1607
  var control = new forms.FormControl(defaultValue, validators);
1489
1608
  this_1.form.addControl(field.name, control);
@@ -1579,7 +1698,7 @@
1579
1698
  * @param {?} settings
1580
1699
  * @return {?}
1581
1700
  */
1582
- GenericFilterComponent.prototype.buildFindLocationFormArray = /**
1701
+ GenericFilterComponent.prototype.buildFormArray = /**
1583
1702
  * @private
1584
1703
  * @param {?} field
1585
1704
  * @param {?} settings
@@ -1647,7 +1766,7 @@
1647
1766
  * @param {?} f
1648
1767
  * @return {?}
1649
1768
  */function (f) { return f.name === name; }));
1650
- if (field.type === 'find-location') {
1769
+ if (field.type === 'find-location' || field.type === 'find-service') {
1651
1770
  return { value: values, name: name };
1652
1771
  }
1653
1772
  else {
@@ -1678,11 +1797,11 @@
1678
1797
  var field = _c.value;
1679
1798
  /** @type {?} */
1680
1799
  var formGroup = form.get(field.name);
1681
- if (formGroup && formGroup.errors && formGroup.errors.minLength) {
1800
+ if (formGroup && formGroup.errors && (formGroup.errors.minlength || formGroup.errors.required)) {
1682
1801
  errors.push({ name: field.name, error: field.minSelectedError });
1683
1802
  }
1684
- if (formGroup && formGroup.errors && formGroup.errors.maxLength) {
1685
- errors.push({ name: field.name, error: field.minSelectedError });
1803
+ if (formGroup && formGroup.errors && formGroup.errors.maxlength) {
1804
+ errors.push({ name: field.name, error: field.maxSelectedError });
1686
1805
  }
1687
1806
  }
1688
1807
  }
@@ -1699,17 +1818,267 @@
1699
1818
  throw e_8.error;
1700
1819
  }
1701
1820
  }
1821
+ // remove duplicates
1822
+ errors = errors.filter(( /**
1823
+ * @param {?} filterError
1824
+ * @param {?} i
1825
+ * @param {?} arr
1826
+ * @return {?}
1827
+ */function (filterError, i, arr) {
1828
+ return errors.indexOf(arr.find(( /**
1829
+ * @param {?} item
1830
+ * @return {?}
1831
+ */function (item) { return item.name === filterError.name; }))) === i;
1832
+ }));
1702
1833
  if (errors.length) {
1703
1834
  this.filterService.givenErrors.next(errors);
1704
1835
  }
1705
1836
  };
1837
+ /**
1838
+ * @return {?}
1839
+ */
1840
+ GenericFilterComponent.prototype.initValuesFromCacheForSkillsByServices = /**
1841
+ * @return {?}
1842
+ */
1843
+ function () {
1844
+ var _this = this;
1845
+ /** @type {?} */
1846
+ var cachedValues = this.filteredSkillsByServicesCheckbox.map(( /**
1847
+ * @param {?} skill
1848
+ * @return {?}
1849
+ */function (skill) {
1850
+ /** @type {?} */
1851
+ var selected = false;
1852
+ if (_this.settings && _this.settings.fields) {
1853
+ /** @type {?} */
1854
+ var isSelectedUserSkill = void 0;
1855
+ /** @type {?} */
1856
+ var selectedUserSkills = _this.settings.fields.find(( /**
1857
+ * @param {?} setting
1858
+ * @return {?}
1859
+ */function (setting) { return setting.name === 'user-skills'; }));
1860
+ if (selectedUserSkills && selectedUserSkills.value && selectedUserSkills.value.length > 0) {
1861
+ isSelectedUserSkill = selectedUserSkills.value.findIndex(( /**
1862
+ * @param {?} val
1863
+ * @return {?}
1864
+ */function (val) {
1865
+ return String(val) === String(skill.key);
1866
+ }));
1867
+ selected = isSelectedUserSkill !== -1;
1868
+ }
1869
+ }
1870
+ return selected;
1871
+ }));
1872
+ this.form.get('user-skills').setValue(cachedValues);
1873
+ };
1874
+ /**
1875
+ * @param {?} services
1876
+ * @param {?} config
1877
+ * @return {?}
1878
+ */
1879
+ GenericFilterComponent.prototype.filterSkillsByServices = /**
1880
+ * @param {?} services
1881
+ * @param {?} config
1882
+ * @return {?}
1883
+ */
1884
+ function (services, config) {
1885
+ var _this = this;
1886
+ this.filteredSkillsByServices = [];
1887
+ this.filteredSkillsByServicesCheckbox = [];
1888
+ /** @type {?} */
1889
+ var userSkillsSelectField = config.fields.find(( /**
1890
+ * @param {?} f
1891
+ * @return {?}
1892
+ */function (f) { return f.name === 'user-skills' && f.type === 'group-select'; }));
1893
+ /** @type {?} */
1894
+ var userSkillsCheckboxField = config.fields.find(( /**
1895
+ * @param {?} f
1896
+ * @return {?}
1897
+ */function (f) { return f.name === 'user-skills' && f.type === 'nested-checkbox'; }));
1898
+ if (userSkillsSelectField) {
1899
+ /** @type {?} */
1900
+ var userSkills_1 = userSkillsSelectField.groupOptions;
1901
+ if (!services || services.length === 0) {
1902
+ this.filteredSkillsByServices = userSkills_1;
1903
+ }
1904
+ else {
1905
+ services.forEach(( /**
1906
+ * @param {?} s
1907
+ * @return {?}
1908
+ */function (s) {
1909
+ /** @type {?} */
1910
+ var groupOption = userSkills_1.find(( /**
1911
+ * @param {?} u
1912
+ * @return {?}
1913
+ */function (u) { return u.group.toLowerCase() === s.toLowerCase(); }));
1914
+ if (groupOption) {
1915
+ _this.filteredSkillsByServices.push(groupOption);
1916
+ }
1917
+ }));
1918
+ }
1919
+ }
1920
+ else if (userSkillsCheckboxField) {
1921
+ /** @type {?} */
1922
+ var userSkills_2 = userSkillsCheckboxField.groupOptions;
1923
+ if (!services || services.length === 0) {
1924
+ this.filteredSkillsByServices = userSkills_2;
1925
+ }
1926
+ else {
1927
+ services.forEach(( /**
1928
+ * @param {?} s
1929
+ * @return {?}
1930
+ */function (s) {
1931
+ /** @type {?} */
1932
+ var groupOption = userSkills_2.find(( /**
1933
+ * @param {?} u
1934
+ * @return {?}
1935
+ */function (u) { return u.group.toLowerCase() === s.toLowerCase(); }));
1936
+ if (groupOption) {
1937
+ _this.filteredSkillsByServices.push(groupOption);
1938
+ }
1939
+ }));
1940
+ this.filteredSkillsByServicesCheckbox = this.filteredSkillsByServices.map(( /**
1941
+ * @param {?} skill
1942
+ * @return {?}
1943
+ */function (skill) {
1944
+ return skill.options;
1945
+ })).reduce(( /**
1946
+ * @param {?} a
1947
+ * @param {?} b
1948
+ * @return {?}
1949
+ */function (a, b) {
1950
+ return a.concat(b);
1951
+ }), []);
1952
+ userSkillsCheckboxField.options = [];
1953
+ userSkillsCheckboxField.options = this.filteredSkillsByServicesCheckbox;
1954
+ this.form.setControl('user-skills', new forms.FormArray([]));
1955
+ this.filteredSkillsByServicesCheckbox.forEach(( /**
1956
+ * @return {?}
1957
+ */function () {
1958
+ (( /** @type {?} */(_this.form.get('user-skills')))).push(new forms.FormControl(false));
1959
+ }));
1960
+ /** @type {?} */
1961
+ var prevValues = this.filteredSkillsByServicesCheckbox.map(( /**
1962
+ * @param {?} skill
1963
+ * @return {?}
1964
+ */function (skill) {
1965
+ /** @type {?} */
1966
+ var selected = false;
1967
+ if (_this.settings && _this.settings.fields) {
1968
+ if (_this.previousSelectedNestedCheckbox.length > 0) {
1969
+ selected = _this.previousSelectedNestedCheckbox.includes(skill.key);
1970
+ }
1971
+ /** @type {?} */
1972
+ var isSelectedUserSkill = void 0;
1973
+ /** @type {?} */
1974
+ var selectedUserSkills = _this.settings.fields.find(( /**
1975
+ * @param {?} setting
1976
+ * @return {?}
1977
+ */function (setting) { return setting.name === 'user-skills'; }));
1978
+ if (selectedUserSkills && selectedUserSkills.value && selectedUserSkills.value.length > 0) {
1979
+ isSelectedUserSkill = selectedUserSkills.value.findIndex(( /**
1980
+ * @param {?} val
1981
+ * @return {?}
1982
+ */function (val) { return Number(val) === Number(skill.key); }));
1983
+ selected = isSelectedUserSkill !== -1;
1984
+ }
1985
+ if (_this.previousSelectedNestedCheckbox.length > 0) {
1986
+ // Pick up from previous selected
1987
+ selected = _this.previousSelectedNestedCheckbox.includes(String(skill.key));
1988
+ }
1989
+ }
1990
+ return selected;
1991
+ }));
1992
+ this.form.get('user-skills').setValue(prevValues);
1993
+ return this.filteredSkillsByServicesCheckbox;
1994
+ }
1995
+ }
1996
+ this.filteredSkillsByServices = this.sortGroupOptions(this.filteredSkillsByServices);
1997
+ return this.filteredSkillsByServices;
1998
+ };
1999
+ /**
2000
+ * @private
2001
+ * @param {?} formValues
2002
+ * @param {?} field
2003
+ * @return {?}
2004
+ */
2005
+ GenericFilterComponent.prototype.getSelectedValuesForFields = /**
2006
+ * @private
2007
+ * @param {?} formValues
2008
+ * @param {?} field
2009
+ * @return {?}
2010
+ */
2011
+ function (formValues, field) {
2012
+ /** @type {?} */
2013
+ var selectedValues = [];
2014
+ Object.keys(formValues).map(( /**
2015
+ * @param {?} name
2016
+ * @return {?}
2017
+ */function (name) {
2018
+ /** @type {?} */
2019
+ var values = formValues[name].value;
2020
+ if (name === field.name) {
2021
+ values.forEach(( /**
2022
+ * @param {?} v
2023
+ * @return {?}
2024
+ */function (v) {
2025
+ selectedValues.push(v.key);
2026
+ }));
2027
+ }
2028
+ }));
2029
+ return selectedValues;
2030
+ };
2031
+ /**
2032
+ * @private
2033
+ * @param {?} groupOptions
2034
+ * @return {?}
2035
+ */
2036
+ GenericFilterComponent.prototype.sortGroupOptions = /**
2037
+ * @private
2038
+ * @param {?} groupOptions
2039
+ * @return {?}
2040
+ */
2041
+ function (groupOptions) {
2042
+ /** @type {?} */
2043
+ var sortedResults = [];
2044
+ /** @type {?} */
2045
+ var groups = groupOptions.map(( /**
2046
+ * @param {?} go
2047
+ * @return {?}
2048
+ */function (go) { return go.group; }));
2049
+ groups.sort().forEach(( /**
2050
+ * @param {?} g
2051
+ * @return {?}
2052
+ */function (g) {
2053
+ /** @type {?} */
2054
+ var options = groupOptions.find(( /**
2055
+ * @param {?} go
2056
+ * @return {?}
2057
+ */function (go) { return go.group === g; })).options;
2058
+ /** @type {?} */
2059
+ var sortedOptions = options.sort(( /**
2060
+ * @param {?} a
2061
+ * @param {?} b
2062
+ * @return {?}
2063
+ */function (a, b) {
2064
+ return a.label.toLowerCase() > b.label.toLowerCase() ? 1 : (b.label.toLowerCase() > a.label.toLowerCase() ? -1 : 0);
2065
+ }));
2066
+ /** @type {?} */
2067
+ var result = {
2068
+ group: g,
2069
+ options: sortedOptions
2070
+ };
2071
+ sortedResults.push(result);
2072
+ }));
2073
+ return sortedResults;
2074
+ };
1706
2075
  GenericFilterComponent.decorators = [
1707
2076
  { type: i0.Component, args: [{
1708
2077
  selector: 'xuilib-generic-filter',
1709
- template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.minLength || form.get(field.name).errors?.maxLength)}\">\n <h3 *ngIf=\"field.title\" class=\"govuk-heading-s\">{{field.title}}</h3>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && form.get(field.name).errors?.minLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.minSelectedError}}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.maxSelectedError}}\n </span>\n <div class=\"govuk-body\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"field.services\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\" \n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [selectedLocations]=\"form.get(field.name)?.value\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [title]=\"field.title\"\n [enableAddServiceButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [field]=\"field\"\n [selectedServices]=\"form.get(field.name)?.value\" \n ></xuilib-find-service>\n </ng-container>\n </div>\n </div>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{config.applyButtonText || 'Apply'}}</button>\n <button *ngIf=\"config.showCancelFilterButton\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n type=\"button\"\n id=\"cancelFilter\"\n (click)=\"cancelFilter()\">{{ config.cancelButtonText || 'Cancel'}}</button>\n </div>\n </div>\n</form>\n",
2078
+ template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'group-title'\">\n <div [class]=\"field.titleClasses ? field.titleClasses: 'govuk-label govuk-label--m govuk-!-margin-bottom-4'\">\n {{ field.name | capitalize }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.minLength || form.get(field.name).errors?.maxLength)}\">\n <div *ngIf=\"field.title\" class=\"xui-generic-filter__field-title\">\n <h3 [class]=\"field.titleClasses ? field.titleClasses : 'govuk-heading-s'\" style=\"margin-bottom: 0!important\">\n {{field.title | capitalize}}\n </h3>\n <div *ngIf=\"field?.titleHint\" class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n </div>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && form.get(field.name).errors?.minLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.minSelectedError}}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.maxSelectedError}}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *ngIf=\"field.emailError && submitted && form.get(field.name).errors?.email\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.emailError}}\n </span>\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'group-select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <optgroup *ngFor = 'let grp of filteredSkillsByServices' label=\"{{grp.group | titlecase}}\">\n <option *ngFor = 'let item of grp.options' [value]=\"item.key\">{{item.label}}</option>\n </optgroup>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [selectedLocations]=\"form.get(field.name)?.value\"\n [submitted]=\"submitted\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [field]=\"field\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-task-name'\">\n <xuilib-find-task-name subTitle=\"\" (taskNameSelected)=\"updateTaskNameControls($event, field)\"\n (taskNameFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findTaskNameGroup]=\"form\"\n [selectedTaskName]=\"form.get(field.name).value.taskName\"\n [userIncluded]=\"false\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [title]=\"field.title\"\n [enableAddServiceButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [selectedServices]=\"form.get(field.name)?.value\"\n [services]=\"field.options\"\n [field]=\"field\"\n ></xuilib-find-service>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text-input'\">\n <input class=\"govuk-input\" type=\"text\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [attr.maxlength]=\"field.maxlength ? field.maxlength : null\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'email-input'\">\n <input class=\"govuk-input\" type=\"email\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n />\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-container>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{config.applyButtonText || 'Apply'}}</button>\n <button *ngIf=\"config.showCancelFilterButton\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n type=\"button\"\n id=\"cancelFilter\"\n (click)=\"cancelFilter()\">{{ config.cancelButtonText || 'Cancel'}}</button>\n </div>\n </div>\n</form>\n",
1710
2079
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1711
2080
  encapsulation: i0.ViewEncapsulation.None,
1712
- styles: [".contain-classes .elevated-break{position:relative;top:-10px}.contain-classes .xui-generic-filter .select-all{margin-bottom:10px}.contain-classes .xui-generic-filter .govuk-checkboxes{display:flex;flex-wrap:wrap}.contain-classes .xui-generic-filter .govuk-checkboxes>div{flex-grow:1;flex-shrink:0}"]
2081
+ styles: [".contain-classes .elevated-break{margin-bottom:20px}@media (min-width:40.0625em){.contain-classes .elevated-break{margin-bottom:30px}}.contain-classes .govuk-body--maxWidth480px{max-width:480px}.contain-classes .xui-generic-filter .select-all{margin-bottom:10px}.contain-classes .xui-generic-filter .govuk-checkboxes{display:flex;flex-direction:column;flex-wrap:wrap}.contain-classes .xui-generic-filter .govuk-checkboxes>div{flex-grow:1;flex-shrink:0}.contain-classes .xui-generic-filter__field-title{display:flex;align-items:center;margin-bottom:10px}.contain-classes .govuk-select{width:100%}"]
1713
2082
  }] }
1714
2083
  ];
1715
2084
  /** @nocollapse */
@@ -4053,6 +4422,17 @@
4053
4422
  return LoggedInFeatureUser;
4054
4423
  }());
4055
4424
 
4425
+ /**
4426
+ * @fileoverview added by tsickle
4427
+ * Generated from: lib/models/filter.model.ts
4428
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4429
+ */
4430
+ var RadioFilterFieldConfig = /** @class */ (function () {
4431
+ function RadioFilterFieldConfig() {
4432
+ }
4433
+ return RadioFilterFieldConfig;
4434
+ }());
4435
+
4056
4436
  /**
4057
4437
  * @fileoverview added by tsickle
4058
4438
  * Generated from: lib/models/location.model.ts
@@ -4075,7 +4455,7 @@
4075
4455
  JUDICIAL: "Judicial",
4076
4456
  CASEWORKER: "Legal Ops",
4077
4457
  ADMIN: "Admin",
4078
- CTSC: "CTSC",
4458
+ CTSC: "CTSC User",
4079
4459
  ALL: "All",
4080
4460
  };
4081
4461
  /** @enum {string} */
@@ -4087,17 +4467,6 @@
4087
4467
  ALL: "ALL",
4088
4468
  };
4089
4469
 
4090
- /**
4091
- * @fileoverview added by tsickle
4092
- * Generated from: lib/models/filter.model.ts
4093
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4094
- */
4095
- var RadioFilterFieldConfig = /** @class */ (function () {
4096
- function RadioFilterFieldConfig() {
4097
- }
4098
- return RadioFilterFieldConfig;
4099
- }());
4100
-
4101
4470
  /**
4102
4471
  * @fileoverview added by tsickle
4103
4472
  * Generated from: lib/models/index.ts
@@ -4182,7 +4551,7 @@
4182
4551
 
4183
4552
  /**
4184
4553
  * @fileoverview added by tsickle
4185
- * Generated from: lib/services/session-storage/session-storage.service.ts
4554
+ * Generated from: lib/services/storage/session-storage/session-storage.service.ts
4186
4555
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4187
4556
  */
4188
4557
  var SessionStorageService = /** @class */ (function () {
@@ -4490,7 +4859,7 @@
4490
4859
  { type: i0.Component, args: [{
4491
4860
  selector: 'exui-search-location',
4492
4861
  template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchLocation\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of locations\"\n (onSelectionChange)=\"onSelectionChange(location)\">\n {{ location.site_name }}\n </mat-option>\n <mat-option *ngIf=\"!locations.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
4493
- styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
4862
+ styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{display:inline-block;margin-right:4px;width:calc(100% - 4px)}.autocomplete__input{line-height:24px;font-size:19px}"]
4494
4863
  }] }
4495
4864
  ];
4496
4865
  /** @nocollapse */
@@ -4577,7 +4946,11 @@
4577
4946
  var field = this.fields.find(( /**
4578
4947
  * @param {?} f
4579
4948
  * @return {?}
4580
- */function (f) { return f.name === _this.field.findLocationField; }));
4949
+ */function (f) {
4950
+ if (_this.field) {
4951
+ return f.name === _this.field.findLocationField;
4952
+ }
4953
+ }));
4581
4954
  if (field) {
4582
4955
  if (typeof value === 'string') {
4583
4956
  this.serviceIds = value;
@@ -4747,8 +5120,8 @@
4747
5120
  FindLocationComponent.decorators = [
4748
5121
  { type: i0.Component, args: [{
4749
5122
  selector: 'xuilib-find-location',
4750
- template: "<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n <label id=\"input-selected-location-label\" *ngIf=\"locationTitle\">{{locationTitle}}</label>\n </div>\n <exui-search-location class=\"search-location\"\n [locations]=\"locations\"\n [selectedLocations]=\"selectedLocations\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [serviceIds]=\"serviceIds\"\n (locationInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\"></exui-search-location>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedLocations\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection.site_name }}\n </a>\n </li>\n </ul>\n</div>\n",
4751
- styles: [""]
5123
+ template: "<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n <label id=\"input-selected-location-label\" *ngIf=\"locationTitle\">{{locationTitle}}</label>\n </div>\n\n <div class=\"search-location__input-container\">\n <exui-search-location class=\"search-location__input\"\n [locations]=\"locations\"\n [selectedLocations]=\"selectedLocations\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [serviceIds]=\"serviceIds\"\n (locationInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\"></exui-search-location>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"enableAddLocationButton\">\n Add\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedLocations\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection.site_name }}\n </a>\n </li>\n </ul>\n</div>\n",
5124
+ styles: [".search-location__input-container{display:flex}.search-location .auto-complete-container{min-width:unset;width:calc(100% - 4px)}.search-location__input{flex:1 0 auto}.search-location .govuk-button--secondary{background-color:#ddd}"]
4752
5125
  }] }
4753
5126
  ];
4754
5127
  FindLocationComponent.propDecorators = {
@@ -5483,7 +5856,7 @@
5483
5856
  FindServiceComponent.decorators = [
5484
5857
  { type: i0.Component, args: [{
5485
5858
  selector: 'xuilib-find-service',
5486
- template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div>\n <label id=\"input-selected-service-label\" *ngIf=\"serviceTitle\">{{serviceTitle}}</label>\n </div>\n <exui-search-service class=\"search-service\"\n [services]=\"services\"\n [selectedServices]=\"selectedServices\"\n [delay]=\"300\"\n [disabled]=\"disabled\"></exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addService()\" class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" \n data-module=\"govuk-button\" *ngIf=\"enableAddServiceButton\" id=\"add-service\">\n Add\n </a>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"service-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" href=\"javascript:void(0)\">\n {{ selection.name }}\n </a>\n </li>\n </ul>\n </div>",
5859
+ template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div>\n <label id=\"input-selected-service-label\" *ngIf=\"serviceTitle\">{{serviceTitle}}</label>\n </div>\n <exui-search-service class=\"search-service\"\n [services]=\"services\"\n [selectedServices]=\"selectedServices\"\n [delay]=\"300\"\n [disabled]=\"disabled\"></exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addService()\" class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\" *ngIf=\"enableAddServiceButton\" id=\"add-service\">\n Add\n </a>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"service-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" href=\"javascript:void(0)\">\n {{ selection.name }}\n </a>\n </li>\n </ul>\n </div>\n",
5487
5860
  styles: ["#add-service{background-color:#ddd}"]
5488
5861
  }] }
5489
5862
  ];
@@ -5503,59 +5876,271 @@
5503
5876
 
5504
5877
  /**
5505
5878
  * @fileoverview added by tsickle
5506
- * Generated from: lib/components/search-judicials/search-judicials.component.ts
5879
+ * Generated from: lib/services/task-name/task-name.service.ts
5507
5880
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5508
5881
  */
5509
- var SearchJudicialsComponent = /** @class */ (function () {
5510
- function SearchJudicialsComponent(judicialService, fb) {
5511
- this.judicialService = judicialService;
5512
- this.disabled = null;
5513
- this.selectedJudicials = [];
5514
- this.submitted = true;
5515
- this.placeholderContent = '';
5516
- this.showAutocomplete = false;
5517
- this.judicialChanged = new i0.EventEmitter();
5518
- this.idValue = '';
5519
- this.errorMessage = 'You must select a name';
5520
- this.serviceId = '';
5521
- this.minSearchCharacters = 3;
5522
- this.keyUpSubject$ = new rxjs.Subject();
5523
- this.searchInProgress = false;
5524
- this.formGroup = fb.group({
5525
- formControl: [null],
5526
- selectedFormControl: [null]
5527
- });
5882
+ var TaskNameService = /** @class */ (function () {
5883
+ function TaskNameService(http, sessionStorageService) {
5884
+ this.http = http;
5885
+ this.sessionStorageService = sessionStorageService;
5528
5886
  }
5529
5887
  /**
5530
- * @return {?}
5888
+ * @return Observable<any[]>: Array of taskName in Observable
5531
5889
  */
5532
- SearchJudicialsComponent.prototype.ngOnInit = /**
5533
- * @return {?}
5890
+ /**
5891
+ * @return {?} Observable<any[]>: Array of taskName in Observable
5892
+ */
5893
+ TaskNameService.prototype.getTaskName = /**
5894
+ * @return {?} Observable<any[]>: Array of taskName in Observable
5534
5895
  */
5535
5896
  function () {
5536
5897
  var _this = this;
5537
- this.displayedJudicials = [];
5538
- if (this.control) {
5539
- if (this.formGroup && this.formGroup.controls) {
5540
- this.formGroup.controls.selectedFormControl = this.control;
5541
- this.formGroup.controls.formControl.setValue(this.getControlValueDisplayText());
5542
- }
5898
+ if (this.sessionStorageService.getItem(TaskNameService.taskNamesKey)) {
5899
+ /** @type {?} */
5900
+ var taskNames = JSON.parse(this.sessionStorageService.getItem(TaskNameService.taskNamesKey));
5901
+ return rxjs.of(( /** @type {?} */(taskNames)));
5543
5902
  }
5544
- this.keyUpSubject$.pipe(operators.debounceTime(500)).subscribe(( /**
5545
- * @param {?} searchValue
5903
+ return this.http.get("/workallocation/taskNames").pipe(operators.tap(( /**
5904
+ * @param {?} taskNames
5546
5905
  * @return {?}
5547
- */function (searchValue) { return _this.search(( /** @type {?} */(searchValue))); }));
5548
- };
5549
- /**
5550
- * @return {?}
5551
- */
5552
- SearchJudicialsComponent.prototype.onKeyDown = /**
5553
- * @return {?}
5554
- */
5555
- function () {
5556
- this.judicialChanged.emit();
5906
+ */function (taskNames) { return _this.sessionStorageService.setItem(TaskNameService.taskNamesKey, JSON.stringify(taskNames)); })));
5557
5907
  };
5558
- /**
5908
+ TaskNameService.taskNamesKey = 'taskNames';
5909
+ TaskNameService.decorators = [
5910
+ { type: i0.Injectable, args: [{
5911
+ providedIn: 'root'
5912
+ },] }
5913
+ ];
5914
+ /** @nocollapse */
5915
+ TaskNameService.ctorParameters = function () {
5916
+ return [
5917
+ { type: i1.HttpClient },
5918
+ { type: SessionStorageService }
5919
+ ];
5920
+ };
5921
+ /** @nocollapse */ TaskNameService.ngInjectableDef = i0.defineInjectable({ factory: function TaskNameService_Factory() { return new TaskNameService(i0.inject(i1.HttpClient), i0.inject(SessionStorageService)); }, token: TaskNameService, providedIn: "root" });
5922
+ return TaskNameService;
5923
+ }());
5924
+
5925
+ /**
5926
+ * @fileoverview added by tsickle
5927
+ * Generated from: lib/components/find-task-name/find-task-name.component.ts
5928
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5929
+ */
5930
+ var FindTaskNameComponent = /** @class */ (function () {
5931
+ function FindTaskNameComponent(cd, taskService) {
5932
+ this.cd = cd;
5933
+ this.taskService = taskService;
5934
+ this.taskNameSelected = new i0.EventEmitter();
5935
+ this.taskNameFieldChanged = new i0.EventEmitter();
5936
+ this.boldTitle = 'Find the task name';
5937
+ this.subTitle = 'Type the name of the task name and select them.';
5938
+ this.domain = PersonRole.ALL;
5939
+ this.findTaskNameGroup = new forms.FormGroup({});
5940
+ this.submitted = true;
5941
+ this.userIncluded = false;
5942
+ this.placeholderContent = '';
5943
+ this.isNoResultsShown = true;
5944
+ this.showUpdatedColor = false;
5945
+ this.selectedTaskNames = [];
5946
+ this.errorMessage = 'You must select a name';
5947
+ this.idValue = '';
5948
+ this.services = ['IA'];
5949
+ this.disabled = null;
5950
+ this.showAutocomplete = false;
5951
+ this.filteredOptions = [];
5952
+ this.minSearchCharacters = 1;
5953
+ this.searchTerm = '';
5954
+ }
5955
+ /**
5956
+ * @return {?}
5957
+ */
5958
+ FindTaskNameComponent.prototype.ngOnDestroy = /**
5959
+ * @return {?}
5960
+ */
5961
+ function () {
5962
+ if (this.sub) {
5963
+ this.sub.unsubscribe();
5964
+ }
5965
+ };
5966
+ /**
5967
+ * @return {?}
5968
+ */
5969
+ FindTaskNameComponent.prototype.ngOnChanges = /**
5970
+ * @return {?}
5971
+ */
5972
+ function () {
5973
+ var _this = this;
5974
+ this.findTaskNameControl = new forms.FormControl(this.selectedTaskName);
5975
+ this.findTaskNameGroup.addControl('findTaskNameControl', this.findTaskNameControl);
5976
+ this.sub = this.findTaskNameControl.valueChanges
5977
+ .pipe(operators.tap(( /**
5978
+ * @return {?}
5979
+ */function () { return _this.showAutocomplete = false; })), operators.tap(( /**
5980
+ * @return {?}
5981
+ */function () { return _this.filteredOptions = []; })), operators.tap(( /**
5982
+ * @param {?} term
5983
+ * @return {?}
5984
+ */function (term) { return _this.searchTerm = term; })), operators.debounceTime(300), operators.tap(( /**
5985
+ * @param {?} searchTerm
5986
+ * @return {?}
5987
+ */function (searchTerm) {
5988
+ if (!searchTerm) {
5989
+ _this.taskNameSelected.emit('');
5990
+ }
5991
+ return searchTerm;
5992
+ })),
5993
+ // tap((searchTerm) => typeof searchTerm === 'string' ? this.taskNameSelected.emit('null') : void 0),
5994
+ operators.filter(( /**
5995
+ * @param {?} searchTerm
5996
+ * @return {?}
5997
+ */function (searchTerm) { return searchTerm && searchTerm.length >= _this.minSearchCharacters; })), operators.mergeMap(( /**
5998
+ * @return {?}
5999
+ */function () { return _this.getTaskName(); }))).subscribe(( /**
6000
+ * @param {?} taskNameModel
6001
+ * @return {?}
6002
+ */function (taskNameModel) {
6003
+ _this.filteredOptions = taskNameModel.map(( /**
6004
+ * @param {?} task
6005
+ * @return {?}
6006
+ */function (task) { return task.taskName; }));
6007
+ if (_this.searchTerm) {
6008
+ _this.filteredOptions = _this.filteredOptions.filter(( /**
6009
+ * @param {?} taskName
6010
+ * @return {?}
6011
+ */function (taskName) { return taskName.toLocaleLowerCase().includes(_this.searchTerm.toLocaleLowerCase()); })).map(( /**
6012
+ * @param {?} taskName
6013
+ * @return {?}
6014
+ */function (taskName) { return taskName; }));
6015
+ }
6016
+ _this.cd.detectChanges();
6017
+ }));
6018
+ };
6019
+ /**
6020
+ * @return {?}
6021
+ */
6022
+ FindTaskNameComponent.prototype.getTaskName = /**
6023
+ * @return {?}
6024
+ */
6025
+ function () {
6026
+ return this.taskService.getTaskName();
6027
+ };
6028
+ /**
6029
+ * @param {?} selectedTaskName
6030
+ * @return {?}
6031
+ */
6032
+ FindTaskNameComponent.prototype.onSelectionChange = /**
6033
+ * @param {?} selectedTaskName
6034
+ * @return {?}
6035
+ */
6036
+ function (selectedTaskName) {
6037
+ if (selectedTaskName) {
6038
+ this.taskNameSelected.emit(selectedTaskName);
6039
+ this.findTaskNameControl.setValue(selectedTaskName);
6040
+ }
6041
+ };
6042
+ /**
6043
+ * @return {?}
6044
+ */
6045
+ FindTaskNameComponent.prototype.onInput = /**
6046
+ * @return {?}
6047
+ */
6048
+ function () {
6049
+ this.taskNameFieldChanged.emit();
6050
+ };
6051
+ FindTaskNameComponent.decorators = [
6052
+ { type: i0.Component, args: [{
6053
+ selector: 'xuilib-find-task-name',
6054
+ template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findTaskNameGroup\"\n [ngClass]=\"{'form-group-error': findTaskNameGroup.get('findTaskNameControl')?.invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findTaskNameGroup && findTaskNameGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findTaskNameGroup.errors.error ? findTaskNameGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectTaskName{{idValue}}\" type=\"text\" aria-label=\"select a task name\"\n formControlName=\"findTaskNameControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{ option }}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n",
6055
+ styles: [""]
6056
+ }] }
6057
+ ];
6058
+ /** @nocollapse */
6059
+ FindTaskNameComponent.ctorParameters = function () {
6060
+ return [
6061
+ { type: i0.ChangeDetectorRef },
6062
+ { type: TaskNameService }
6063
+ ];
6064
+ };
6065
+ FindTaskNameComponent.propDecorators = {
6066
+ taskNameSelected: [{ type: i0.Output }],
6067
+ taskNameFieldChanged: [{ type: i0.Output }],
6068
+ title: [{ type: i0.Input }],
6069
+ boldTitle: [{ type: i0.Input }],
6070
+ subTitle: [{ type: i0.Input }],
6071
+ domain: [{ type: i0.Input }],
6072
+ findTaskNameGroup: [{ type: i0.Input }],
6073
+ selectedTaskName: [{ type: i0.Input }],
6074
+ submitted: [{ type: i0.Input }],
6075
+ userIncluded: [{ type: i0.Input }],
6076
+ assignedUser: [{ type: i0.Input }],
6077
+ placeholderContent: [{ type: i0.Input }],
6078
+ isNoResultsShown: [{ type: i0.Input }],
6079
+ showUpdatedColor: [{ type: i0.Input }],
6080
+ selectedTaskNames: [{ type: i0.Input }],
6081
+ errorMessage: [{ type: i0.Input }],
6082
+ idValue: [{ type: i0.Input }],
6083
+ services: [{ type: i0.Input }],
6084
+ disabled: [{ type: i0.Input }]
6085
+ };
6086
+ return FindTaskNameComponent;
6087
+ }());
6088
+
6089
+ /**
6090
+ * @fileoverview added by tsickle
6091
+ * Generated from: lib/components/search-judicials/search-judicials.component.ts
6092
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6093
+ */
6094
+ var SearchJudicialsComponent = /** @class */ (function () {
6095
+ function SearchJudicialsComponent(judicialService, fb) {
6096
+ this.judicialService = judicialService;
6097
+ this.disabled = null;
6098
+ this.selectedJudicials = [];
6099
+ this.submitted = true;
6100
+ this.placeholderContent = '';
6101
+ this.showAutocomplete = false;
6102
+ this.judicialChanged = new i0.EventEmitter();
6103
+ this.idValue = '';
6104
+ this.errorMessage = 'You must select a name';
6105
+ this.serviceId = '';
6106
+ this.minSearchCharacters = 3;
6107
+ this.keyUpSubject$ = new rxjs.Subject();
6108
+ this.searchInProgress = false;
6109
+ this.formGroup = fb.group({
6110
+ formControl: [null],
6111
+ selectedFormControl: [null]
6112
+ });
6113
+ }
6114
+ /**
6115
+ * @return {?}
6116
+ */
6117
+ SearchJudicialsComponent.prototype.ngOnInit = /**
6118
+ * @return {?}
6119
+ */
6120
+ function () {
6121
+ var _this = this;
6122
+ this.displayedJudicials = [];
6123
+ if (this.control) {
6124
+ if (this.formGroup && this.formGroup.controls) {
6125
+ this.formGroup.controls.selectedFormControl = this.control;
6126
+ this.formGroup.controls.formControl.setValue(this.getControlValueDisplayText());
6127
+ }
6128
+ }
6129
+ this.keyUpSubject$.pipe(operators.debounceTime(500)).subscribe(( /**
6130
+ * @param {?} searchValue
6131
+ * @return {?}
6132
+ */function (searchValue) { return _this.search(( /** @type {?} */(searchValue))); }));
6133
+ };
6134
+ /**
6135
+ * @return {?}
6136
+ */
6137
+ SearchJudicialsComponent.prototype.onKeyDown = /**
6138
+ * @return {?}
6139
+ */
6140
+ function () {
6141
+ this.judicialChanged.emit();
6142
+ };
6143
+ /**
5559
6144
  * @param {?} event
5560
6145
  * @return {?}
5561
6146
  */
@@ -5747,7 +6332,9 @@
5747
6332
  */
5748
6333
  var SearchServiceComponent = /** @class */ (function () {
5749
6334
  function SearchServiceComponent() {
6335
+ this.services = [];
5750
6336
  this.showAutocomplete = false;
6337
+ this.serviceChanged = new i0.EventEmitter();
5751
6338
  this.minSearchCharacters = 3;
5752
6339
  this.term = '';
5753
6340
  }
@@ -5761,18 +6348,25 @@
5761
6348
  // Todo
5762
6349
  };
5763
6350
  /**
6351
+ * @param {?} key
5764
6352
  * @return {?}
5765
6353
  */
5766
- SearchServiceComponent.prototype.onSelectionChange = /**
6354
+ SearchServiceComponent.prototype.onSelectionChanged = /**
6355
+ * @param {?} key
5767
6356
  * @return {?}
5768
6357
  */
5769
- function () {
5770
- // Todo
6358
+ function (key) {
6359
+ /** @type {?} */
6360
+ var selectedService = this.services.find(( /**
6361
+ * @param {?} s
6362
+ * @return {?}
6363
+ */function (s) { return s.key === key; }));
6364
+ this.serviceChanged.emit(selectedService);
5771
6365
  };
5772
6366
  SearchServiceComponent.decorators = [
5773
6367
  { type: i0.Component, args: [{
5774
6368
  selector: 'exui-search-service',
5775
- template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputServiceSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form?.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchService\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n <mat-option *ngFor=\"let service of services\" (onSelectionChange)=\"onSelectionChange()\">\n {{ service.name }}\n </mat-option>\n <mat-option *ngIf=\"!services?.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
6369
+ template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputServiceSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form?.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchService\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\"\n (change)=\"onSelectionChanged($event.target.value)\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n <mat-option *ngFor=\"let service of services\" (onSelectionChange)=\"onSelectionChanged($event.target.value)\">\n {{ service.name }}\n </mat-option>\n <mat-option *ngIf=\"!services?.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
5776
6370
  styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:250px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
5777
6371
  }] }
5778
6372
  ];
@@ -5782,7 +6376,8 @@
5782
6376
  disabled: [{ type: i0.Input }],
5783
6377
  delay: [{ type: i0.Input }],
5784
6378
  form: [{ type: i0.Input }],
5785
- showAutocomplete: [{ type: i0.Input }]
6379
+ showAutocomplete: [{ type: i0.Input }],
6380
+ serviceChanged: [{ type: i0.Output }]
5786
6381
  };
5787
6382
  return SearchServiceComponent;
5788
6383
  }());
@@ -6070,6 +6665,57 @@
6070
6665
  return GovUkCheckboxComponent;
6071
6666
  }());
6072
6667
 
6668
+ /**
6669
+ * @fileoverview added by tsickle
6670
+ * Generated from: lib/gov-ui/util/helpers/html-templates.helper.ts
6671
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6672
+ */
6673
+ /*
6674
+ * Helper Class
6675
+ * Used for dynamic templates manipulation
6676
+ * */
6677
+ var /*
6678
+ * Helper Class
6679
+ * Used for dynamic templates manipulation
6680
+ * */ HtmlTemplatesHelper = /** @class */ (function () {
6681
+ function HtmlTemplatesHelper() {
6682
+ }
6683
+ /*
6684
+ * Sets described by string depending if
6685
+ * there is an error, error and hit or nothing
6686
+ * */
6687
+ /*
6688
+ * Sets described by string depending if
6689
+ * there is an error, error and hit or nothing
6690
+ * */
6691
+ /**
6692
+ * @param {?} errorMessage
6693
+ * @param {?} config
6694
+ * @return {?}
6695
+ */
6696
+ HtmlTemplatesHelper.setDescribedBy = /*
6697
+ * Sets described by string depending if
6698
+ * there is an error, error and hit or nothing
6699
+ * */
6700
+ /**
6701
+ * @param {?} errorMessage
6702
+ * @param {?} config
6703
+ * @return {?}
6704
+ */
6705
+ function (errorMessage, config) {
6706
+ if (!errorMessage) {
6707
+ return config.hint ? config.id + "-hint" : null;
6708
+ }
6709
+ else if (errorMessage && errorMessage.isInvalid) {
6710
+ return config.hint ? config.id + "-hint " + config.id + "-error" : config.id + "-error";
6711
+ }
6712
+ else {
6713
+ return config.hint ? config.id + "-hint" : null;
6714
+ }
6715
+ };
6716
+ return HtmlTemplatesHelper;
6717
+ }());
6718
+
6073
6719
  /**
6074
6720
  * @fileoverview added by tsickle
6075
6721
  * Generated from: lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.ts
@@ -6085,15 +6731,99 @@
6085
6731
  var GovUkCheckboxesComponent = /** @class */ (function () {
6086
6732
  function GovUkCheckboxesComponent() {
6087
6733
  }
6734
+ /**
6735
+ * @return {?}
6736
+ */
6737
+ GovUkCheckboxesComponent.prototype.ngOnInit = /**
6738
+ * @return {?}
6739
+ */
6740
+ function () {
6741
+ this.columns = this.setColumns();
6742
+ };
6743
+ /**
6744
+ * @return {?}
6745
+ */
6746
+ GovUkCheckboxesComponent.prototype.setDescribedBy = /**
6747
+ * @return {?}
6748
+ */
6749
+ function () {
6750
+ return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);
6751
+ };
6752
+ /**
6753
+ * @param {?} checked
6754
+ * @param {?} value
6755
+ * @return {?}
6756
+ */
6757
+ GovUkCheckboxesComponent.prototype.onChecked = /**
6758
+ * @param {?} checked
6759
+ * @param {?} value
6760
+ * @return {?}
6761
+ */
6762
+ function (checked, value) {
6763
+ /** @type {?} */
6764
+ var formControl = this.group.get(this.config.name);
6765
+ /** @type {?} */
6766
+ var array = formControl.value ? formControl.value : [];
6767
+ if (!checked) {
6768
+ /** @type {?} */
6769
+ var modifiedArray = array.filter(( /**
6770
+ * @param {?} item
6771
+ * @return {?}
6772
+ */function (item) { return item !== value; }));
6773
+ formControl.setValue(modifiedArray);
6774
+ }
6775
+ else {
6776
+ formControl.setValue(__spread(array, [value]));
6777
+ }
6778
+ };
6779
+ /**
6780
+ * @param {?} value
6781
+ * @return {?}
6782
+ */
6783
+ GovUkCheckboxesComponent.prototype.isChecked = /**
6784
+ * @param {?} value
6785
+ * @return {?}
6786
+ */
6787
+ function (value) {
6788
+ /** @type {?} */
6789
+ var formControl = this.group.get(this.config.name);
6790
+ return formControl.value && formControl.value.includes(value);
6791
+ };
6792
+ /**
6793
+ * @private
6794
+ * @return {?}
6795
+ */
6796
+ GovUkCheckboxesComponent.prototype.setColumns = /**
6797
+ * @private
6798
+ * @return {?}
6799
+ */
6800
+ function () {
6801
+ if (this.config.rows && this.config.rows > 1) {
6802
+ /** @type {?} */
6803
+ var array = [];
6804
+ for (var i = 0; i < this.items.length; i += this.config.rows) {
6805
+ /** @type {?} */
6806
+ var arrayChunk = this.items.slice(i, i + this.config.rows);
6807
+ array.push(arrayChunk);
6808
+ }
6809
+ return array;
6810
+ }
6811
+ else {
6812
+ return [this.items];
6813
+ }
6814
+ };
6088
6815
  GovUkCheckboxesComponent.decorators = [
6089
6816
  { type: i0.Component, args: [{
6090
6817
  selector: 'xuilib-gov-uk-checkboxes',
6091
- template: "<xuilib-gov-uk-form-group-wrapper\n[error]=\"errors\"\n[config]=\"options.config\"\n[group]=\"options.key\">\n<div class=\"govuk-checkboxes\">\n <xuilib-gov-checkbox *ngFor=\"let item of options.items\"\n [group]=\"item.group\"\n [config]=\"item.config\">\n </xuilib-gov-checkbox>\n</div>\n</xuilib-gov-uk-form-group-wrapper>"
6818
+ template: "<div class=\"govuk-form-group gov-uk-input\" [formGroup]=\"group\"\n [ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n <xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n <span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n </span>\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n <div class=\"govuk-checkboxes govuk-checkboxes--small govuk-checkboxes-multi-column\" data-module=\"govuk-checkboxes\">\n <div class=\"govuk-checkboxes-multi-column__single\" *ngFor=\"let columnItems of columns\">\n <div class=\"govuk-checkboxes__item\" *ngFor=\"let item of columnItems\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [id]=\"item.id\" [name]=\"item.id\" [checked]=\"isChecked(item.value)\" [value]=\"item.value\"\n [attr.aria-describedby]=\"setDescribedBy()\"\n (change)=\"onChecked($event.target.checked, item.value)\"\n >\n <label class=\"govuk-label govuk-checkboxes__label\" [for]=\"item.id\">\n {{ item.label }}\n </label>\n <div *ngIf=\"item.hint\" class=\"govuk-hint govuk-checkboxes__hint\">\n {{ item.hint }}\n </div>\n </div>\n </div>\n </div>\n</div>\n",
6819
+ styles: [".govuk-checkboxes-multi-column{display:flex;flex-wrap:wrap;margin-left:-20px;margin-right:-20px}.govuk-checkboxes-multi-column__single{padding-left:20px;padding-right:20px}"]
6092
6820
  }] }
6093
6821
  ];
6094
6822
  GovUkCheckboxesComponent.propDecorators = {
6095
- options: [{ type: i0.Input }],
6096
- errors: [{ type: i0.Input }]
6823
+ group: [{ type: i0.Input }],
6824
+ config: [{ type: i0.Input }],
6825
+ items: [{ type: i0.Input }],
6826
+ errorMessage: [{ type: i0.Input }]
6097
6827
  };
6098
6828
  return GovUkCheckboxesComponent;
6099
6829
  }());
@@ -6243,57 +6973,6 @@
6243
6973
  return GovUkErrorMessageComponent;
6244
6974
  }());
6245
6975
 
6246
- /**
6247
- * @fileoverview added by tsickle
6248
- * Generated from: lib/gov-ui/util/helpers/html-templates.helper.ts
6249
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6250
- */
6251
- /*
6252
- * Helper Class
6253
- * Used for dynamic templates manipulation
6254
- * */
6255
- var /*
6256
- * Helper Class
6257
- * Used for dynamic templates manipulation
6258
- * */ HtmlTemplatesHelper = /** @class */ (function () {
6259
- function HtmlTemplatesHelper() {
6260
- }
6261
- /*
6262
- * Sets described by string depending if
6263
- * there is an error, error and hit or nothing
6264
- * */
6265
- /*
6266
- * Sets described by string depending if
6267
- * there is an error, error and hit or nothing
6268
- * */
6269
- /**
6270
- * @param {?} errorMessage
6271
- * @param {?} config
6272
- * @return {?}
6273
- */
6274
- HtmlTemplatesHelper.setDescribedBy = /*
6275
- * Sets described by string depending if
6276
- * there is an error, error and hit or nothing
6277
- * */
6278
- /**
6279
- * @param {?} errorMessage
6280
- * @param {?} config
6281
- * @return {?}
6282
- */
6283
- function (errorMessage, config) {
6284
- if (!errorMessage) {
6285
- return config.hint ? config.id + "-hint" : null;
6286
- }
6287
- else if (errorMessage && errorMessage.isInvalid) {
6288
- return config.hint ? config.id + "-hint " + config.id + "-error" : config.id + "-error";
6289
- }
6290
- else {
6291
- return config.hint ? config.id + "-hint" : null;
6292
- }
6293
- };
6294
- return HtmlTemplatesHelper;
6295
- }());
6296
-
6297
6976
  /**
6298
6977
  * @fileoverview added by tsickle
6299
6978
  * Generated from: lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.ts
@@ -6441,7 +7120,7 @@
6441
7120
  * @return {?}
6442
7121
  */
6443
7122
  function () {
6444
- this.config.classes = 'govuk-label--m';
7123
+ this.config.classes = typeof (this.config.classes) === 'string' ? this.config.classes : 'govuk-label govuk-label--m';
6445
7124
  };
6446
7125
  /**
6447
7126
  * @return {?}
@@ -6455,7 +7134,7 @@
6455
7134
  GovUkInputComponent.decorators = [
6456
7135
  { type: i0.Component, args: [{
6457
7136
  selector: 'xuilib-gov-uk-input',
6458
- template: "<div class=\"govuk-form-group gov-uk-input\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<input class=\"govuk-input\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\"\n [name]=\"config.name\"\n [type]=\"config.type\"\n [attr.aria-invalid]=\"errorMessage?.isInvalid\"\n [formControlName]=\"config.name\"\n [attr.aria-describedby]='setDescribedBy()'>\n</div>\n",
7137
+ template: "<div class=\"govuk-form-group gov-uk-input\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<input class=\"govuk-input\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\"\n [name]=\"config.name\"\n [type]=\"config.type\"\n [attr.aria-invalid]=\"errorMessage?.isInvalid\"\n [formControlName]=\"config.name\"\n [attr.aria-describedby]='setDescribedBy()'>\n</div>\n",
6459
7138
  styles: [".gov-uk-input input:disabled{background:#b1b4b6}"]
6460
7139
  }] }
6461
7140
  ];
@@ -6486,7 +7165,8 @@
6486
7165
  GovUkLabelComponent.decorators = [
6487
7166
  { type: i0.Component, args: [{
6488
7167
  selector: 'xuilib-gov-label',
6489
- template: "<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n</h1>\n<ng-template #noHeading>\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n</ng-template>"
7168
+ template: "<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</h1>\n<ng-template #noHeading>\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</ng-template>\n",
7169
+ styles: [".govuk-label{display:flex;align-items:center;flex-wrap:wrap}.govuk-label__optional{font-weight:400;font-size:16px;display:inline-block;margin-left:.75rem}"]
6490
7170
  }] }
6491
7171
  ];
6492
7172
  /** @nocollapse */
@@ -6605,7 +7285,7 @@
6605
7285
  GovUkSelectComponent.decorators = [
6606
7286
  { type: i0.Component, args: [{
6607
7287
  selector: 'xuilib-gov-select',
6608
- template: "<div class=\"govuk-form-group\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<select class=\"govuk-select\" [id]=\"config.id\" [name]=\"config.id\" [formControlName]=\"config.id\" [attr.aria-describedby]='setDescribedBy()'>\n<option value=\"{{item.value}}\" *ngFor=\"let item of items\">{{item.label}}</option>\n</select>\n</div>"
7288
+ template: "<div class=\"govuk-form-group\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<select class=\"govuk-select\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [id]=\"config.id\" [name]=\"config.id\" [formControlName]=\"config.id\" [attr.aria-describedby]='setDescribedBy()'>\n <option value=\"{{item.value}}\" *ngFor=\"let item of items\">{{item.label}}</option>\n</select>\n</div>\n"
6609
7289
  }] }
6610
7290
  ];
6611
7291
  /** @nocollapse */
@@ -6707,27 +7387,25 @@
6707
7387
  * Generated from: lib/gov-ui/components/hmcts-banner/hmcts-banner.component.ts
6708
7388
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6709
7389
  */
6710
- /*
6711
- * Hmcts Banner
6712
- * Responsible for displaying prominent message and related actions
6713
- * @prop message to display
6714
- * @prop type
6715
- * */
6716
7390
  var HmctsBannerComponent = /** @class */ (function () {
6717
7391
  function HmctsBannerComponent() {
7392
+ this.title = '';
7393
+ this.showMessageIcon = false;
7394
+ this.messageBoldText = false;
6718
7395
  }
6719
7396
  HmctsBannerComponent.decorators = [
6720
7397
  { type: i0.Component, args: [{
6721
7398
  selector: 'xuilib-hmcts-banner',
6722
- template: "<div class=\"hmcts-banner hmcts-banner--{{type}}\">\n <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\" /></svg>\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">{{type}}</span>\n {{message}}\n </div>\n</div>",
6723
- styles: [":host{display:block;width:100%}"]
7399
+ template: "<ng-container *ngIf=\"message && type\">\n <div *ngIf=\"title\"\n class=\"hmcts-banner-title hmcts-banner-title--{{ type }}\">\n {{ title }}\n </div>\n <div class=\"hmcts-banner hmcts-banner--{{ type }}\">\n <ng-container *ngIf=\"showMessageIcon\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'warning'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--warning\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n </svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'success'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--success\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\"></path>\n </svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'information'\">\n <svg class=\"hmcts-banner__icon hmcts-banner__icon--information\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\"></path>\n </svg>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div class=\"hmcts-banner__message\" [class.hmcts-banner__message--bold]=\"messageBoldText\">\n <span class=\"hmcts-banner__assistive\">{{ type }}</span>\n <span class=\"hmcts-banner__message-text govuk-!-font-weight-bold\">{{ message }}</span>\n </div>\n </div>\n</ng-container>\n",
7400
+ styles: [".hmcts-banner-title{color:#fff;background-color:#1d70b8;font-weight:700;padding:10px 15px 5px}.hmcts-banner-title--success{background-color:#00703c}.hmcts-banner-title--warning{background-color:#d4351c}.hmcts-banner__message--bold{font-weight:700}"]
6724
7401
  }] }
6725
7402
  ];
6726
- /** @nocollapse */
6727
- HmctsBannerComponent.ctorParameters = function () { return []; };
6728
7403
  HmctsBannerComponent.propDecorators = {
7404
+ message: [{ type: i0.Input }],
6729
7405
  type: [{ type: i0.Input }],
6730
- message: [{ type: i0.Input }]
7406
+ title: [{ type: i0.Input }],
7407
+ showMessageIcon: [{ type: i0.Input }],
7408
+ messageBoldText: [{ type: i0.Input }]
6731
7409
  };
6732
7410
  return HmctsBannerComponent;
6733
7411
  }());
@@ -6907,7 +7585,7 @@
6907
7585
  HmctsMainWrapperComponent.decorators = [
6908
7586
  { type: i0.Component, args: [{
6909
7587
  selector: 'xuilib-hmcts-main-wrapper',
6910
- template: "<a *ngIf=\"hasBackLink\" [routerLink]=\"backLink\" (click)=\"onGoBack()\" class=\"govuk-back-link\">Back</a>\n<main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-hmcts-error-summary\n *ngIf=\"summaryErrors && !summaryErrors.isFromValid\"\n [errorMessages]=\"summaryErrors.items\"\n [header]=\"summaryErrors.header\"\n [showWarningMessage]=\"showWarningMessage\">\n </xuilib-hmcts-error-summary>\n <xuilib-hmcts-banner *ngIf=\"bannerData\" [message]=\"bannerData.message\" [type]=\"bannerData.type\"></xuilib-hmcts-banner>\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">{{title}}</h1>\n <ng-content></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-third\" *ngIf=\"actionButtons?.length > 0\">\n <div class=\"hmcts-page-heading__actions-wrapper\">\n <a\n *ngFor=\"let actionButton of actionButtons\"\n (click)=\"actionButton.action()\"\n role=\"button\"\n draggable=\"false\"\n class=\"govuk-button {{ actionButton.class }}\"\n >{{ actionButton.name }}</a>\n </div>\n </div>\n </div>\n</main>\n"
7588
+ template: "<a *ngIf=\"hasBackLink\" [routerLink]=\"backLink\" (click)=\"onGoBack()\" class=\"govuk-back-link\">Back</a>\n<main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-hmcts-error-summary\n *ngIf=\"summaryErrors && !summaryErrors.isFromValid\"\n [errorMessages]=\"summaryErrors.items\"\n [header]=\"summaryErrors.header\"\n [showWarningMessage]=\"showWarningMessage\">\n </xuilib-hmcts-error-summary>\n <xuilib-hmcts-banner *ngIf=\"bannerData\"\n [type]=\"bannerData.type\"\n [message]=\"bannerData.message\"\n ></xuilib-hmcts-banner>\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">{{title}}</h1>\n <ng-content></ng-content>\n </div>\n <div class=\"govuk-grid-column-one-third\" *ngIf=\"actionButtons?.length > 0\">\n <div class=\"hmcts-page-heading__actions-wrapper\">\n <a\n *ngFor=\"let actionButton of actionButtons\"\n (click)=\"actionButton.action()\"\n role=\"button\"\n draggable=\"false\"\n class=\"govuk-button {{ actionButton.class }}\"\n >{{ actionButton.name }}</a>\n </div>\n </div>\n </div>\n</main>\n"
6911
7589
  }] }
6912
7590
  ];
6913
7591
  /** @nocollapse */
@@ -7060,6 +7738,33 @@
7060
7738
  return RemoveHostDirective;
7061
7739
  }());
7062
7740
 
7741
+ /**
7742
+ * @fileoverview added by tsickle
7743
+ * Generated from: lib/pipes/capitalize.pipe.ts
7744
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7745
+ */
7746
+ var CapitalizePipe = /** @class */ (function () {
7747
+ function CapitalizePipe() {
7748
+ }
7749
+ /**
7750
+ * @param {?} value
7751
+ * @return {?}
7752
+ */
7753
+ CapitalizePipe.prototype.transform = /**
7754
+ * @param {?} value
7755
+ * @return {?}
7756
+ */
7757
+ function (value) {
7758
+ /** @type {?} */
7759
+ var lowerCaseString = value.toLowerCase();
7760
+ return lowerCaseString.charAt(0).toUpperCase() + lowerCaseString.slice(1);
7761
+ };
7762
+ CapitalizePipe.decorators = [
7763
+ { type: i0.Pipe, args: [{ name: 'capitalize' },] }
7764
+ ];
7765
+ return CapitalizePipe;
7766
+ }());
7767
+
7063
7768
  /**
7064
7769
  * @fileoverview added by tsickle
7065
7770
  * Generated from: lib/exui-common-lib.module.ts
@@ -7098,6 +7803,7 @@
7098
7803
  FindPersonComponent,
7099
7804
  SearchJudicialsComponent,
7100
7805
  FindLocationComponent,
7806
+ FindTaskNameComponent,
7101
7807
  SearchLocationComponent,
7102
7808
  FindServiceComponent,
7103
7809
  SearchServiceComponent,
@@ -7129,13 +7835,17 @@
7129
7835
  GovUkFileUploadComponent,
7130
7836
  RemoveHostDirective
7131
7837
  ];
7838
+ /** @type {?} */
7839
+ var pipes = [
7840
+ CapitalizePipe
7841
+ ];
7132
7842
  var ɵ0 = windowProvider;
7133
7843
  var ExuiCommonLibModule = /** @class */ (function () {
7134
7844
  function ExuiCommonLibModule() {
7135
7845
  }
7136
7846
  ExuiCommonLibModule.decorators = [
7137
7847
  { type: i0.NgModule, args: [{
7138
- declarations: __spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS),
7848
+ declarations: __spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS, pipes),
7139
7849
  imports: [
7140
7850
  i4.CommonModule,
7141
7851
  forms.FormsModule,
@@ -7151,7 +7861,7 @@
7151
7861
  ],
7152
7862
  exports: __spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS, [
7153
7863
  ngxPagination.PaginatePipe
7154
- ])
7864
+ ], pipes)
7155
7865
  },] }
7156
7866
  ];
7157
7867
  return ExuiCommonLibModule;
@@ -7959,19 +8669,18 @@
7959
8669
  */
7960
8670
  var RoleService = /** @class */ (function () {
7961
8671
  function RoleService() {
7962
- this.pRoles = [];
8672
+ this.pRoles = new rxjs.BehaviorSubject(null);
8673
+ this.roles$ = this.pRoles.asObservable().pipe(operators.skipWhile(( /**
8674
+ * @param {?} item
8675
+ * @return {?}
8676
+ */function (item) { return item === null; })));
7963
8677
  }
7964
8678
  Object.defineProperty(RoleService.prototype, "roles", {
7965
- get: /**
7966
- * @return {?}
7967
- */ function () {
7968
- return this.pRoles;
7969
- },
7970
8679
  set: /**
7971
8680
  * @param {?} roles
7972
8681
  * @return {?}
7973
8682
  */ function (roles) {
7974
- this.pRoles = roles;
8683
+ this.pRoles.next(roles);
7975
8684
  },
7976
8685
  enumerable: true,
7977
8686
  configurable: true
@@ -8012,23 +8721,28 @@
8012
8721
  */
8013
8722
  function (route) {
8014
8723
  var _this = this;
8015
- /** @type {?} */
8016
- var roles = (( /** @type {?} */(route.data.needsRole)));
8017
- /** @type {?} */
8018
- var check = ( /**
8019
- * @param {?} roleRegEx
8724
+ return this.roleService.roles$.pipe(operators.map(( /**
8725
+ * @param {?} roles
8020
8726
  * @return {?}
8021
- */function (roleRegEx) {
8727
+ */function (roles) {
8728
+ /** @type {?} */
8729
+ var canActivateRoles = (( /** @type {?} */(route.data.needsRole)));
8022
8730
  /** @type {?} */
8023
- var regex = new RegExp(roleRegEx);
8024
- return _this.roleService.roles.some(( /**
8025
- * @param {?} role
8731
+ var check = ( /**
8732
+ * @param {?} roleRegEx
8026
8733
  * @return {?}
8027
- */function (role) { return regex.test(role); }));
8028
- });
8029
- /** @type {?} */
8030
- var match = route.data.roleMatching === RoleMatching.ALL ? roles.every(check) : roles.some(check);
8031
- return match || this.router.parseUrl(( /** @type {?} */(route.data.noRoleMatchRedirect)));
8734
+ */function (roleRegEx) {
8735
+ /** @type {?} */
8736
+ var regex = new RegExp(roleRegEx);
8737
+ return roles.some(( /**
8738
+ * @param {?} role
8739
+ * @return {?}
8740
+ */function (role) { return regex.test(role); }));
8741
+ });
8742
+ /** @type {?} */
8743
+ var match = route.data.roleMatching === RoleMatching.ALL ? canActivateRoles.every(check) : canActivateRoles.some(check);
8744
+ return match || _this.router.parseUrl(( /** @type {?} */(route.data.noRoleMatchRedirect)));
8745
+ })));
8032
8746
  };
8033
8747
  RoleGuard.decorators = [
8034
8748
  { type: i0.Injectable, args: [{
@@ -8193,16 +8907,17 @@
8193
8907
  exports.dateValidator = dateValidator;
8194
8908
  exports.radioGroupValidator = radioGroupValidator;
8195
8909
  exports.HmctsSubNavigationComponent = HmctsSubNavigationComponent;
8910
+ exports.HmctsBannerComponent = HmctsBannerComponent;
8196
8911
  exports.SharedCaseErrorMessages = SharedCaseErrorMessages;
8197
8912
  exports.BadgeColour = BadgeColour;
8198
8913
  exports.DateBadgeColour = DateBadgeColour;
8199
8914
  exports.SECONDS_IN_A_DAY = SECONDS_IN_A_DAY;
8200
8915
  exports.AnonymousFeatureUser = AnonymousFeatureUser;
8201
8916
  exports.LoggedInFeatureUser = LoggedInFeatureUser;
8917
+ exports.RadioFilterFieldConfig = RadioFilterFieldConfig;
8202
8918
  exports.BookingCheckType = BookingCheckType;
8203
8919
  exports.PersonRole = PersonRole;
8204
8920
  exports.RoleCategory = RoleCategory;
8205
- exports.RadioFilterFieldConfig = RadioFilterFieldConfig;
8206
8921
  exports.FeatureToggleGuard = FeatureToggleGuard;
8207
8922
  exports.FeatureToggleService = FeatureToggleService;
8208
8923
  exports.LaunchDarklyService = LaunchDarklyService;
@@ -8227,17 +8942,18 @@
8227
8942
  exports.ɵa = ExuiPageWrapperComponent;
8228
8943
  exports.ɵbl = FindLocationComponent;
8229
8944
  exports.ɵbh = FindPersonComponent;
8230
- exports.ɵbo = FindServiceComponent;
8945
+ exports.ɵbq = FindServiceComponent;
8946
+ exports.ɵbo = FindTaskNameComponent;
8231
8947
  exports.ɵbd = GenericFilterComponent;
8232
8948
  exports.ɵk = HmctsSessionDialogComponent;
8233
8949
  exports.ɵo = InviteUserFormComponent;
8234
8950
  exports.ɵn = InviteUserPermissionComponent;
8235
8951
  exports.ɵbc = LoadingSpinnerComponent;
8236
- exports.ɵbr = PaginationComponent;
8952
+ exports.ɵbt = PaginationComponent;
8237
8953
  exports.ɵbk = SearchJudicialsComponent;
8238
8954
  exports.ɵbm = SearchLocationComponent;
8239
- exports.ɵbp = SearchServiceComponent;
8240
- exports.ɵbq = SearchVenueComponent;
8955
+ exports.ɵbr = SearchServiceComponent;
8956
+ exports.ɵbs = SearchVenueComponent;
8241
8957
  exports.ɵv = SelectedCaseConfirmComponent;
8242
8958
  exports.ɵt = SelectedCaseListComponent;
8243
8959
  exports.ɵu = SelectedCaseComponent;
@@ -8256,28 +8972,29 @@
8256
8972
  exports.ɵg = FeatureToggleDirective;
8257
8973
  exports.ɵi = LetContext;
8258
8974
  exports.ɵj = LetDirective;
8259
- exports.ɵcb = GovUkCheckboxComponent;
8260
- exports.ɵch = GovUkCheckboxesComponent;
8261
- exports.ɵcg = GovUkDateComponent;
8262
- exports.ɵce = GovUkErrorMessageComponent;
8263
- exports.ɵcf = GovUkFieldsetComponent;
8264
- exports.ɵcm = GovUkFileUploadComponent;
8265
- exports.ɵcc = GovUkFormGroupWrapperComponent;
8266
- exports.ɵca = GovUkInputComponent;
8267
- exports.ɵcd = GovUkLabelComponent;
8268
- exports.ɵci = GovUkRadioComponent;
8269
- exports.ɵcj = GovUkRadiosComponent;
8270
- exports.ɵck = GovUkSelectComponent;
8271
- exports.ɵbz = GovukTableComponent;
8272
- exports.ɵcl = GovUkTextareaComponent;
8273
- exports.ɵby = HmctsBannerComponent;
8274
- exports.ɵbw = HmctsErrorSummaryComponent;
8275
- exports.ɵbs = HmctsIdentityBarComponent;
8276
- exports.ɵbx = HmctsMainWrapperComponent;
8277
- exports.ɵbt = HmctsPaginationComponent;
8278
- exports.ɵbv = HmctsPrimaryNavigationComponent;
8279
- exports.ɵbu = HmctsSubNavigationComponent;
8280
- exports.ɵcn = RemoveHostDirective;
8975
+ exports.ɵcd = GovUkCheckboxComponent;
8976
+ exports.ɵcj = GovUkCheckboxesComponent;
8977
+ exports.ɵci = GovUkDateComponent;
8978
+ exports.ɵcg = GovUkErrorMessageComponent;
8979
+ exports.ɵch = GovUkFieldsetComponent;
8980
+ exports.ɵco = GovUkFileUploadComponent;
8981
+ exports.ɵce = GovUkFormGroupWrapperComponent;
8982
+ exports.ɵcc = GovUkInputComponent;
8983
+ exports.ɵcf = GovUkLabelComponent;
8984
+ exports.ɵck = GovUkRadioComponent;
8985
+ exports.ɵcl = GovUkRadiosComponent;
8986
+ exports.ɵcm = GovUkSelectComponent;
8987
+ exports.ɵcb = GovukTableComponent;
8988
+ exports.ɵcn = GovUkTextareaComponent;
8989
+ exports.ɵca = HmctsBannerComponent;
8990
+ exports.ɵby = HmctsErrorSummaryComponent;
8991
+ exports.ɵbu = HmctsIdentityBarComponent;
8992
+ exports.ɵbz = HmctsMainWrapperComponent;
8993
+ exports.ɵbv = HmctsPaginationComponent;
8994
+ exports.ɵbx = HmctsPrimaryNavigationComponent;
8995
+ exports.ɵbw = HmctsSubNavigationComponent;
8996
+ exports.ɵcp = RemoveHostDirective;
8997
+ exports.ɵcq = CapitalizePipe;
8281
8998
  exports.ɵr = CaseSharingStateService;
8282
8999
  exports.ɵbg = CookieService;
8283
9000
  exports.ɵh = FeatureToggleService;
@@ -8285,6 +9002,7 @@
8285
9002
  exports.ɵbi = FindAPersonService;
8286
9003
  exports.ɵbn = LocationService;
8287
9004
  exports.ɵbj = SessionStorageService;
9005
+ exports.ɵbp = TaskNameService;
8288
9006
 
8289
9007
  Object.defineProperty(exports, '__esModule', { value: true });
8290
9008