@hmcts/rpx-xui-common-lib 1.8.5-angular-upgrade-r4 → 1.8.7-fix-wrong-services

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 (132) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +431 -1076
  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 +29 -32
  6. package/esm2015/lib/components/find-location/find-location.component.js +3 -3
  7. package/esm2015/lib/components/find-service/find-service.component.js +12 -129
  8. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +2 -2
  9. package/esm2015/lib/components/generic-filter/generic-filter.component.js +15 -361
  10. package/esm2015/lib/components/search-location/search-location.component.js +3 -3
  11. package/esm2015/lib/components/search-service/search-service.component.js +34 -17
  12. package/esm2015/lib/components/selected-case/selected-case.component.js +4 -10
  13. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +1 -1
  14. package/esm2015/lib/components/share-case/share-case.component.js +186 -14
  15. package/esm2015/lib/exui-common-lib.module.js +5 -13
  16. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +6 -80
  17. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +3 -3
  18. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +2 -3
  19. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +1 -1
  20. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  21. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +14 -19
  22. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -2
  23. package/esm2015/lib/gov-ui/components/index.js +2 -2
  24. package/esm2015/lib/gov-ui/components/public_api.js +1 -2
  25. package/esm2015/lib/gov-ui/index.js +2 -2
  26. package/esm2015/lib/gov-ui/models/banner-data-model.js +16 -0
  27. package/esm2015/lib/gov-ui/models/checkboxes-model.js +8 -6
  28. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +1 -5
  29. package/esm2015/lib/gov-ui/models/public_api.js +2 -1
  30. package/esm2015/lib/gov-ui/public_api.js +2 -2
  31. package/esm2015/lib/models/case-share.model.js +8 -1
  32. package/esm2015/lib/models/filter.model.js +5 -65
  33. package/esm2015/lib/models/index.js +2 -2
  34. package/esm2015/lib/models/person.model.js +2 -2
  35. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +39 -15
  36. package/esm2015/lib/services/filter/filter.service.js +3 -17
  37. package/esm2015/lib/services/find-person/find-person.service.js +3 -3
  38. package/esm2015/lib/services/role-guard/role.guard.js +15 -22
  39. package/esm2015/lib/services/role-guard/role.service.js +13 -13
  40. package/esm2015/lib/services/session-storage/session-storage.service.js +55 -0
  41. package/esm2015/public-api.js +3 -3
  42. package/esm5/hmcts-rpx-xui-common-lib.js +29 -32
  43. package/esm5/lib/components/find-location/find-location.component.js +3 -3
  44. package/esm5/lib/components/find-service/find-service.component.js +12 -166
  45. package/esm5/lib/components/generic-filter/generic-filter-utils.js +2 -2
  46. package/esm5/lib/components/generic-filter/generic-filter.component.js +14 -397
  47. package/esm5/lib/components/search-location/search-location.component.js +3 -3
  48. package/esm5/lib/components/search-service/search-service.component.js +38 -19
  49. package/esm5/lib/components/selected-case/selected-case.component.js +4 -13
  50. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +1 -1
  51. package/esm5/lib/components/share-case/share-case.component.js +219 -14
  52. package/esm5/lib/exui-common-lib.module.js +5 -11
  53. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +6 -100
  54. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +3 -3
  55. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +2 -3
  56. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +1 -1
  57. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  58. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +13 -17
  59. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -2
  60. package/esm5/lib/gov-ui/components/index.js +2 -2
  61. package/esm5/lib/gov-ui/components/public_api.js +1 -2
  62. package/esm5/lib/gov-ui/index.js +2 -2
  63. package/esm5/lib/gov-ui/models/banner-data-model.js +16 -0
  64. package/esm5/lib/gov-ui/models/checkboxes-model.js +8 -6
  65. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +1 -5
  66. package/esm5/lib/gov-ui/models/public_api.js +2 -1
  67. package/esm5/lib/gov-ui/public_api.js +2 -2
  68. package/esm5/lib/models/case-share.model.js +8 -1
  69. package/esm5/lib/models/filter.model.js +5 -65
  70. package/esm5/lib/models/index.js +2 -2
  71. package/esm5/lib/models/person.model.js +2 -2
  72. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +40 -16
  73. package/esm5/lib/services/filter/filter.service.js +3 -21
  74. package/esm5/lib/services/find-person/find-person.service.js +3 -3
  75. package/esm5/lib/services/role-guard/role.guard.js +15 -22
  76. package/esm5/lib/services/role-guard/role.service.js +13 -13
  77. package/esm5/lib/services/{storage/session-storage → session-storage}/session-storage.service.js +2 -2
  78. package/esm5/public-api.js +3 -3
  79. package/fesm2015/hmcts-rpx-xui-common-lib.js +447 -1040
  80. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  81. package/fesm5/hmcts-rpx-xui-common-lib.js +415 -1094
  82. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  83. package/hmcts-rpx-xui-common-lib.d.ts +27 -30
  84. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  85. package/lib/components/find-service/find-service.component.d.ts +6 -14
  86. package/lib/components/generic-filter/generic-filter-utils.d.ts +5 -2
  87. package/lib/components/generic-filter/generic-filter.component.d.ts +2 -12
  88. package/lib/components/search-location/search-location.component.d.ts +1 -1
  89. package/lib/components/search-service/search-service.component.d.ts +11 -5
  90. package/lib/components/selected-case/selected-case.component.d.ts +0 -1
  91. package/lib/components/share-case/share-case.component.d.ts +35 -2
  92. package/lib/exui-common-lib.module.d.ts +3 -4
  93. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +5 -14
  94. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +2 -1
  95. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +0 -1
  96. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +2 -2
  97. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +2 -4
  98. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +3 -3
  99. package/lib/gov-ui/components/public_api.d.ts +0 -1
  100. package/lib/gov-ui/models/banner-data-model.d.ts +4 -0
  101. package/lib/gov-ui/models/checkboxes-model.d.ts +7 -4
  102. package/lib/gov-ui/models/gov-ui-config-model.d.ts +0 -2
  103. package/lib/gov-ui/models/public_api.d.ts +1 -0
  104. package/lib/models/case-share.model.d.ts +5 -0
  105. package/lib/models/filter.model.d.ts +8 -30
  106. package/lib/models/person.model.d.ts +1 -1
  107. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  108. package/lib/services/filter/filter.service.d.ts +0 -1
  109. package/lib/services/find-person/find-person.service.d.ts +1 -1
  110. package/lib/services/role-guard/role.guard.d.ts +1 -2
  111. package/lib/services/role-guard/role.service.d.ts +1 -3
  112. package/lib/services/{storage/session-storage → session-storage}/session-storage.service.d.ts +0 -0
  113. package/package.json +1 -1
  114. package/esm2015/lib/components/find-task-name/find-task-name.component.js +0 -228
  115. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +0 -22
  116. package/esm2015/lib/gov-ui/models/radio-buttons.model.js +0 -22
  117. package/esm2015/lib/models/task-name.model.js +0 -16
  118. package/esm2015/lib/pipes/capitalize.pipe.js +0 -21
  119. package/esm2015/lib/services/storage/session-storage/session-storage.service.js +0 -55
  120. package/esm2015/lib/services/task-name/task-name.service.js +0 -65
  121. package/esm5/lib/components/find-task-name/find-task-name.component.js +0 -243
  122. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +0 -22
  123. package/esm5/lib/gov-ui/models/radio-buttons.model.js +0 -22
  124. package/esm5/lib/models/task-name.model.js +0 -16
  125. package/esm5/lib/pipes/capitalize.pipe.js +0 -29
  126. package/esm5/lib/services/task-name/task-name.service.js +0 -70
  127. package/lib/components/find-task-name/find-task-name.component.d.ts +0 -41
  128. package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +0 -7
  129. package/lib/gov-ui/models/radio-buttons.model.d.ts +0 -9
  130. package/lib/models/task-name.model.d.ts +0 -4
  131. package/lib/pipes/capitalize.pipe.d.ts +0 -4
  132. package/lib/services/task-name/task-name.service.d.ts +0 -14
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/material'), require('@angular/material/autocomplete'), require('ngx-pagination'), require('@angular/common/http'), require('@angular/forms'), require('launchdarkly-js-client-sdk'), require('@angular/common'), require('@angular/platform-browser'), require('@ng-idle/core'), require('@ng-idle/keepalive'), require('@angular/router'), require('@angular/core'), require('rxjs'), require('rxjs/operators')) :
3
- typeof define === 'function' && define.amd ? define('@hmcts/rpx-xui-common-lib', ['exports', '@angular/material', '@angular/material/autocomplete', 'ngx-pagination', '@angular/common/http', '@angular/forms', 'launchdarkly-js-client-sdk', '@angular/common', '@angular/platform-browser', '@ng-idle/core', '@ng-idle/keepalive', '@angular/router', '@angular/core', 'rxjs', 'rxjs/operators'], factory) :
4
- (factory((global.hmcts = global.hmcts || {}, global.hmcts['rpx-xui-common-lib'] = {}),global.ng.material,global.ng.material.autocomplete,global.ngxPagination,global.ng.common.http,global.ng.forms,global.LDClient,global.ng.common,global.ng.platformBrowser,global.i1$1,global.i2$1,global.ng.router,global.ng.core,global.rxjs,global.rxjs.operators));
5
- }(this, (function (exports,material,autocomplete,ngxPagination,i1,forms,LDClient,i4,i2,i1$1,i2$1,i2$2,i0,rxjs,operators) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/material/autocomplete'), require('@angular/material/input'), require('@angular/material/tabs'), require('ngx-pagination'), require('@angular/common/http'), require('@angular/forms'), require('launchdarkly-js-client-sdk'), require('@angular/common'), require('@angular/platform-browser'), require('@ng-idle/core'), require('@ng-idle/keepalive'), require('@angular/router'), require('@angular/core'), require('rxjs'), require('rxjs/operators')) :
3
+ typeof define === 'function' && define.amd ? define('@hmcts/rpx-xui-common-lib', ['exports', '@angular/material/autocomplete', '@angular/material/input', '@angular/material/tabs', 'ngx-pagination', '@angular/common/http', '@angular/forms', 'launchdarkly-js-client-sdk', '@angular/common', '@angular/platform-browser', '@ng-idle/core', '@ng-idle/keepalive', '@angular/router', '@angular/core', 'rxjs', 'rxjs/operators'], factory) :
4
+ (factory((global.hmcts = global.hmcts || {}, global.hmcts['rpx-xui-common-lib'] = {}),global.ng.material.autocomplete,global.ng.material.input,global.ng.material.tabs,global.ngxPagination,global.ng.common.http,global.ng.forms,global.LDClient,global.ng.common,global.ng.platformBrowser,global.i1$1,global.i2$1,global.ng.router,global.ng.core,global.rxjs,global.rxjs.operators));
5
+ }(this, (function (exports,autocomplete,input,tabs,ngxPagination,i1,forms,LDClient,i4,i2,i1$1,i2$1,i2$2,i0,rxjs,operators) { 'use strict';
6
6
 
7
7
  /**
8
8
  * @fileoverview added by tsickle
@@ -709,7 +709,7 @@
709
709
  return this.filterSettings[id];
710
710
  }
711
711
  if (sessionStorage.getItem(id)) {
712
- return JSON.parse(sessionStorage.getItem(id));
712
+ return JSON.parse(window.sessionStorage.getItem(id));
713
713
  }
714
714
  if (localStorage.getItem(id)) {
715
715
  if (this.isSameUser(id)) {
@@ -748,24 +748,6 @@
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
- };
769
751
  /**
770
752
  * @private
771
753
  * @param {?} setting
@@ -791,7 +773,7 @@
791
773
  * @return {?}
792
774
  */
793
775
  function (setting) {
794
- sessionStorage.setItem(setting.id, JSON.stringify(setting));
776
+ window.sessionStorage.setItem(setting.id, JSON.stringify(setting));
795
777
  };
796
778
  /**
797
779
  * @private
@@ -868,7 +850,7 @@
868
850
  return values.length && values.filter(( /**
869
851
  * @param {?} value
870
852
  * @return {?}
871
- */function (value) { return value; })).length >= min ? null : { minlength: true };
853
+ */function (value) { return value; })).length >= min ? null : { minLength: true };
872
854
  });
873
855
  }
874
856
  /**
@@ -918,7 +900,6 @@
918
900
  this.filterService = filterService;
919
901
  this.fb = fb;
920
902
  this.submitted = false;
921
- this.previousSelectedNestedCheckbox = [];
922
903
  }
923
904
  Object.defineProperty(GenericFilterComponent.prototype, "config", {
924
905
  get: /**
@@ -973,10 +954,10 @@
973
954
  function (field) {
974
955
  /** @type {?} */
975
956
  var validators = [];
976
- if (field && field.minSelected > 0) {
957
+ if (field && field.minSelected) {
977
958
  validators.push(minSelectedValidator(field.minSelected));
978
959
  }
979
- if (field && field.maxSelected > 0) {
960
+ if (field && field.maxSelected) {
980
961
  validators.push(maxSelectedValidator(field.maxSelected));
981
962
  }
982
963
  return validators;
@@ -997,16 +978,6 @@
997
978
  this.formSub = this.form.valueChanges.subscribe(( /**
998
979
  * @return {?}
999
980
  */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
- }
1010
981
  };
1011
982
  /**
1012
983
  * @return {?}
@@ -1187,11 +1158,6 @@
1187
1158
  * @return {?}
1188
1159
  */
1189
1160
  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
- }
1195
1161
  if (field.radioSelectionChange && typeof field.radioSelectionChange === 'string') {
1196
1162
  var _a = __read(field.enableCondition.split('='), 2), name_3 = _a[0], value = _a[1];
1197
1163
  this.form.get(name_3).patchValue(value);
@@ -1213,9 +1179,6 @@
1213
1179
  this.filterService.persist(settings, this.config.persistence);
1214
1180
  this.filterService.givenErrors.next(null);
1215
1181
  this.submitted = false;
1216
- if (this.config.cancelButtonCallback) {
1217
- this.config.cancelButtonCallback();
1218
- }
1219
1182
  };
1220
1183
  /**
1221
1184
  * @param {?} values
@@ -1261,32 +1224,6 @@
1261
1224
  }
1262
1225
  }
1263
1226
  };
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
- };
1290
1227
  /**
1291
1228
  * @param {?} event
1292
1229
  * @param {?} form
@@ -1388,56 +1325,6 @@
1388
1325
  }
1389
1326
  }
1390
1327
  }
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);
1441
1328
  };
1442
1329
  /**
1443
1330
  * @private
@@ -1550,14 +1437,14 @@
1550
1437
  this.form.addControl('findPersonControl', findPersonControl);
1551
1438
  }
1552
1439
  var _loop_1 = function (field) {
1553
- if (field.type === 'checkbox' || field.type === 'checkbox-large' || field.type === 'nested-checkbox') {
1440
+ if (field.type === 'checkbox' || field.type === 'checkbox-large') {
1554
1441
  /** @type {?} */
1555
1442
  var formArray = this_1.buildCheckBoxFormArray(field, settings);
1556
1443
  this_1.form.addControl(field.name, formArray);
1557
1444
  }
1558
- else if (field.type === 'find-location' || field.type === 'find-service') {
1445
+ else if (field.type === 'find-location') {
1559
1446
  /** @type {?} */
1560
- var formArray = this_1.buildFormArray(field, settings);
1447
+ var formArray = this_1.buildFindLocationFormArray(field, settings);
1561
1448
  this_1.form.addControl(field.name, formArray);
1562
1449
  }
1563
1450
  else {
@@ -1565,12 +1452,6 @@
1565
1452
  var validators = [];
1566
1453
  if (field.minSelected && field.minSelected > 0) {
1567
1454
  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
- }
1574
1455
  }
1575
1456
  /** @type {?} */
1576
1457
  var defaultValue = null;
@@ -1602,7 +1483,7 @@
1602
1483
  });
1603
1484
  this_1.form.addControl(field.name, formGroup);
1604
1485
  }
1605
- else if (field.type !== 'group-title') {
1486
+ else {
1606
1487
  /** @type {?} */
1607
1488
  var control = new forms.FormControl(defaultValue, validators);
1608
1489
  this_1.form.addControl(field.name, control);
@@ -1698,7 +1579,7 @@
1698
1579
  * @param {?} settings
1699
1580
  * @return {?}
1700
1581
  */
1701
- GenericFilterComponent.prototype.buildFormArray = /**
1582
+ GenericFilterComponent.prototype.buildFindLocationFormArray = /**
1702
1583
  * @private
1703
1584
  * @param {?} field
1704
1585
  * @param {?} settings
@@ -1766,7 +1647,7 @@
1766
1647
  * @param {?} f
1767
1648
  * @return {?}
1768
1649
  */function (f) { return f.name === name; }));
1769
- if (field.type === 'find-location' || field.type === 'find-service') {
1650
+ if (field.type === 'find-location') {
1770
1651
  return { value: values, name: name };
1771
1652
  }
1772
1653
  else {
@@ -1797,11 +1678,11 @@
1797
1678
  var field = _c.value;
1798
1679
  /** @type {?} */
1799
1680
  var formGroup = form.get(field.name);
1800
- if (formGroup && formGroup.errors && (formGroup.errors.minlength || formGroup.errors.required)) {
1681
+ if (formGroup && formGroup.errors && formGroup.errors.minLength) {
1801
1682
  errors.push({ name: field.name, error: field.minSelectedError });
1802
1683
  }
1803
- if (formGroup && formGroup.errors && formGroup.errors.maxlength) {
1804
- errors.push({ name: field.name, error: field.maxSelectedError });
1684
+ if (formGroup && formGroup.errors && formGroup.errors.maxLength) {
1685
+ errors.push({ name: field.name, error: field.minSelectedError });
1805
1686
  }
1806
1687
  }
1807
1688
  }
@@ -1818,267 +1699,17 @@
1818
1699
  throw e_8.error;
1819
1700
  }
1820
1701
  }
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
- }));
1833
1702
  if (errors.length) {
1834
1703
  this.filterService.givenErrors.next(errors);
1835
1704
  }
1836
1705
  };
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
- };
2075
1706
  GenericFilterComponent.decorators = [
2076
1707
  { type: i0.Component, args: [{
2077
1708
  selector: 'xuilib-generic-filter',
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 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?.required) || form.get(field.name).errors?.maxlength || form.get(field.name).errors?.email)}\">\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\"\n *ngIf=\"field.displayMinSelectedError && submitted && (form.get(field.name).errors?.minlength || form.get(field.name).errors?.required)\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.minSelectedError}}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *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 [enableAddServiceButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\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\"/>\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",
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 ></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",
2079
1710
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2080
1711
  encapsulation: i0.ViewEncapsulation.None,
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%}"]
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}"]
2082
1713
  }] }
2083
1714
  ];
2084
1715
  /** @nocollapse */
@@ -2341,29 +1972,50 @@
2341
1972
  return newSharedCases;
2342
1973
  };
2343
1974
  /**
2344
- * @param {?} caseId
2345
1975
  * @param {?} user
1976
+ * @param {?=} caseId
2346
1977
  * @return {?}
2347
1978
  */
2348
1979
  CaseSharingStateService.prototype.requestUnshare = /**
2349
- * @param {?} caseId
2350
1980
  * @param {?} user
1981
+ * @param {?=} caseId
2351
1982
  * @return {?}
2352
1983
  */
2353
- function (caseId, user) {
1984
+ function (user, caseId) {
2354
1985
  var e_2, _a;
2355
1986
  /** @type {?} */
2356
1987
  var newSharedCases = [];
2357
1988
  try {
2358
1989
  for (var _b = __values(this.caseState), _c = _b.next(); !_c.done; _c = _b.next()) {
2359
1990
  var sharedCase = _c.value;
2360
- if (sharedCase.caseId === caseId) {
1991
+ // If no caseId, then request unshare from all shared cases
1992
+ if (caseId === undefined || sharedCase.caseId === caseId) {
2361
1993
  if (!sharedCase.pendingUnshares) {
2362
1994
  sharedCase.pendingUnshares = [];
2363
1995
  }
2364
1996
  /** @type {?} */
2365
1997
  var newPendingUnshares = sharedCase.pendingUnshares.slice();
2366
- if (newPendingUnshares) {
1998
+ // If the user is pending shared access, just remove them from pendingShares
1999
+ /** @type {?} */
2000
+ var newPendingShares = void 0;
2001
+ /** @type {?} */
2002
+ var indexOfPreviouslyAddedUser = -1;
2003
+ if (sharedCase.pendingShares) {
2004
+ indexOfPreviouslyAddedUser = sharedCase.pendingShares.findIndex(( /**
2005
+ * @param {?} u
2006
+ * @return {?}
2007
+ */function (u) { return u.idamId === user.idamId; }));
2008
+ if (indexOfPreviouslyAddedUser > -1) {
2009
+ newPendingShares = sharedCase.pendingShares.slice();
2010
+ newPendingShares.splice(indexOfPreviouslyAddedUser, 1);
2011
+ }
2012
+ }
2013
+ // If the user does not exist in pendingShares, and already has shared access (i.e. exists in sharedWith),
2014
+ // request removal of shared access
2015
+ if (indexOfPreviouslyAddedUser === -1 && sharedCase.sharedWith && sharedCase.sharedWith.findIndex(( /**
2016
+ * @param {?} u
2017
+ * @return {?}
2018
+ */function (u) { return u.idamId === user.idamId; })) > -1) {
2367
2019
  if (!newPendingUnshares.some(( /**
2368
2020
  * @param {?} u
2369
2021
  * @return {?}
@@ -2371,11 +2023,10 @@
2371
2023
  newPendingUnshares.push(user);
2372
2024
  }
2373
2025
  }
2374
- else {
2375
- newPendingUnshares.push(user);
2376
- }
2377
2026
  /** @type {?} */
2378
- var newSharedCase = __assign({}, sharedCase, { pendingUnshares: newPendingUnshares });
2027
+ var newSharedCase = __assign({}, sharedCase, { pendingUnshares: newPendingUnshares }, (newPendingShares && {
2028
+ pendingShares: newPendingShares
2029
+ }));
2379
2030
  newSharedCases.push(newSharedCase);
2380
2031
  }
2381
2032
  else {
@@ -2397,7 +2048,7 @@
2397
2048
  }
2398
2049
  }
2399
2050
  this.subject.next(newSharedCases);
2400
- return;
2051
+ return newSharedCases;
2401
2052
  };
2402
2053
  /**
2403
2054
  * @param {?} caseId
@@ -2473,11 +2124,13 @@
2473
2124
  * @return {?}
2474
2125
  */
2475
2126
  function (caseId) {
2476
- for (var i = 0, l = this.caseState.length; i < l; i++) {
2477
- if (this.caseState[i].caseId === caseId) {
2478
- this.caseState.splice(i, 1);
2479
- this.subject.next(this.caseState);
2480
- return;
2127
+ if (this.caseState.length > 1) {
2128
+ for (var i = 0, l = this.caseState.length; i < l; i++) {
2129
+ if (this.caseState[i].caseId === caseId) {
2130
+ this.caseState.splice(i, 1);
2131
+ this.subject.next(this.caseState);
2132
+ return;
2133
+ }
2481
2134
  }
2482
2135
  }
2483
2136
  };
@@ -2563,7 +2216,7 @@
2563
2216
  SelectedCaseConfirmComponent.decorators = [
2564
2217
  { type: i0.Component, args: [{
2565
2218
  selector: 'xuilib-selected-case-confirm',
2566
- template: "<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">Change</a>\n </div>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">to be removed</span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
2219
+ template: "<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">Change</a>\n </div>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
2567
2220
  styles: [".case-share-confirm__title{margin-bottom:0}.case-share-confirm__caption-area{border-bottom:1px solid #b1b4b6;padding-bottom:10px;display:inline-block;width:100%;clear:both}.case-share-confirm__caption{float:left}.case-share-confirm__change-link{float:right}.govuk-table-column-header{width:45%}.govuk-table-column-actions{width:10%}"]
2568
2221
  }] }
2569
2222
  ];
@@ -2712,15 +2365,6 @@
2712
2365
  this.combinedSortedShares = this.combineAndSortShares(sharedWith, pendingShares);
2713
2366
  }
2714
2367
  };
2715
- /**
2716
- * @return {?}
2717
- */
2718
- SelectedCaseComponent.prototype.onUnselect = /**
2719
- * @return {?}
2720
- */
2721
- function () {
2722
- this.unselect.emit(this.sharedCase);
2723
- };
2724
2368
  /**
2725
2369
  * @param {?} c
2726
2370
  * @return {?}
@@ -2943,7 +2587,7 @@
2943
2587
  * @return {?}
2944
2588
  */
2945
2589
  function (user, sharedCase) {
2946
- this.stateService.requestUnshare(sharedCase.caseId, user);
2590
+ this.stateService.requestUnshare(user, sharedCase.caseId);
2947
2591
  this.synchronizeStore.emit(this.shareCases);
2948
2592
  };
2949
2593
  /**
@@ -3062,8 +2706,8 @@
3062
2706
  SelectedCaseComponent.decorators = [
3063
2707
  { type: i0.Component, args: [{
3064
2708
  selector: 'xuilib-selected-case',
3065
- template: "<div id=\"{{buildElementId('govuk-accordion__section')}}\" class=\"govuk-accordion__section\">\n <div class=\"govuk-grid-row govuk-case-header\">\n <div class=\"govuk-grid-column-three-quarters\">\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle }}</h3>\n <h1 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId }}</h1>\n </div>\n <div class=\"govuk-grid-column-twenty-percent\">\n <button *ngIf=\"caseCount > 1\"\n id=\"{{buildElementId('btn-deselect-case')}}\" \n class=\"govuk-button hmcts-button--secondary\" \n (click)=\"onDeselect(sharedCase)\" \n title=\"Deselect case\">Deselect case\n </button>\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-five-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n aria-controls=\"accordion-with-summary-sections-content-1\" class=\"govuk-accordion__section-button\"\n aria-describedby=\"accordion-with-summary-sections-summary-1\" aria-expanded=\"false\" title=\"Expand or Collapse\">\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\n </div>\n </div>\n </div>\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\n aria-labelledby=\"buildElementId('accordion-with-summary-sections-heading')\" >\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">No users from your organisation currently have access to this case.</span>\n </div>\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">Users from your organisation with access to this case.</span>\n </div>\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">&nbsp;&nbsp;</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase)\" href=\"javascript:void(0);\">Remove <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} from case</span></a>\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase)\" href=\"javascript:void(0);\">Cancel <span class=\"govuk-visually-hidden\">adding {{ user.firstName + ' ' + user.lastName }} to case</span></a>\n </td>\n <td class=\"govuk-table__cell\">\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n",
3066
- styles: [".govuk-case-header{border-top:1px solid #bfc1c3}.govuk-case-title{font-family:nta,Arial,sans-serif;font-size:24px;color:#005ea5;font-weight:700;padding-left:0}.govuk-case-sub-title{font-family:nta,Arial,sans-serif;font-size:1rem!important;color:#6f777b;font-weight:400;padding-left:0}.govuk-grid-row{margin-left:0;margin-right:0}.govuk-grid-column-three-quarters{padding-top:5px;padding-left:0}.govuk-grid-column-twenty-percent{box-sizing:border-box;padding-top:10px;width:20%;float:left}.govuk-grid-column-five-percent{box-sizing:border-box;padding-top:15px;width:5%;float:left}.govuk-table-column-header{width:40%}.govuk-table-column-actions,.govuk-table-column-label{width:10%}.govuk-div-align-left{font-family:nta,Arial,sans-serif;font-size:1.1875rem!important;line-height:1.31579!important;text-align:left;margin-bottom:20px;padding-left:0;color:#0b0c0c}.govuk-accordion__section-header{border-top:0}.govuk-accordion__section-content{padding-top:0}"]
2709
+ template: "<div id=\"{{buildElementId('govuk-accordion__section')}}\" class=\"govuk-accordion__section\">\n <div class=\"govuk-grid-row govuk-case-header\">\n <div class=\"govuk-grid-column-three-quarters\">\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle }}</h3>\n <h1 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId }}</h1>\n </div>\n <div class=\"govuk-grid-column-twenty-percent\">\n <button *ngIf=\"caseCount > 1\"\n id=\"{{buildElementId('btn-deselect-case')}}\" \n class=\"govuk-button hmcts-button--secondary\" \n (click)=\"onDeselect(sharedCase)\" \n title=\"Deselect case\">Deselect case\n </button>\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-five-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n aria-controls=\"accordion-with-summary-sections-content-1\" class=\"govuk-accordion__section-button\"\n aria-describedby=\"accordion-with-summary-sections-summary-1\" aria-expanded=\"false\" title=\"Expand or Collapse\">\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\n </div>\n </div>\n </div>\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\n aria-labelledby=\"buildElementId('accordion-with-summary-sections-heading')\" >\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">No users from your organisation currently have access to this case.</span>\n </div>\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">Users from your organisation with access to this case.</span>\n </div>\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">Status</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase)\" href=\"javascript:void(0);\">Remove <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} from case</span></a>\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase)\" href=\"javascript:void(0);\">Cancel <span class=\"govuk-visually-hidden\">adding {{ user.firstName + ' ' + user.lastName }} to case</span></a>\n </td>\n <td class=\"govuk-table__cell\">\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n",
2710
+ styles: [".govuk-case-header{border-top:1px solid #bfc1c3}.govuk-case-title{font-family:nta,Arial,sans-serif;font-size:24px;color:#005ea5;font-weight:700;padding-left:0}.govuk-case-sub-title{font-family:nta,Arial,sans-serif;font-size:1rem!important;color:#6f777b;font-weight:400;padding-left:0}.govuk-grid-row{margin-left:0;margin-right:0}.govuk-grid-column-three-quarters{padding-top:5px;padding-left:0}.govuk-grid-column-twenty-percent{box-sizing:border-box;padding-top:10px;width:20%;float:left}.govuk-grid-column-five-percent{box-sizing:border-box;padding-top:15px;width:5%;float:left}.govuk-table-column-header{width:38%}.govuk-table-column-actions,.govuk-table-column-label{width:12%}.govuk-div-align-left{font-family:nta,Arial,sans-serif;font-size:1.1875rem!important;line-height:1.31579!important;text-align:left;margin-bottom:20px;padding-left:0;color:#0b0c0c}.govuk-accordion__section-header{border-top:0}.govuk-accordion__section-content{padding-top:0}"]
3067
2711
  }] }
3068
2712
  ];
3069
2713
  /** @nocollapse */
@@ -3354,6 +2998,18 @@
3354
2998
  return ShareCaseConfirmComponent;
3355
2999
  }());
3356
3000
 
3001
+ /**
3002
+ * @fileoverview added by tsickle
3003
+ * Generated from: lib/models/case-share.model.ts
3004
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3005
+ */
3006
+ /** @enum {string} */
3007
+ var SharedCaseErrorMessages = {
3008
+ OneCaseMustBeSelected: "At least one case must be selected",
3009
+ NoChangesRequested: "You have not requested any changes to case sharing",
3010
+ OnePersonMustBeAssigned: "At least one person must be assigned to each case",
3011
+ };
3012
+
3357
3013
  /**
3358
3014
  * @fileoverview added by tsickle
3359
3015
  * Generated from: lib/components/user-select/user-select.component.ts
@@ -3475,17 +3131,23 @@
3475
3131
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3476
3132
  */
3477
3133
  var ShareCaseComponent = /** @class */ (function () {
3478
- function ShareCaseComponent(stateService) {
3134
+ function ShareCaseComponent(stateService, router) {
3479
3135
  this.stateService = stateService;
3136
+ this.router = router;
3480
3137
  this.shareCases = []; // cases selected for sharing
3481
- // cases selected for sharing
3138
+ this.continueAllowed = false;
3139
+ this.selectedUserToRemove = null;
3482
3140
  this.removeUserFromCaseToggleOn = false;
3483
3141
  this.users = []; // users of this organisation the cases can be shared with
3484
3142
  // users of this organisation the cases can be shared with
3485
3143
  this.confirmLink = '';
3144
+ this.cancelLink = '';
3486
3145
  this.showRemoveUsers = false;
3146
+ this.fnTitle = '';
3147
+ this.title = '';
3487
3148
  this.unselect = new i0.EventEmitter();
3488
3149
  this.synchronizeStore = new i0.EventEmitter();
3150
+ this.validationErrors = [];
3489
3151
  }
3490
3152
  /**
3491
3153
  * @return {?}
@@ -3495,14 +3157,33 @@
3495
3157
  */
3496
3158
  function () {
3497
3159
  var _this = this;
3498
- this.shareCases$.subscribe(( /**
3499
- * @param {?} shareCases
3500
- * @return {?}
3501
- */function (shareCases) {
3160
+ this.shareCases$
3161
+ .pipe(operators.tap(( /**
3162
+ * @param {?} sharedCases
3163
+ * @return {?}
3164
+ */function (sharedCases) {
3165
+ // Update the list of users assigned to at least one case
3166
+ _this.getAssignedUsers(sharedCases.filter(( /**
3167
+ * @param {?} sharedCase
3168
+ * @return {?}
3169
+ */function (sharedCase) { return sharedCase.sharedWith && sharedCase.sharedWith.length > 0; })));
3170
+ })))
3171
+ .subscribe(( /**
3172
+ * @param {?} shareCases
3173
+ * @return {?}
3174
+ */function (shareCases) {
3502
3175
  _this.shareCases = shareCases;
3503
3176
  _this.stateService.setCases(shareCases);
3177
+ // Set the config to be used by the xuilib-gov-uk-error-message component, in particular the element ID to
3178
+ // which the error message is associated
3179
+ if (shareCases) {
3180
+ _this.selectedCasesErrorMessageConfig = {
3181
+ id: shareCases.length > 0 ? 'cases' : 'noCaseDisplay'
3182
+ };
3183
+ }
3504
3184
  }));
3505
3185
  this.shareCases$ = this.stateService.state;
3186
+ this.shareCaseErrorMessage = { isInvalid: false, messages: [] };
3506
3187
  };
3507
3188
  /**
3508
3189
  * @param {?} c
@@ -3513,8 +3194,16 @@
3513
3194
  * @return {?}
3514
3195
  */
3515
3196
  function (c) {
3516
- this.unselect.emit(c);
3517
- this.stateService.removeCase(c.caseId);
3197
+ this.validationErrors = [];
3198
+ if (this.stateService.getCases().length === 1) {
3199
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OneCaseMustBeSelected });
3200
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OneCaseMustBeSelected] };
3201
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
3202
+ }
3203
+ else {
3204
+ this.unselect.emit(c);
3205
+ this.stateService.removeCase(c.caseId);
3206
+ }
3518
3207
  };
3519
3208
  /**
3520
3209
  * @param {?} event
@@ -3552,6 +3241,21 @@
3552
3241
  this.userSelect.clear();
3553
3242
  }
3554
3243
  this.synchronizeStore.emit(newSharedCases);
3244
+ // Update the list of assigned users (which includes pending users)
3245
+ this.getAssignedUsers(newSharedCases);
3246
+ };
3247
+ /**
3248
+ * @return {?}
3249
+ */
3250
+ ShareCaseComponent.prototype.removeUser = /**
3251
+ * @return {?}
3252
+ */
3253
+ function () {
3254
+ if (this.selectedUserToRemove) {
3255
+ /** @type {?} */
3256
+ var newSharedCases = this.stateService.requestUnshare(this.selectedUserToRemove);
3257
+ this.synchronizeStore.emit(newSharedCases);
3258
+ }
3555
3259
  };
3556
3260
  /**
3557
3261
  * @return {?}
@@ -3563,14 +3267,25 @@
3563
3267
  return this.selectedUser === null || this.shareCases.length === 0;
3564
3268
  };
3565
3269
  /**
3270
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
3271
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
3272
+ */
3273
+ /**
3274
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
3275
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
3566
3276
  * @return {?}
3567
3277
  */
3568
- ShareCaseComponent.prototype.isDisabledContinue = /**
3278
+ ShareCaseComponent.prototype.setContinueAllowed = /**
3279
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
3280
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
3569
3281
  * @return {?}
3570
3282
  */
3571
3283
  function () {
3572
- /** @type {?} */
3573
- var isDisabled = true;
3284
+ var _this = this;
3285
+ // Always start with continueAllowed = false. This covers the scenario where a user might add someone for sharing
3286
+ // a case (so, continueAllowed = true), then removes the same user before trying to continue. This would
3287
+ // erroneously leave continueAllowed as true
3288
+ this.continueAllowed = false;
3574
3289
  this.shareCases$.subscribe(( /**
3575
3290
  * @param {?} shareCases
3576
3291
  * @return {?}
@@ -3580,11 +3295,11 @@
3580
3295
  for (var shareCases_1 = __values(shareCases), shareCases_1_1 = shareCases_1.next(); !shareCases_1_1.done; shareCases_1_1 = shareCases_1.next()) {
3581
3296
  var caseState = shareCases_1_1.value;
3582
3297
  if (caseState.pendingShares && caseState.pendingShares.length > 0) {
3583
- isDisabled = false;
3298
+ _this.continueAllowed = true;
3584
3299
  break;
3585
3300
  }
3586
3301
  if (caseState.pendingUnshares && caseState.pendingUnshares.length > 0) {
3587
- isDisabled = false;
3302
+ _this.continueAllowed = true;
3588
3303
  break;
3589
3304
  }
3590
3305
  }
@@ -3603,7 +3318,6 @@
3603
3318
  }
3604
3319
  }
3605
3320
  }));
3606
- return isDisabled;
3607
3321
  };
3608
3322
  /**
3609
3323
  * @param {?} sharedCase
@@ -3643,17 +3357,127 @@
3643
3357
  }
3644
3358
  this.stateService.setCases(this.shareCases);
3645
3359
  };
3646
- ShareCaseComponent.decorators = [
3647
- { type: i0.Component, args: [{
3648
- selector: 'xuilib-share-case',
3649
- template: "<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n Search by name or email address. You can share access with as many people as you need.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\" class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\" title=\"Add user to selected cases\">Add</button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n Can't find an email address?\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n If you can't find your colleague's email address, they will need to complete their registration. Contact your\n administrator for help.\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">Remove a person from all cases</label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n Select a person to remove them from all selected cases.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option value=\"{{user}}\" *ngFor=\"let user of users\">{{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" class=\"govuk-button govuk-button--secondary\" title=\"Remove user from selected cases\">Remove</button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">Selected cases</h3>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button class=\"govuk-button\" data-module=\"govuk-button\" [disabled]=\"isDisabledContinue()\" title=\"Continue\" [routerLink]=\"confirmLink\">Continue</button>\n <button class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"Cancel\">Cancel</button>\n</div>\n",
3650
- styles: ["select{width:100%}"]
3651
- }] }
3652
- ];
3653
- /** @nocollapse */
3654
- ShareCaseComponent.ctorParameters = function () {
3655
- return [
3656
- { type: CaseSharingStateService }
3360
+ /**
3361
+ * @return {?}
3362
+ */
3363
+ ShareCaseComponent.prototype.onContinue = /**
3364
+ * @return {?}
3365
+ */
3366
+ function () {
3367
+ this.setContinueAllowed();
3368
+ // If continuation is not allowed, set an error message
3369
+ if (!this.continueAllowed) {
3370
+ this.validationErrors = [];
3371
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.NoChangesRequested });
3372
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.NoChangesRequested] };
3373
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
3374
+ }
3375
+ // Navigate to confirmation page only if allowed to continue
3376
+ if (this.continueAllowed) {
3377
+ // Check that no case is left unassigned; a user can be removed only if there is another current user, or if at
3378
+ // least one user is to be added. Prevent navigation to confirmation page if there is at least one case left in
3379
+ // an unassigned state
3380
+ if (this.hasCasesLeftUnassigned(this.shareCases)) {
3381
+ this.validationErrors = [];
3382
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OnePersonMustBeAssigned });
3383
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OnePersonMustBeAssigned] };
3384
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
3385
+ }
3386
+ else {
3387
+ this.router.navigate([this.confirmLink]);
3388
+ }
3389
+ }
3390
+ };
3391
+ /**
3392
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
3393
+ * @param sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
3394
+ */
3395
+ /**
3396
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
3397
+ * @param {?} sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
3398
+ * @return {?}
3399
+ */
3400
+ ShareCaseComponent.prototype.getAssignedUsers = /**
3401
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
3402
+ * @param {?} sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
3403
+ * @return {?}
3404
+ */
3405
+ function (sharedCases) {
3406
+ /** @type {?} */
3407
+ var users = [];
3408
+ sharedCases.forEach(( /**
3409
+ * @param {?} sharedCase
3410
+ * @return {?}
3411
+ */function (sharedCase) {
3412
+ if (sharedCase.sharedWith) {
3413
+ sharedCase.sharedWith.forEach(( /**
3414
+ * @param {?} user
3415
+ * @return {?}
3416
+ */function (user) {
3417
+ if (!users.some(( /**
3418
+ * @param {?} existingUser
3419
+ * @return {?}
3420
+ */function (existingUser) { return user.idamId === existingUser.idamId; }))) {
3421
+ users.push(user);
3422
+ }
3423
+ }));
3424
+ }
3425
+ if (sharedCase.pendingShares) {
3426
+ sharedCase.pendingShares.forEach(( /**
3427
+ * @param {?} user
3428
+ * @return {?}
3429
+ */function (user) {
3430
+ if (!users.some(( /**
3431
+ * @param {?} existingUser
3432
+ * @return {?}
3433
+ */function (existingUser) { return user.idamId === existingUser.idamId; }))) {
3434
+ users.push(user);
3435
+ }
3436
+ }));
3437
+ }
3438
+ }));
3439
+ this.assignedUsers = users;
3440
+ };
3441
+ /**
3442
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
3443
+ * unshares equal to the number of current shares, and there are no pending shares.
3444
+ * @param sharedCases The array of shared cases to check
3445
+ * @returns `true` if at least one case has the condition described above; `false` otherwise
3446
+ */
3447
+ /**
3448
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
3449
+ * unshares equal to the number of current shares, and there are no pending shares.
3450
+ * @param {?} sharedCases The array of shared cases to check
3451
+ * @return {?} `true` if at least one case has the condition described above; `false` otherwise
3452
+ */
3453
+ ShareCaseComponent.prototype.hasCasesLeftUnassigned = /**
3454
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
3455
+ * unshares equal to the number of current shares, and there are no pending shares.
3456
+ * @param {?} sharedCases The array of shared cases to check
3457
+ * @return {?} `true` if at least one case has the condition described above; `false` otherwise
3458
+ */
3459
+ function (sharedCases) {
3460
+ return sharedCases.some(( /**
3461
+ * @param {?} sharedCase
3462
+ * @return {?}
3463
+ */function (sharedCase) {
3464
+ return sharedCase.pendingUnshares && sharedCase.sharedWith &&
3465
+ sharedCase.pendingUnshares.length === sharedCase.sharedWith.length &&
3466
+ (!sharedCase.pendingShares || sharedCase.pendingShares.length === 0);
3467
+ }));
3468
+ };
3469
+ ShareCaseComponent.decorators = [
3470
+ { type: i0.Component, args: [{
3471
+ selector: 'xuilib-share-case',
3472
+ template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle}}</span>\n {{title}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n Search by name or email address. You can share access with as many people as you need.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\" class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\" title=\"Add user to selected cases\">Add</button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n Can't find an email address?\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n If you can't find your colleague's email address, they will need to complete their registration. Contact your\n administrator for help.\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">Remove a person from all cases</label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n Select a person to remove them from all selected cases.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"Remove user from selected cases\">Remove</button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">Selected cases</h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"Continue\">Continue</button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"Cancel\" [routerLink]=\"cancelLink\">Cancel</button>\n</div>\n",
3473
+ styles: ["select{width:100%}"]
3474
+ }] }
3475
+ ];
3476
+ /** @nocollapse */
3477
+ ShareCaseComponent.ctorParameters = function () {
3478
+ return [
3479
+ { type: CaseSharingStateService },
3480
+ { type: i2$2.Router }
3657
3481
  ];
3658
3482
  };
3659
3483
  ShareCaseComponent.propDecorators = {
@@ -3661,8 +3485,11 @@
3661
3485
  shareCases$: [{ type: i0.Input }],
3662
3486
  users: [{ type: i0.Input }],
3663
3487
  confirmLink: [{ type: i0.Input }],
3488
+ cancelLink: [{ type: i0.Input }],
3664
3489
  addUserLabel: [{ type: i0.Input }],
3665
3490
  showRemoveUsers: [{ type: i0.Input }],
3491
+ fnTitle: [{ type: i0.Input }],
3492
+ title: [{ type: i0.Input }],
3666
3493
  unselect: [{ type: i0.Output }],
3667
3494
  synchronizeStore: [{ type: i0.Output }],
3668
3495
  userSelect: [{ type: i0.ViewChild, args: [UserSelectComponent,] }]
@@ -4248,7 +4075,7 @@
4248
4075
  JUDICIAL: "Judicial",
4249
4076
  CASEWORKER: "Legal Ops",
4250
4077
  ADMIN: "Admin",
4251
- CTSC: "CTSC User",
4078
+ CTSC: "CTSC",
4252
4079
  ALL: "All",
4253
4080
  };
4254
4081
  /** @enum {string} */
@@ -4271,6 +4098,12 @@
4271
4098
  return RadioFilterFieldConfig;
4272
4099
  }());
4273
4100
 
4101
+ /**
4102
+ * @fileoverview added by tsickle
4103
+ * Generated from: lib/models/index.ts
4104
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4105
+ */
4106
+
4274
4107
  /**
4275
4108
  * @fileoverview added by tsickle
4276
4109
  * Generated from: lib/services/locations/location.service.ts
@@ -4349,7 +4182,7 @@
4349
4182
 
4350
4183
  /**
4351
4184
  * @fileoverview added by tsickle
4352
- * Generated from: lib/services/storage/session-storage/session-storage.service.ts
4185
+ * Generated from: lib/services/session-storage/session-storage.service.ts
4353
4186
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4354
4187
  */
4355
4188
  var SessionStorageService = /** @class */ (function () {
@@ -4657,7 +4490,7 @@
4657
4490
  { type: i0.Component, args: [{
4658
4491
  selector: 'exui-search-location',
4659
4492
  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",
4660
- 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}"]
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}"]
4661
4494
  }] }
4662
4495
  ];
4663
4496
  /** @nocollapse */
@@ -4914,8 +4747,8 @@
4914
4747
  FindLocationComponent.decorators = [
4915
4748
  { type: i0.Component, args: [{
4916
4749
  selector: 'xuilib-find-location',
4917
- 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",
4918
- 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}"]
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: [""]
4919
4752
  }] }
4920
4753
  ];
4921
4754
  FindLocationComponent.propDecorators = {
@@ -5634,26 +5467,10 @@
5634
5467
  */
5635
5468
  var FindServiceComponent = /** @class */ (function () {
5636
5469
  function FindServiceComponent() {
5637
- this.services = [];
5638
- this.selectedServices = [];
5470
+ this.serviceTitle = 'Search for a service by name';
5639
5471
  this.enableAddServiceButton = true;
5640
- this.disabled = false;
5641
- this.serviceFieldChanged = new i0.EventEmitter();
5642
- this.tempSelectedService = null;
5472
+ this.disableInputField = false;
5643
5473
  }
5644
- /**
5645
- * @return {?}
5646
- */
5647
- FindServiceComponent.prototype.ngOnInit = /**
5648
- * @return {?}
5649
- */
5650
- function () {
5651
- this.selectedServices = this.selectedServices !== null ? this.selectedServices.filter(( /**
5652
- * @param {?} service
5653
- * @return {?}
5654
- */function (service) { return service.key; })) : [];
5655
- this.SortAnOptions();
5656
- };
5657
5474
  /**
5658
5475
  * @return {?}
5659
5476
  */
@@ -5661,148 +5478,13 @@
5661
5478
  * @return {?}
5662
5479
  */
5663
5480
  function () {
5664
- var _this = this;
5665
- if (this.tempSelectedService === null) {
5666
- return;
5667
- }
5668
- this.selectedServices = __spread(this.selectedServices, [this.tempSelectedService]);
5669
- this.addSelectedServicesToForm([this.tempSelectedService]);
5670
- this.services = this.services.filter(( /**
5671
- * @param {?} s
5672
- * @return {?}
5673
- */function (s) { return s.key !== _this.tempSelectedService.key; }));
5674
- this.tempSelectedService = null;
5675
- this.serviceFieldChanged.emit();
5676
- };
5677
- /**
5678
- * @param {?} service
5679
- * @return {?}
5680
- */
5681
- FindServiceComponent.prototype.removeService = /**
5682
- * @param {?} service
5683
- * @return {?}
5684
- */
5685
- function (service) {
5686
- if (service.key) {
5687
- this.selectedServices = this.selectedServices !== null ? this.selectedServices.filter(( /**
5688
- * @param {?} selectedService
5689
- * @return {?}
5690
- */function (selectedService) { return selectedService.key !== service.key; })) : [];
5691
- /** @type {?} */
5692
- var formArray = ( /** @type {?} */(this.form.get(this.field.name)));
5693
- /** @type {?} */
5694
- var index = (formArray.value).findIndex(( /**
5695
- * @param {?} selectedService
5696
- * @return {?}
5697
- */function (selectedService) { return selectedService.key === service.key; }));
5698
- if (index > -1) {
5699
- formArray.removeAt(index);
5700
- this.services.splice(index, 0, service);
5701
- this.SortAnOptions();
5702
- }
5703
- this.serviceFieldChanged.emit();
5704
- }
5705
- };
5706
- /**
5707
- * @param {?} service
5708
- * @return {?}
5709
- */
5710
- FindServiceComponent.prototype.onServiceSelected = /**
5711
- * @param {?} service
5712
- * @return {?}
5713
- */
5714
- function (service) {
5715
- if (!service) {
5716
- this.tempSelectedService = null;
5717
- return;
5718
- }
5719
- if (this.field.maxSelected === 1) {
5720
- this.removeSelectedValues();
5721
- this.addSelectedServicesToForm([service]);
5722
- }
5723
- else {
5724
- if (!this.selectedServices.find(( /**
5725
- * @param {?} s
5726
- * @return {?}
5727
- */function (s) { return s.key === service.key; }))) {
5728
- if (service.key) {
5729
- this.tempSelectedService = service;
5730
- }
5731
- }
5732
- }
5733
- };
5734
- /**
5735
- * @private
5736
- * @return {?}
5737
- */
5738
- FindServiceComponent.prototype.removeSelectedValues = /**
5739
- * @private
5740
- * @return {?}
5741
- */
5742
- function () {
5743
- /** @type {?} */
5744
- var formArray = ( /** @type {?} */(this.form.get(this.field.name)));
5745
- for (var i = 0; i < formArray.length; i++) {
5746
- formArray.removeAt(i);
5747
- }
5748
- this.selectedServices = [];
5749
- };
5750
- /**
5751
- * @private
5752
- * @param {?} services
5753
- * @return {?}
5754
- */
5755
- FindServiceComponent.prototype.addSelectedServicesToForm = /**
5756
- * @private
5757
- * @param {?} services
5758
- * @return {?}
5759
- */
5760
- function (services) {
5761
- var e_1, _a;
5762
- /** @type {?} */
5763
- var formArray = ( /** @type {?} */(this.form.get(this.field.name)));
5764
- try {
5765
- for (var services_1 = __values(services), services_1_1 = services_1.next(); !services_1_1.done; services_1_1 = services_1.next()) {
5766
- var service = services_1_1.value;
5767
- formArray.push(new forms.FormControl(service));
5768
- }
5769
- }
5770
- catch (e_1_1) {
5771
- e_1 = { error: e_1_1 };
5772
- }
5773
- finally {
5774
- try {
5775
- if (services_1_1 && !services_1_1.done && (_a = services_1.return))
5776
- _a.call(services_1);
5777
- }
5778
- finally {
5779
- if (e_1)
5780
- throw e_1.error;
5781
- }
5782
- }
5783
- };
5784
- /**
5785
- * @private
5786
- * @return {?}
5787
- */
5788
- FindServiceComponent.prototype.SortAnOptions = /**
5789
- * @private
5790
- * @return {?}
5791
- */
5792
- function () {
5793
- return this.services.sort(( /**
5794
- * @param {?} a
5795
- * @param {?} b
5796
- * @return {?}
5797
- */function (a, b) {
5798
- return a.label.toLowerCase() > b.label.toLowerCase() ? 1 : (b.label.toLowerCase() > a.label.toLowerCase() ? -1 : 0);
5799
- }));
5481
+ // Todo
5800
5482
  };
5801
5483
  FindServiceComponent.decorators = [
5802
5484
  { type: i0.Component, args: [{
5803
5485
  selector: 'xuilib-find-service',
5804
- template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\" [services]=\"services\"\n (serviceChanged)=\"onServiceSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addService()\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"enableAddServiceButton\" id=\"add-service\">\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 selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeService(selection)\" href=\"javascript:void(0)\">\n {{ selection.label }}\n </a>\n </li>\n </ul>\n</div>",
5805
- styles: ["#add-service{background-color:#ddd}.search-service__input-container{display:flex}.search-service__input{flex:1 0 auto}"]
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>",
5487
+ styles: ["#add-service{background-color:#ddd}"]
5806
5488
  }] }
5807
5489
  ];
5808
5490
  FindServiceComponent.propDecorators = {
@@ -5812,225 +5494,13 @@
5812
5494
  form: [{ type: i0.Input }],
5813
5495
  services: [{ type: i0.Input }],
5814
5496
  selectedServices: [{ type: i0.Input }],
5815
- enableAddServiceButton: [{ type: i0.Input }],
5816
5497
  disabled: [{ type: i0.Input }],
5817
- serviceFieldChanged: [{ type: i0.Output }]
5498
+ enableAddServiceButton: [{ type: i0.Input }],
5499
+ disableInputField: [{ type: i0.Input }]
5818
5500
  };
5819
5501
  return FindServiceComponent;
5820
5502
  }());
5821
5503
 
5822
- /**
5823
- * @fileoverview added by tsickle
5824
- * Generated from: lib/services/task-name/task-name.service.ts
5825
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5826
- */
5827
- var TaskNameService = /** @class */ (function () {
5828
- function TaskNameService(http, sessionStorageService) {
5829
- this.http = http;
5830
- this.sessionStorageService = sessionStorageService;
5831
- }
5832
- /**
5833
- * @return Observable<any[]>: Array of taskName in Observable
5834
- */
5835
- /**
5836
- * @return {?} Observable<any[]>: Array of taskName in Observable
5837
- */
5838
- TaskNameService.prototype.getTaskName = /**
5839
- * @return {?} Observable<any[]>: Array of taskName in Observable
5840
- */
5841
- function () {
5842
- var _this = this;
5843
- if (this.sessionStorageService.getItem(TaskNameService.taskNamesKey)) {
5844
- /** @type {?} */
5845
- var taskNames = JSON.parse(this.sessionStorageService.getItem(TaskNameService.taskNamesKey));
5846
- return rxjs.of(( /** @type {?} */(taskNames)));
5847
- }
5848
- return this.http.get("/workallocation/taskNames").pipe(operators.tap(( /**
5849
- * @param {?} taskNames
5850
- * @return {?}
5851
- */function (taskNames) { return _this.sessionStorageService.setItem(TaskNameService.taskNamesKey, JSON.stringify(taskNames)); })));
5852
- };
5853
- TaskNameService.taskNamesKey = 'taskNames';
5854
- TaskNameService.decorators = [
5855
- { type: i0.Injectable, args: [{
5856
- providedIn: 'root'
5857
- },] }
5858
- ];
5859
- /** @nocollapse */
5860
- TaskNameService.ctorParameters = function () {
5861
- return [
5862
- { type: i1.HttpClient },
5863
- { type: SessionStorageService }
5864
- ];
5865
- };
5866
- /** @nocollapse */ TaskNameService.ngInjectableDef = i0.defineInjectable({ factory: function TaskNameService_Factory() { return new TaskNameService(i0.inject(i1.HttpClient), i0.inject(SessionStorageService)); }, token: TaskNameService, providedIn: "root" });
5867
- return TaskNameService;
5868
- }());
5869
-
5870
- /**
5871
- * @fileoverview added by tsickle
5872
- * Generated from: lib/components/find-task-name/find-task-name.component.ts
5873
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5874
- */
5875
- var FindTaskNameComponent = /** @class */ (function () {
5876
- function FindTaskNameComponent(cd, taskService) {
5877
- this.cd = cd;
5878
- this.taskService = taskService;
5879
- this.taskNameSelected = new i0.EventEmitter();
5880
- this.taskNameFieldChanged = new i0.EventEmitter();
5881
- this.boldTitle = 'Find the task name';
5882
- this.subTitle = 'Type the name of the task name and select them.';
5883
- this.domain = PersonRole.ALL;
5884
- this.findTaskNameGroup = new forms.FormGroup({});
5885
- this.submitted = true;
5886
- this.userIncluded = false;
5887
- this.placeholderContent = '';
5888
- this.isNoResultsShown = true;
5889
- this.showUpdatedColor = false;
5890
- this.selectedTaskNames = [];
5891
- this.errorMessage = 'You must select a name';
5892
- this.idValue = '';
5893
- this.services = ['IA'];
5894
- this.disabled = null;
5895
- this.showAutocomplete = false;
5896
- this.filteredOptions = [];
5897
- this.minSearchCharacters = 1;
5898
- this.searchTerm = '';
5899
- }
5900
- /**
5901
- * @return {?}
5902
- */
5903
- FindTaskNameComponent.prototype.ngOnDestroy = /**
5904
- * @return {?}
5905
- */
5906
- function () {
5907
- if (this.sub) {
5908
- this.sub.unsubscribe();
5909
- }
5910
- };
5911
- /**
5912
- * @return {?}
5913
- */
5914
- FindTaskNameComponent.prototype.ngOnChanges = /**
5915
- * @return {?}
5916
- */
5917
- function () {
5918
- var _this = this;
5919
- this.findTaskNameControl = new forms.FormControl(this.selectedTaskName);
5920
- this.findTaskNameGroup.addControl('findTaskNameControl', this.findTaskNameControl);
5921
- this.sub = this.findTaskNameControl.valueChanges
5922
- .pipe(operators.tap(( /**
5923
- * @return {?}
5924
- */function () { return _this.showAutocomplete = false; })), operators.tap(( /**
5925
- * @return {?}
5926
- */function () { return _this.filteredOptions = []; })), operators.tap(( /**
5927
- * @param {?} term
5928
- * @return {?}
5929
- */function (term) { return _this.searchTerm = term; })), operators.debounceTime(300), operators.tap(( /**
5930
- * @param {?} searchTerm
5931
- * @return {?}
5932
- */function (searchTerm) {
5933
- if (!searchTerm) {
5934
- _this.taskNameSelected.emit('');
5935
- }
5936
- return searchTerm;
5937
- })),
5938
- // tap((searchTerm) => typeof searchTerm === 'string' ? this.taskNameSelected.emit('null') : void 0),
5939
- operators.filter(( /**
5940
- * @param {?} searchTerm
5941
- * @return {?}
5942
- */function (searchTerm) { return searchTerm && searchTerm.length >= _this.minSearchCharacters; })), operators.mergeMap(( /**
5943
- * @return {?}
5944
- */function () { return _this.getTaskName(); }))).subscribe(( /**
5945
- * @param {?} taskNameModel
5946
- * @return {?}
5947
- */function (taskNameModel) {
5948
- _this.filteredOptions = taskNameModel.map(( /**
5949
- * @param {?} task
5950
- * @return {?}
5951
- */function (task) { return task.taskName; }));
5952
- if (_this.searchTerm) {
5953
- _this.filteredOptions = _this.filteredOptions.filter(( /**
5954
- * @param {?} taskName
5955
- * @return {?}
5956
- */function (taskName) { return taskName.toLocaleLowerCase().includes(_this.searchTerm.toLocaleLowerCase()); })).map(( /**
5957
- * @param {?} taskName
5958
- * @return {?}
5959
- */function (taskName) { return taskName; }));
5960
- }
5961
- _this.cd.detectChanges();
5962
- }));
5963
- };
5964
- /**
5965
- * @return {?}
5966
- */
5967
- FindTaskNameComponent.prototype.getTaskName = /**
5968
- * @return {?}
5969
- */
5970
- function () {
5971
- return this.taskService.getTaskName();
5972
- };
5973
- /**
5974
- * @param {?} selectedTaskName
5975
- * @return {?}
5976
- */
5977
- FindTaskNameComponent.prototype.onSelectionChange = /**
5978
- * @param {?} selectedTaskName
5979
- * @return {?}
5980
- */
5981
- function (selectedTaskName) {
5982
- if (selectedTaskName) {
5983
- this.taskNameSelected.emit(selectedTaskName);
5984
- this.findTaskNameControl.setValue(selectedTaskName);
5985
- }
5986
- };
5987
- /**
5988
- * @return {?}
5989
- */
5990
- FindTaskNameComponent.prototype.onInput = /**
5991
- * @return {?}
5992
- */
5993
- function () {
5994
- this.taskNameFieldChanged.emit();
5995
- };
5996
- FindTaskNameComponent.decorators = [
5997
- { type: i0.Component, args: [{
5998
- selector: 'xuilib-find-task-name',
5999
- 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",
6000
- styles: [""]
6001
- }] }
6002
- ];
6003
- /** @nocollapse */
6004
- FindTaskNameComponent.ctorParameters = function () {
6005
- return [
6006
- { type: i0.ChangeDetectorRef },
6007
- { type: TaskNameService }
6008
- ];
6009
- };
6010
- FindTaskNameComponent.propDecorators = {
6011
- taskNameSelected: [{ type: i0.Output }],
6012
- taskNameFieldChanged: [{ type: i0.Output }],
6013
- title: [{ type: i0.Input }],
6014
- boldTitle: [{ type: i0.Input }],
6015
- subTitle: [{ type: i0.Input }],
6016
- domain: [{ type: i0.Input }],
6017
- findTaskNameGroup: [{ type: i0.Input }],
6018
- selectedTaskName: [{ type: i0.Input }],
6019
- submitted: [{ type: i0.Input }],
6020
- userIncluded: [{ type: i0.Input }],
6021
- assignedUser: [{ type: i0.Input }],
6022
- placeholderContent: [{ type: i0.Input }],
6023
- isNoResultsShown: [{ type: i0.Input }],
6024
- showUpdatedColor: [{ type: i0.Input }],
6025
- selectedTaskNames: [{ type: i0.Input }],
6026
- errorMessage: [{ type: i0.Input }],
6027
- idValue: [{ type: i0.Input }],
6028
- services: [{ type: i0.Input }],
6029
- disabled: [{ type: i0.Input }]
6030
- };
6031
- return FindTaskNameComponent;
6032
- }());
6033
-
6034
5504
  /**
6035
5505
  * @fileoverview added by tsickle
6036
5506
  * Generated from: lib/components/search-judicials/search-judicials.component.ts
@@ -6277,35 +5747,42 @@
6277
5747
  */
6278
5748
  var SearchServiceComponent = /** @class */ (function () {
6279
5749
  function SearchServiceComponent() {
6280
- this.services = [];
6281
- this.serviceChanged = new i0.EventEmitter();
5750
+ this.showAutocomplete = false;
5751
+ this.minSearchCharacters = 3;
5752
+ this.term = '';
6282
5753
  }
6283
5754
  /**
6284
- * @param {?} key
6285
5755
  * @return {?}
6286
5756
  */
6287
- SearchServiceComponent.prototype.onSelectionChanged = /**
6288
- * @param {?} key
5757
+ SearchServiceComponent.prototype.onInput = /**
6289
5758
  * @return {?}
6290
5759
  */
6291
- function (key) {
6292
- /** @type {?} */
6293
- var selectedService = this.services.find(( /**
6294
- * @param {?} s
6295
- * @return {?}
6296
- */function (s) { return s.key === key; }));
6297
- this.serviceChanged.emit(selectedService);
5760
+ function () {
5761
+ // Todo
5762
+ };
5763
+ /**
5764
+ * @return {?}
5765
+ */
5766
+ SearchServiceComponent.prototype.onSelectionChange = /**
5767
+ * @return {?}
5768
+ */
5769
+ function () {
5770
+ // Todo
6298
5771
  };
6299
5772
  SearchServiceComponent.decorators = [
6300
5773
  { type: i0.Component, args: [{
6301
5774
  selector: 'exui-search-service',
6302
- template: "<div class=\"govuk-form-group\">\n <select id=\"serviceSearch__select\" class=\"govuk-select\" name=\"serviceSearch__select\"\n (change)=\"onSelectionChanged($event.target.value)\">\n <option [value]=\"null\">All</option>\n <option *ngFor=\"let service of services\" [value]=\"service.key\">\n {{ service.label }}\n </option>\n </select>\n</div>",
6303
- 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{width:calc(100% - 4px);display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
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",
5776
+ 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}"]
6304
5777
  }] }
6305
5778
  ];
6306
5779
  SearchServiceComponent.propDecorators = {
6307
5780
  services: [{ type: i0.Input }],
6308
- serviceChanged: [{ type: i0.Output }]
5781
+ selectedServices: [{ type: i0.Input }],
5782
+ disabled: [{ type: i0.Input }],
5783
+ delay: [{ type: i0.Input }],
5784
+ form: [{ type: i0.Input }],
5785
+ showAutocomplete: [{ type: i0.Input }]
6309
5786
  };
6310
5787
  return SearchServiceComponent;
6311
5788
  }());
@@ -6593,57 +6070,6 @@
6593
6070
  return GovUkCheckboxComponent;
6594
6071
  }());
6595
6072
 
6596
- /**
6597
- * @fileoverview added by tsickle
6598
- * Generated from: lib/gov-ui/util/helpers/html-templates.helper.ts
6599
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6600
- */
6601
- /*
6602
- * Helper Class
6603
- * Used for dynamic templates manipulation
6604
- * */
6605
- var /*
6606
- * Helper Class
6607
- * Used for dynamic templates manipulation
6608
- * */ HtmlTemplatesHelper = /** @class */ (function () {
6609
- function HtmlTemplatesHelper() {
6610
- }
6611
- /*
6612
- * Sets described by string depending if
6613
- * there is an error, error and hit or nothing
6614
- * */
6615
- /*
6616
- * Sets described by string depending if
6617
- * there is an error, error and hit or nothing
6618
- * */
6619
- /**
6620
- * @param {?} errorMessage
6621
- * @param {?} config
6622
- * @return {?}
6623
- */
6624
- HtmlTemplatesHelper.setDescribedBy = /*
6625
- * Sets described by string depending if
6626
- * there is an error, error and hit or nothing
6627
- * */
6628
- /**
6629
- * @param {?} errorMessage
6630
- * @param {?} config
6631
- * @return {?}
6632
- */
6633
- function (errorMessage, config) {
6634
- if (!errorMessage) {
6635
- return config.hint ? config.id + "-hint" : null;
6636
- }
6637
- else if (errorMessage && errorMessage.isInvalid) {
6638
- return config.hint ? config.id + "-hint " + config.id + "-error" : config.id + "-error";
6639
- }
6640
- else {
6641
- return config.hint ? config.id + "-hint" : null;
6642
- }
6643
- };
6644
- return HtmlTemplatesHelper;
6645
- }());
6646
-
6647
6073
  /**
6648
6074
  * @fileoverview added by tsickle
6649
6075
  * Generated from: lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.ts
@@ -6659,99 +6085,15 @@
6659
6085
  var GovUkCheckboxesComponent = /** @class */ (function () {
6660
6086
  function GovUkCheckboxesComponent() {
6661
6087
  }
6662
- /**
6663
- * @return {?}
6664
- */
6665
- GovUkCheckboxesComponent.prototype.ngOnInit = /**
6666
- * @return {?}
6667
- */
6668
- function () {
6669
- this.columns = this.setColumns();
6670
- };
6671
- /**
6672
- * @return {?}
6673
- */
6674
- GovUkCheckboxesComponent.prototype.setDescribedBy = /**
6675
- * @return {?}
6676
- */
6677
- function () {
6678
- return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);
6679
- };
6680
- /**
6681
- * @param {?} checked
6682
- * @param {?} value
6683
- * @return {?}
6684
- */
6685
- GovUkCheckboxesComponent.prototype.onChecked = /**
6686
- * @param {?} checked
6687
- * @param {?} value
6688
- * @return {?}
6689
- */
6690
- function (checked, value) {
6691
- /** @type {?} */
6692
- var formControl = this.group.get(this.config.name);
6693
- /** @type {?} */
6694
- var array = formControl.value ? formControl.value : [];
6695
- if (!checked) {
6696
- /** @type {?} */
6697
- var modifiedArray = array.filter(( /**
6698
- * @param {?} item
6699
- * @return {?}
6700
- */function (item) { return item !== value; }));
6701
- formControl.setValue(modifiedArray);
6702
- }
6703
- else {
6704
- formControl.setValue(__spread(array, [value]));
6705
- }
6706
- };
6707
- /**
6708
- * @param {?} value
6709
- * @return {?}
6710
- */
6711
- GovUkCheckboxesComponent.prototype.isChecked = /**
6712
- * @param {?} value
6713
- * @return {?}
6714
- */
6715
- function (value) {
6716
- /** @type {?} */
6717
- var formControl = this.group.get(this.config.name);
6718
- return formControl.value && formControl.value.includes(value);
6719
- };
6720
- /**
6721
- * @private
6722
- * @return {?}
6723
- */
6724
- GovUkCheckboxesComponent.prototype.setColumns = /**
6725
- * @private
6726
- * @return {?}
6727
- */
6728
- function () {
6729
- if (this.config.rows && this.config.rows > 1) {
6730
- /** @type {?} */
6731
- var array = [];
6732
- for (var i = 0; i < this.items.length; i += this.config.rows) {
6733
- /** @type {?} */
6734
- var arrayChunk = this.items.slice(i, i + this.config.rows);
6735
- array.push(arrayChunk);
6736
- }
6737
- return array;
6738
- }
6739
- else {
6740
- return [this.items];
6741
- }
6742
- };
6743
6088
  GovUkCheckboxesComponent.decorators = [
6744
6089
  { type: i0.Component, args: [{
6745
6090
  selector: 'xuilib-gov-uk-checkboxes',
6746
- 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",
6747
- 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}"]
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>"
6748
6092
  }] }
6749
6093
  ];
6750
6094
  GovUkCheckboxesComponent.propDecorators = {
6751
- group: [{ type: i0.Input }],
6752
- config: [{ type: i0.Input }],
6753
- items: [{ type: i0.Input }],
6754
- errorMessage: [{ type: i0.Input }]
6095
+ options: [{ type: i0.Input }],
6096
+ errors: [{ type: i0.Input }]
6755
6097
  };
6756
6098
  return GovUkCheckboxesComponent;
6757
6099
  }());
@@ -6901,6 +6243,57 @@
6901
6243
  return GovUkErrorMessageComponent;
6902
6244
  }());
6903
6245
 
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
+
6904
6297
  /**
6905
6298
  * @fileoverview added by tsickle
6906
6299
  * Generated from: lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.ts
@@ -7048,7 +6441,7 @@
7048
6441
  * @return {?}
7049
6442
  */
7050
6443
  function () {
7051
- this.config.classes = typeof (this.config.classes) === 'string' ? this.config.classes : 'govuk-label govuk-label--m';
6444
+ this.config.classes = 'govuk-label--m';
7052
6445
  };
7053
6446
  /**
7054
6447
  * @return {?}
@@ -7062,7 +6455,7 @@
7062
6455
  GovUkInputComponent.decorators = [
7063
6456
  { type: i0.Component, args: [{
7064
6457
  selector: 'xuilib-gov-uk-input',
7065
- 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",
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",
7066
6459
  styles: [".gov-uk-input input:disabled{background:#b1b4b6}"]
7067
6460
  }] }
7068
6461
  ];
@@ -7093,8 +6486,7 @@
7093
6486
  GovUkLabelComponent.decorators = [
7094
6487
  { type: i0.Component, args: [{
7095
6488
  selector: 'xuilib-gov-label',
7096
- 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",
7097
- 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}"]
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>"
7098
6490
  }] }
7099
6491
  ];
7100
6492
  /** @nocollapse */
@@ -7213,7 +6605,7 @@
7213
6605
  GovUkSelectComponent.decorators = [
7214
6606
  { type: i0.Component, args: [{
7215
6607
  selector: 'xuilib-gov-select',
7216
- 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"
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>"
7217
6609
  }] }
7218
6610
  ];
7219
6611
  /** @nocollapse */
@@ -7315,25 +6707,27 @@
7315
6707
  * Generated from: lib/gov-ui/components/hmcts-banner/hmcts-banner.component.ts
7316
6708
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7317
6709
  */
6710
+ /*
6711
+ * Hmcts Banner
6712
+ * Responsible for displaying prominent message and related actions
6713
+ * @prop message to display
6714
+ * @prop type
6715
+ * */
7318
6716
  var HmctsBannerComponent = /** @class */ (function () {
7319
6717
  function HmctsBannerComponent() {
7320
- this.title = '';
7321
- this.showMessageIcon = false;
7322
- this.messageBoldText = false;
7323
6718
  }
7324
6719
  HmctsBannerComponent.decorators = [
7325
6720
  { type: i0.Component, args: [{
7326
6721
  selector: 'xuilib-hmcts-banner',
7327
- 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",
7328
- 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}"]
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%}"]
7329
6724
  }] }
7330
6725
  ];
6726
+ /** @nocollapse */
6727
+ HmctsBannerComponent.ctorParameters = function () { return []; };
7331
6728
  HmctsBannerComponent.propDecorators = {
7332
- message: [{ type: i0.Input }],
7333
6729
  type: [{ type: i0.Input }],
7334
- title: [{ type: i0.Input }],
7335
- showMessageIcon: [{ type: i0.Input }],
7336
- messageBoldText: [{ type: i0.Input }]
6730
+ message: [{ type: i0.Input }]
7337
6731
  };
7338
6732
  return HmctsBannerComponent;
7339
6733
  }());
@@ -7513,7 +6907,7 @@
7513
6907
  HmctsMainWrapperComponent.decorators = [
7514
6908
  { type: i0.Component, args: [{
7515
6909
  selector: 'xuilib-hmcts-main-wrapper',
7516
- 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"
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"
7517
6911
  }] }
7518
6912
  ];
7519
6913
  /** @nocollapse */
@@ -7666,33 +7060,6 @@
7666
7060
  return RemoveHostDirective;
7667
7061
  }());
7668
7062
 
7669
- /**
7670
- * @fileoverview added by tsickle
7671
- * Generated from: lib/pipes/capitalize.pipe.ts
7672
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7673
- */
7674
- var CapitalizePipe = /** @class */ (function () {
7675
- function CapitalizePipe() {
7676
- }
7677
- /**
7678
- * @param {?} value
7679
- * @return {?}
7680
- */
7681
- CapitalizePipe.prototype.transform = /**
7682
- * @param {?} value
7683
- * @return {?}
7684
- */
7685
- function (value) {
7686
- /** @type {?} */
7687
- var lowerCaseString = value.toLowerCase();
7688
- return lowerCaseString.charAt(0).toUpperCase() + lowerCaseString.slice(1);
7689
- };
7690
- CapitalizePipe.decorators = [
7691
- { type: i0.Pipe, args: [{ name: 'capitalize' },] }
7692
- ];
7693
- return CapitalizePipe;
7694
- }());
7695
-
7696
7063
  /**
7697
7064
  * @fileoverview added by tsickle
7698
7065
  * Generated from: lib/exui-common-lib.module.ts
@@ -7731,7 +7098,6 @@
7731
7098
  FindPersonComponent,
7732
7099
  SearchJudicialsComponent,
7733
7100
  FindLocationComponent,
7734
- FindTaskNameComponent,
7735
7101
  SearchLocationComponent,
7736
7102
  FindServiceComponent,
7737
7103
  SearchServiceComponent,
@@ -7763,25 +7129,21 @@
7763
7129
  GovUkFileUploadComponent,
7764
7130
  RemoveHostDirective
7765
7131
  ];
7766
- /** @type {?} */
7767
- var pipes = [
7768
- CapitalizePipe
7769
- ];
7770
7132
  var ɵ0 = windowProvider;
7771
7133
  var ExuiCommonLibModule = /** @class */ (function () {
7772
7134
  function ExuiCommonLibModule() {
7773
7135
  }
7774
7136
  ExuiCommonLibModule.decorators = [
7775
7137
  { type: i0.NgModule, args: [{
7776
- declarations: __spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS, pipes),
7138
+ declarations: __spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS),
7777
7139
  imports: [
7778
7140
  i4.CommonModule,
7779
7141
  forms.FormsModule,
7780
7142
  forms.ReactiveFormsModule,
7781
7143
  i2$2.RouterModule.forChild([]),
7782
7144
  autocomplete.MatAutocompleteModule,
7783
- material.MatTabsModule,
7784
- material.MatInputModule,
7145
+ tabs.MatTabsModule,
7146
+ input.MatInputModule,
7785
7147
  ngxPagination.NgxPaginationModule
7786
7148
  ],
7787
7149
  providers: [
@@ -7789,7 +7151,7 @@
7789
7151
  ],
7790
7152
  exports: __spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS, [
7791
7153
  ngxPagination.PaginatePipe
7792
- ], pipes)
7154
+ ])
7793
7155
  },] }
7794
7156
  ];
7795
7157
  return ExuiCommonLibModule;
@@ -8597,18 +7959,19 @@
8597
7959
  */
8598
7960
  var RoleService = /** @class */ (function () {
8599
7961
  function RoleService() {
8600
- this.pRoles = new rxjs.BehaviorSubject(null);
8601
- this.roles$ = this.pRoles.asObservable().pipe(operators.skipWhile(( /**
8602
- * @param {?} item
8603
- * @return {?}
8604
- */function (item) { return item === null; })));
7962
+ this.pRoles = [];
8605
7963
  }
8606
7964
  Object.defineProperty(RoleService.prototype, "roles", {
7965
+ get: /**
7966
+ * @return {?}
7967
+ */ function () {
7968
+ return this.pRoles;
7969
+ },
8607
7970
  set: /**
8608
7971
  * @param {?} roles
8609
7972
  * @return {?}
8610
7973
  */ function (roles) {
8611
- this.pRoles.next(roles);
7974
+ this.pRoles = roles;
8612
7975
  },
8613
7976
  enumerable: true,
8614
7977
  configurable: true
@@ -8649,28 +8012,23 @@
8649
8012
  */
8650
8013
  function (route) {
8651
8014
  var _this = this;
8652
- return this.roleService.roles$.pipe(operators.map(( /**
8653
- * @param {?} roles
8015
+ /** @type {?} */
8016
+ var roles = (( /** @type {?} */(route.data.needsRole)));
8017
+ /** @type {?} */
8018
+ var check = ( /**
8019
+ * @param {?} roleRegEx
8654
8020
  * @return {?}
8655
- */function (roles) {
8021
+ */function (roleRegEx) {
8656
8022
  /** @type {?} */
8657
- var canActivateRoles = (( /** @type {?} */(route.data.needsRole)));
8658
- /** @type {?} */
8659
- var check = ( /**
8660
- * @param {?} roleRegEx
8023
+ var regex = new RegExp(roleRegEx);
8024
+ return _this.roleService.roles.some(( /**
8025
+ * @param {?} role
8661
8026
  * @return {?}
8662
- */function (roleRegEx) {
8663
- /** @type {?} */
8664
- var regex = new RegExp(roleRegEx);
8665
- return roles.some(( /**
8666
- * @param {?} role
8667
- * @return {?}
8668
- */function (role) { return regex.test(role); }));
8669
- });
8670
- /** @type {?} */
8671
- var match = route.data.roleMatching === RoleMatching.ALL ? canActivateRoles.every(check) : canActivateRoles.some(check);
8672
- return match || _this.router.parseUrl(( /** @type {?} */(route.data.noRoleMatchRedirect)));
8673
- })));
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)));
8674
8032
  };
8675
8033
  RoleGuard.decorators = [
8676
8034
  { type: i0.Injectable, args: [{
@@ -8835,7 +8193,7 @@
8835
8193
  exports.dateValidator = dateValidator;
8836
8194
  exports.radioGroupValidator = radioGroupValidator;
8837
8195
  exports.HmctsSubNavigationComponent = HmctsSubNavigationComponent;
8838
- exports.HmctsBannerComponent = HmctsBannerComponent;
8196
+ exports.SharedCaseErrorMessages = SharedCaseErrorMessages;
8839
8197
  exports.BadgeColour = BadgeColour;
8840
8198
  exports.DateBadgeColour = DateBadgeColour;
8841
8199
  exports.SECONDS_IN_A_DAY = SECONDS_IN_A_DAY;
@@ -8869,18 +8227,17 @@
8869
8227
  exports.ɵa = ExuiPageWrapperComponent;
8870
8228
  exports.ɵbl = FindLocationComponent;
8871
8229
  exports.ɵbh = FindPersonComponent;
8872
- exports.ɵbq = FindServiceComponent;
8873
- exports.ɵbo = FindTaskNameComponent;
8230
+ exports.ɵbo = FindServiceComponent;
8874
8231
  exports.ɵbd = GenericFilterComponent;
8875
8232
  exports.ɵk = HmctsSessionDialogComponent;
8876
8233
  exports.ɵo = InviteUserFormComponent;
8877
8234
  exports.ɵn = InviteUserPermissionComponent;
8878
8235
  exports.ɵbc = LoadingSpinnerComponent;
8879
- exports.ɵbt = PaginationComponent;
8236
+ exports.ɵbr = PaginationComponent;
8880
8237
  exports.ɵbk = SearchJudicialsComponent;
8881
8238
  exports.ɵbm = SearchLocationComponent;
8882
- exports.ɵbr = SearchServiceComponent;
8883
- exports.ɵbs = SearchVenueComponent;
8239
+ exports.ɵbp = SearchServiceComponent;
8240
+ exports.ɵbq = SearchVenueComponent;
8884
8241
  exports.ɵv = SelectedCaseConfirmComponent;
8885
8242
  exports.ɵt = SelectedCaseListComponent;
8886
8243
  exports.ɵu = SelectedCaseComponent;
@@ -8899,29 +8256,28 @@
8899
8256
  exports.ɵg = FeatureToggleDirective;
8900
8257
  exports.ɵi = LetContext;
8901
8258
  exports.ɵj = LetDirective;
8902
- exports.ɵcd = GovUkCheckboxComponent;
8903
- exports.ɵcj = GovUkCheckboxesComponent;
8904
- exports.ɵci = GovUkDateComponent;
8905
- exports.ɵcg = GovUkErrorMessageComponent;
8906
- exports.ɵch = GovUkFieldsetComponent;
8907
- exports.ɵco = GovUkFileUploadComponent;
8908
- exports.ɵce = GovUkFormGroupWrapperComponent;
8909
- exports.ɵcc = GovUkInputComponent;
8910
- exports.ɵcf = GovUkLabelComponent;
8911
- exports.ɵck = GovUkRadioComponent;
8912
- exports.ɵcl = GovUkRadiosComponent;
8913
- exports.ɵcm = GovUkSelectComponent;
8914
- exports.ɵcb = GovukTableComponent;
8915
- exports.ɵcn = GovUkTextareaComponent;
8916
- exports.ɵca = HmctsBannerComponent;
8917
- exports.ɵby = HmctsErrorSummaryComponent;
8918
- exports.ɵbu = HmctsIdentityBarComponent;
8919
- exports.ɵbz = HmctsMainWrapperComponent;
8920
- exports.ɵbv = HmctsPaginationComponent;
8921
- exports.ɵbx = HmctsPrimaryNavigationComponent;
8922
- exports.ɵbw = HmctsSubNavigationComponent;
8923
- exports.ɵcp = RemoveHostDirective;
8924
- exports.ɵcq = CapitalizePipe;
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;
8925
8281
  exports.ɵr = CaseSharingStateService;
8926
8282
  exports.ɵbg = CookieService;
8927
8283
  exports.ɵh = FeatureToggleService;
@@ -8929,7 +8285,6 @@
8929
8285
  exports.ɵbi = FindAPersonService;
8930
8286
  exports.ɵbn = LocationService;
8931
8287
  exports.ɵbj = SessionStorageService;
8932
- exports.ɵbp = TaskNameService;
8933
8288
 
8934
8289
  Object.defineProperty(exports, '__esModule', { value: true });
8935
8290